ams-2.0.1/0000777000076400007640000000000011315252054007305 500000000000000ams-2.0.1/demos/0000777000076400007640000000000011315252054010414 500000000000000ams-2.0.1/demos/example_mvclpf_phaser_2poles.ams0000664000076400007640000000322407770061731016677 00000000000000Module 6 1 344 314 0 mvclpf24 Mvclpf-4 Port 0 2 1 3 Port 2 0 1 6 FSlider 1 0 5650 0 -983040 163840 1 FSlider 1 1 -63760 0 -81920 81920 1 FSlider 1 2 112993 0 0 163840 1 FSlider 1 3 11824 0 0 16384 1 FSlider 1 4 0 0 0 16384 1 FSlider 1 5 223968 0 -245760 245760 1 LSlider 1 0 2 1 LSMIDI 1 0 10 0 1 Module 6 2 343 162 0 cs_phaser Phaser1 Port 0 0 2 1 Port 1 0 2 8 Port 2 1 2 6 FSlider 2 0 -98465 0 -655360 163840 1 FSlider 2 1 -7264 0 -81920 81920 1 FSlider 2 2 24213 0 0 163840 1 FSlider 2 3 0 0 0 163840 1 FSlider 2 4 11784 0 -16384 16384 1 FSlider 2 5 8232 0 -16384 16384 1 LSlider 2 0 5 1 LSMIDI 2 0 13 0 0 Module 1 3 170 115 0 0 Port 1 1 3 7 FSlider 3 0 0 0 0 16384 1 FSlider 3 1 8192 0 1638 14745 1 FSlider 3 2 0 0 0 16384 1 FSlider 3 3 0 0 0 102940 1 FSlider 3 4 0 0 0 163840 1 FSlider 3 5 0 0 0 163840 1 ISlider 3 0 1 1 ISlider 3 1 1 1 ISlider 3 2 1 1 ComboBox 3 0 0 1 Module 7 4 592 251 0 0 Port 0 0 4 5 Port 1 0 4 5 FSlider 4 0 8192 0 0 16384 1 FSlider 4 1 8192 0 0 16384 1 FSlider 4 2 8192 0 0 16384 1 ComboBox 4 0 1 1 Module 2 5 628 77 1 0 Port 0 0 5 6 Port 2 0 5 2 FSlider 5 0 -113175 1 -113176 37725 1 FSlider 5 1 -113175 1 -113176 37725 1 FSlider 5 2 0 1 -113176 11356 1 FSlider 5 3 0 1 -113176 11356 1 FSlider 5 4 0 1 -113176 11356 1 Module 11 6 349 7 0 0 Port 0 0 6 7 Port 1 3 6 7 FSlider 6 0 0 0 0 16384 1 FSlider 6 1 162 0 0 16384 1 FSlider 6 2 327 0 0 16384 1 FSlider 6 3 11234 0 0 16384 1 FSlider 6 4 6773 0 0 16384 1 FSlider 6 5 3650 0 0 16384 1 FSlider 6 6 16384 0 1638 163840 1 Module 10 7 7 41 0 0 FSlider 7 0 0 0 -16384 16384 1 ISlider 7 0 24 1 ComboBox 7 0 0 1 Module 15 8 45 234 0 0 Port 0 1 8 7 FSlider 8 0 23002 0 0 163840 1 FSlider 8 1 20581 0 0 163840 1 ams-2.0.1/demos/example_basic_vcf_reverb_filter_env.ams0000664000076400007640000000422707770061731020267 00000000000000Module 7 1 483 181 0 0 Port 0 0 1 10 Port 1 1 1 10 FSlider 1 0 13849 0 0 16384 1 FSlider 1 1 16384 0 0 16384 1 FSlider 1 2 16384 0 0 16384 1 ComboBox 1 0 1 1 Module 11 3 145 13 0 0 Port 0 0 3 12 FSlider 3 0 0 0 0 16384 1 FSlider 3 1 -80384 1 -113176 0 1 FSlider 3 2 98 0 0 16384 1 FSlider 3 3 3781 0 0 16384 1 FSlider 3 4 9746 0 0 16384 1 FSlider 3 5 -17121 1 -113176 0 1 FSlider 3 6 16384 0 1638 163840 1 Module 2 4 432 23 0 0 Port 0 0 4 3 Port 2 0 4 7 FSlider 4 0 0 0 0 163840 1 FSlider 4 1 0 0 0 163840 1 FSlider 4 2 19529 0 0 32768 1 FSlider 4 3 8192 0 0 32768 1 FSlider 4 4 8192 0 0 32768 1 Module 1 5 145 267 0 0 Port 1 1 5 12 Port 2 0 5 16 FSlider 5 0 0 0 0 16384 1 FSlider 5 1 1638 0 0 163840 1 FSlider 5 2 0 0 0 163840 1 FSlider 5 3 8192 0 1638 14745 1 FSlider 5 4 198 0 0 2972 1 FSlider 5 5 0 0 0 163840 1 ISlider 5 0 0 1 ISlider 5 1 1 1 ISlider 5 2 1 1 ComboBox 5 0 0 1 Module 9 7 319 118 0 0 Port 0 2 7 5 Port 1 0 7 9 Port 2 0 7 14 FSlider 7 0 7941 0 0 163840 1 FSlider 7 1 25021 0 10449 133827 1 FSMIDI 7 1 10 0 1 FSlider 7 2 20062 0 0 163840 1 FSlider 7 3 0 0 0 163840 1 FSlider 7 4 13107 0 163 16384 1 FSlider 7 5 0 0 0 16384 1 ComboBox 7 0 6 1 Module 15 9 145 158 0 0 Port 0 1 9 12 FSlider 9 0 1672 0 0 163840 1 FSlider 9 1 1672 0 0 163840 1 Module 6 10 564 45 0 cmt Freeverb (Version 3) Port 0 0 10 4 Port 1 0 10 4 FSlider 10 0 5057 0 0 16384 1 FSlider 10 1 -89825 1 -113176 0 1 FSlider 10 2 -16168 1 -113176 0 1 FSlider 10 3 -5338 1 -113176 0 1 FSlider 10 4 16384 0 0 16384 1 CheckBox 10 0 0 1 Module 10 12 13 120 0 0 FSlider 12 0 129 0 -16384 16384 1 FSMIDI 12 0 13 0 0 ISlider 12 0 24 1 ComboBox 12 0 0 1 Module 11 14 321 311 0 0 Port 0 0 14 12 FSlider 14 0 0 0 0 16384 1 FSlider 14 1 1386 0 0 16384 1 FSlider 14 2 0 0 0 16384 1 FSlider 14 3 7352 0 0 16384 1 FSlider 14 4 0 0 0 16384 1 FSlider 14 5 2353 0 0 16384 1 FSlider 14 6 1638 0 1638 163840 1 Module 3 16 17 267 0 0 FSlider 16 0 104490 0 0 1638400 1 FSlider 16 1 0 0 0 102940 1 Comment 0 0 466 301 200 170 #PARA# 0 0 0 In addition to some parameter modifications, a filter envelope and a LFO have been added. #ARAP# #PARA# 0 0 1 The filter envelope modifies the cutoff frequency and the LFO introduces a vibrato. #ARAP# ams-2.0.1/demos/example_wind.ams0000664000076400007640000000236607770061731013531 00000000000000Module 7 4 584 172 0 0 Port 0 0 4 8 Port 1 0 4 9 FSlider 4 0 11408 0 0 16384 1 FSlider 4 1 8192 0 0 16384 1 FSlider 4 2 8192 0 0 16384 1 ComboBox 4 0 1 1 Module 14 7 84 54 0 0 FSlider 7 0 8920 0 0 163840 1 FSlider 7 1 1690 0 0 16384 1 Module 9 8 401 51 0 0 Port 0 0 8 7 Port 1 0 8 16 Port 2 0 8 17 Port 3 2 8 10 FSlider 8 0 10824 0 0 163840 1 FSlider 8 1 95450 0 0 163840 1 FSlider 8 2 48217 0 0 163840 1 FSlider 8 3 4920 0 0 163840 1 FSlider 8 4 11318 0 163 16384 1 FSlider 8 5 0 0 0 16384 1 ComboBox 8 0 6 1 Module 9 9 405 248 0 0 Port 0 0 9 10 Port 1 0 9 18 Port 2 0 9 17 Port 3 2 9 10 FSlider 9 0 21157 0 0 163840 1 FSlider 9 1 79706 0 0 163840 1 FSlider 9 2 46741 0 0 163840 1 FSlider 9 3 6396 0 0 163840 1 FSlider 9 4 14923 0 163 16384 1 FSlider 9 5 0 0 0 16384 1 ComboBox 9 0 6 1 Module 14 10 84 180 0 0 FSlider 10 0 17839 0 0 163840 1 FSlider 10 1 2629 0 0 16384 1 Module 14 14 85 305 0 0 FSlider 14 0 36618 0 0 163840 1 FSlider 14 1 1972 0 0 16384 1 Module 15 16 238 138 0 0 Port 0 2 16 7 FSlider 16 0 33331 0 0 163840 1 FSlider 16 1 80746 0 0 163840 1 Module 15 17 237 339 0 0 Port 0 2 17 14 FSlider 17 0 24881 0 0 163840 1 FSlider 17 1 54926 0 0 163840 1 Module 15 18 240 241 0 0 Port 0 2 18 10 FSlider 18 0 29106 0 0 163840 1 FSlider 18 1 51171 0 0 163840 1 ams-2.0.1/demos/example_ams_demo_scope_spectrum_mcp_phaser.ams0000664000076400007640000000714707770061731021672 00000000000000Module 7 1 1019 238 0 0 Port 0 0 1 16 Port 1 1 1 16 FSlider 1 0 8192 0 0 16384 1 FSlider 1 1 8192 0 0 16384 1 FSlider 1 2 8192 0 0 16384 1 ComboBox 1 0 1 1 Module 11 3 318 33 0 0 Port 0 1 3 7 Port 1 1 3 7 FSlider 3 0 0 0 0 16384 1 FSlider 3 1 -106718 1 -113176 0 1 FSlider 3 2 0 0 0 16384 1 FSlider 3 3 3887 0 0 16384 1 FSlider 3 4 9742 0 0 16384 1 FSlider 3 5 6298 0 0 16384 1 FSlider 3 6 12354 0 1638 163840 1 Module 2 4 612 130 0 0 Port 0 0 4 3 Port 2 0 4 33 Port 3 0 4 29 FSlider 4 0 7042 0 0 163840 1 FSlider 4 1 0 0 0 163840 1 FSlider 4 2 9822 0 0 16384 1 FSlider 4 3 4953 0 0 16384 1 FSlider 4 4 8192 0 0 16384 1 Module 1 5 386 177 0 0 Port 1 0 5 7 FSlider 5 0 0 0 0 16384 1 FSlider 5 1 1638 0 0 163840 1 FSlider 5 2 0 0 0 163840 1 FSlider 5 3 8192 0 1638 14745 1 FSlider 5 4 0 0 0 16384 1 FSlider 5 5 0 0 0 102940 1 ISlider 5 0 3 1 ISlider 5 1 1 1 ISlider 5 2 1 1 ComboBox 5 0 0 1 Module 16 7 184 104 0 0 Port 0 1 7 12 Port 1 1 7 21 ComboBox 7 0 10 1 Module 14 12 14 148 0 0 FSlider 12 0 27228 0 0 163840 1 FSlider 12 1 6572 0 0 16384 1 Module 15 13 278 272 0 0 Port 0 0 13 7 FSlider 13 0 8192 0 0 163840 1 FSlider 13 1 8192 0 0 163840 1 Module 6 15 715 206 0 cmt Canyon Delay Port 0 0 15 4 Port 1 0 15 4 FSlider 15 0 9273 0 163 16220 1 FSlider 15 1 12347 0 -16384 16384 1 FSlider 15 2 6788 0 163 16220 1 FSlider 15 3 13661 0 -16384 16384 1 FSlider 15 4 81920000 0 16384 81920000 1 Module 6 16 842 51 0 cmt Freeverb (Version 3) Port 0 0 16 15 Port 1 1 16 15 FSlider 16 0 8215 0 0 16384 1 FSlider 16 1 -83988 1 -113176 0 1 FSlider 16 2 -9404 1 -113176 0 1 FSlider 16 3 0 1 -113176 0 1 FSlider 16 4 16384 0 0 16384 1 CheckBox 16 0 0 1 Module 15 18 381 411 0 0 Port 0 2 18 19 FSlider 18 0 98116 0 0 163840 1 FSlider 18 1 70418 0 0 163840 1 Module 14 19 238 408 0 0 FSlider 19 0 133325 0 0 163840 1 FSlider 19 1 16384 0 0 16384 1 Module 16 21 71 277 0 0 Port 0 2 21 12 ComboBox 21 0 0 1 Module 24 23 217 4 0 0 Port 0 0 23 4 FSlider 23 0 418607 0 163840 16384000 1 FSlider 23 1 49195 0 1638 163840 1 FSlider 23 2 -686 0 -16384 16384 1 ComboBox 23 0 1 1 ComboBox 23 1 0 1 Module 25 24 113 4 0 0 Port 0 0 24 4 FSlider 24 0 16384 0 1638 163840 1 FSlider 24 1 0 0 0 327680000 1 FSlider 24 2 163840000 0 0 327680000 1 ComboBox 24 0 1 1 ComboBox 24 1 0 1 ComboBox 24 2 0 1 ComboBox 24 3 1 1 ComboBox 24 4 2 1 ComboBox 24 5 4 1 CheckBox 24 0 1 1 Module 25 25 9 4 0 0 Port 0 0 25 4 FSlider 25 0 16384 0 1638 163840 1 FSlider 25 1 0 0 0 327680000 1 FSlider 25 2 163840000 0 0 327680000 1 ComboBox 25 0 0 1 ComboBox 25 1 0 1 ComboBox 25 2 0 1 ComboBox 25 3 1 1 ComboBox 25 4 2 1 ComboBox 25 5 4 1 CheckBox 25 0 1 1 Module 29 27 491 33 0 0 Port 0 1 27 12 Port 2 1 27 7 FSlider 27 0 6434 0 0 163840 1 FSlider 27 1 16384 0 0 163840 1 FSlider 27 2 8192 0 0 163840 1 ISlider 27 0 41 1 ISlider 27 1 0 1 ISlider 27 2 24 1 ISlider 27 3 25 1 ComboBox 27 0 9 1 ComboBox 27 1 2 1 Module 6 29 485 283 0 mvclpf24 Mvclpf-3 Port 0 2 29 5 Port 1 0 29 13 Port 2 0 29 18 Port 3 0 29 31 FSlider 29 0 -2117 0 -983040 163840 1 FSlider 29 1 38314 0 -81920 81920 1 FSlider 29 2 77051 0 0 163840 1 FSlider 29 3 6731 0 0 16384 1 FSlider 29 4 11939 0 0 16384 1 FSlider 29 5 245760 0 -245760 245760 1 Module 14 30 33 436 0 0 FSlider 30 0 112614 0 0 163840 1 FSlider 30 1 16384 0 0 16384 1 Module 15 31 177 319 0 0 Port 0 2 31 30 FSlider 31 0 18204 0 0 163840 1 FSlider 31 1 55460 0 0 163840 1 Module 6 33 722 355 0 cs_phaser Phaser1 Port 0 2 33 5 Port 1 0 33 18 Port 2 0 33 31 Port 3 1 33 15 FSlider 33 0 -140979 0 -655360 163840 1 FSlider 33 1 15876 0 -81920 81920 1 FSlider 33 2 74511 0 0 163840 1 FSlider 33 3 52497 0 0 163840 1 FSlider 33 4 14945 0 -16384 16384 1 FSlider 33 5 9526 0 -16384 16384 1 LSlider 33 0 30 1 ams-2.0.1/demos/organ02.ams0000664000076400007640000000317107770061731012320 00000000000000Module 33 1 123 87 0 0 Port 0 1 1 2 ISlider 1 0 0 1 ComboBox 1 0 1 1 Module 10 2 4 8 0 0 FSlider 2 0 0 0 -16384 16384 1 ISlider 2 0 24 1 ComboBox 2 0 0 1 Module 7 3 500 300 0 0 Port 0 0 3 6 Port 1 1 3 6 FSlider 3 0 8192 0 0 16384 1 FSlider 3 1 8192 0 0 16384 1 FSlider 3 2 8192 0 0 16384 1 ComboBox 3 0 1 1 Module 6 4 264 8 3 cmt Organ Port 0 0 4 2 Port 2 0 4 1 FSlider 4 0 16384 0 0 16384 1 FSlider 4 1 0 0 0 327680000 1 FSlider 4 2 16384 0 0 16384 1 FSlider 4 3 16384 0 0 16384 1 FSlider 4 4 16384 0 0 16384 1 FSlider 4 5 16384 0 0 16384 1 FSlider 4 6 16384 0 0 16384 1 FSlider 4 7 16384 0 0 16384 1 FSlider 4 8 163 0 163 16384 1 FSlider 4 9 163 0 163 16384 1 FSlider 4 10 16384 0 0 16384 1 FSlider 4 11 163 0 163 16384 1 FSlider 4 12 163 0 163 16384 1 FSlider 4 13 163 0 163 16384 1 FSlider 4 14 16384 0 0 16384 1 FSlider 4 15 163 0 163 16384 1 CheckBox 4 0 0 1 CheckBox 4 1 1 1 CheckBox 4 2 1 1 CheckBox 4 3 1 1 Module 6 6 502 178 0 g2reverb Stereo reverb Port 0 0 6 8 Port 1 0 6 8 FSlider 6 0 1446312 0 163840 2457600 1 FSlider 6 1 41686 0 16384 327680 1 FSlider 6 2 13115 0 0 16384 1 FSlider 6 3 4520 0 0 16384 1 FSlider 6 4 0 0 -1310720 0 1 FSlider 6 5 -67796 0 -1310720 0 1 FSlider 6 6 -158190 0 -1310720 0 1 Module 11 7 123 218 0 0 Port 0 0 7 2 Port 1 3 7 2 FSlider 7 0 0 0 0 16384 1 FSlider 7 1 81 0 0 16384 1 FSlider 7 2 0 0 0 16384 1 FSlider 7 3 487 0 0 16384 1 FSlider 7 4 16384 0 0 16384 1 FSlider 7 5 203 0 0 16384 1 FSlider 7 6 16384 0 1638 163840 1 Module 2 8 562 9 0 0 Port 0 0 8 7 Port 2 0 8 4 FSlider 8 0 0 0 0 163840 1 FSlider 8 1 0 0 0 163840 1 FSlider 8 2 16384 0 0 32768 1 FSlider 8 3 16384 0 0 32768 1 FSlider 8 4 16384 0 0 32768 1 ams-2.0.1/demos/example_ams_demo_scope_spectrum_drums.ams0000664000076400007640000000701407770061731020674 00000000000000Module 7 1 1019 238 0 0 Port 0 0 1 16 Port 1 1 1 16 FSlider 1 0 8192 0 0 16384 1 FSlider 1 1 8192 0 0 16384 1 FSlider 1 2 8192 0 0 16384 1 ComboBox 1 0 1 1 Module 11 3 318 33 0 0 Port 0 1 3 7 Port 1 1 3 7 FSlider 3 0 0 0 0 16384 1 FSlider 3 1 -106718 1 -113176 0 1 FSlider 3 2 0 0 0 16384 1 FSlider 3 3 3887 0 0 16384 1 FSlider 3 4 9742 0 0 16384 1 FSlider 3 5 6298 0 0 16384 1 FSlider 3 6 12354 0 1638 163840 1 Module 2 4 612 130 0 0 Port 0 0 4 3 Port 2 0 4 10 FSlider 4 0 7042 0 0 163840 1 FSlider 4 1 0 0 0 163840 1 FSlider 4 2 8192 0 0 16384 1 FSlider 4 3 8192 0 0 16384 1 FSlider 4 4 8192 0 0 16384 1 Module 1 5 386 177 0 0 Port 1 0 5 7 FSlider 5 0 0 0 0 16384 1 FSlider 5 1 1638 0 0 163840 1 FSlider 5 2 0 0 0 163840 1 FSlider 5 3 8192 0 1638 14745 1 FSlider 5 4 0 0 0 16384 1 FSlider 5 5 0 0 0 102940 1 ISlider 5 0 3 1 ISlider 5 1 1 1 ISlider 5 2 1 1 ComboBox 5 0 0 1 Module 16 7 184 104 0 0 Port 0 1 7 12 Port 1 1 7 21 ComboBox 7 0 10 1 Module 9 10 498 228 0 0 Port 0 2 10 5 Port 1 0 10 13 Port 2 0 10 18 FSlider 10 0 43297 0 0 163840 1 FSlider 10 1 111687 0 0 163840 1 FSlider 10 2 48709 0 0 163840 1 FSlider 10 3 0 0 0 163840 1 FSlider 10 4 13107 0 163 16384 1 FSlider 10 5 0 0 0 16384 1 ComboBox 10 0 6 1 Module 14 12 14 148 0 0 FSlider 12 0 27228 0 0 163840 1 FSlider 12 1 6572 0 0 16384 1 Module 15 13 278 272 0 0 Port 0 0 13 7 FSlider 13 0 8192 0 0 163840 1 FSlider 13 1 8192 0 0 163840 1 Module 6 15 715 206 0 cmt Canyon Delay Port 0 0 15 4 Port 1 0 15 4 FSlider 15 0 9273 0 163 16220 1 FSlider 15 1 12347 0 -16384 16384 1 FSlider 15 2 6788 0 163 16220 1 FSlider 15 3 13661 0 -16384 16384 1 FSlider 15 4 81920000 0 16384 81920000 1 Module 6 16 868 232 0 cmt Freeverb (Version 3) Port 0 0 16 15 Port 1 1 16 15 FSlider 16 0 8215 0 0 16384 1 FSlider 16 1 -83988 1 -113176 0 1 FSlider 16 2 -9404 1 -113176 0 1 FSlider 16 3 0 1 -113176 0 1 FSlider 16 4 16384 0 0 16384 1 CheckBox 16 0 0 1 Module 15 18 381 411 0 0 Port 0 2 18 19 FSlider 18 0 98116 0 0 163840 1 FSlider 18 1 70418 0 0 163840 1 Module 14 19 240 422 0 0 FSlider 19 0 133325 0 0 163840 1 FSlider 19 1 16384 0 0 16384 1 Module 16 21 71 302 0 0 Port 0 2 21 12 ComboBox 21 0 0 1 Module 24 23 217 4 0 0 Port 0 0 23 4 FSlider 23 0 418607 0 163840 16384000 1 FSlider 23 1 49195 0 1638 163840 1 FSlider 23 2 -686 0 -16384 16384 1 ComboBox 23 0 1 1 ComboBox 23 1 0 1 Module 25 24 113 4 0 0 Port 0 0 24 4 FSlider 24 0 16384 0 1638 163840 1 FSlider 24 1 0 0 0 327680000 1 FSlider 24 2 163840000 0 0 327680000 1 ComboBox 24 0 1 1 ComboBox 24 1 0 1 ComboBox 24 2 0 1 ComboBox 24 3 1 1 ComboBox 24 4 2 1 ComboBox 24 5 4 1 CheckBox 24 0 1 1 Module 25 25 9 4 0 0 Port 0 0 25 4 FSlider 25 0 16384 0 1638 163840 1 FSlider 25 1 0 0 0 327680000 1 FSlider 25 2 163840000 0 0 327680000 1 ComboBox 25 0 0 1 ComboBox 25 1 0 1 ComboBox 25 2 0 1 ComboBox 25 3 1 1 ComboBox 25 4 2 1 ComboBox 25 5 4 1 CheckBox 25 0 1 1 Module 29 27 491 33 0 0 Port 0 1 27 12 Port 2 1 27 7 FSlider 27 0 6434 0 0 163840 1 FSlider 27 1 16384 0 0 163840 1 FSlider 27 2 8192 0 0 163840 1 ISlider 27 0 41 1 ISlider 27 1 0 1 ISlider 27 2 24 1 ISlider 27 3 25 1 ComboBox 27 0 9 1 ComboBox 27 1 2 1 Comment 0 0 182 160 433 206 #PARA# 0 0 0 This patch has been contributed by Bill Allen. #ARAP# #PARA# 0 0 1 #ARAP# #PARA# 0 0 2 Here, a MIDI Out module adds some percussion which is sent on the MIDI drum channel. You have to connect the first readable MIDI port of AlsaModularSynth with a GM MIDI compatible sound source to hear the drums. You can play with the Gain 0 and Offset 0 parameters of the #ARAP# #PARA# 0 0 3 MIDI Out module to modify the percussion. #ARAP# ams-2.0.1/demos/example_ringmod.ams0000664000076400007640000000345107770061731014223 00000000000000Module 7 1 636 341 0 0 Port 0 0 1 9 Port 1 1 1 9 FSlider 1 0 8192 0 0 16384 1 FSlider 1 1 8192 0 0 16384 1 FSlider 1 2 8192 0 0 16384 1 ComboBox 1 0 1 1 Module 10 2 2 40 0 0 FSlider 2 0 0 0 -16384 16384 1 ISlider 2 0 24 1 ComboBox 2 0 0 1 Module 11 3 132 42 0 0 Port 0 0 3 2 Port 1 3 3 2 FSlider 3 0 0 0 0 16384 1 FSlider 3 1 16384 0 0 16384 1 FSlider 3 2 0 0 0 16384 1 FSlider 3 3 16384 0 0 16384 1 FSlider 3 4 0 0 0 16384 1 FSlider 3 5 819 0 0 16384 1 FSlider 3 6 47408 0 1638 163840 1 Module 11 4 134 210 0 0 Port 0 0 4 2 Port 1 3 4 2 FSlider 4 0 0 0 0 16384 1 FSlider 4 1 819 0 0 16384 1 FSlider 4 2 327 0 0 16384 1 FSlider 4 3 1638 0 0 16384 1 FSlider 4 4 11468 0 0 16384 1 FSlider 4 5 819 0 0 16384 1 FSlider 4 6 16384 0 1638 163840 1 Module 1 5 268 256 0 0 Port 1 1 5 2 FSlider 5 0 0 0 0 16384 1 FSlider 5 1 8192 0 1638 14745 1 FSlider 5 2 0 0 0 16384 1 FSlider 5 3 0 0 0 102940 1 FSlider 5 4 0 0 0 163840 1 FSlider 5 5 0 0 0 163840 1 ISlider 5 0 3 1 ISlider 5 1 1 1 ISlider 5 2 1 1 ComboBox 5 0 0 1 Module 1 6 266 20 0 0 Port 1 1 6 2 Port 2 0 6 3 FSlider 6 0 0 0 0 16384 1 FSlider 6 1 8192 0 1638 14745 1 FSlider 6 2 0 0 0 16384 1 FSlider 6 3 0 0 0 102940 1 FSlider 6 4 66509 0 0 163840 1 FSlider 6 5 0 0 0 163840 1 ISlider 6 0 3 1 ISlider 6 1 1 1 ISlider 6 2 1 1 ComboBox 6 0 0 1 Module 5 7 382 46 0 0 Port 0 0 7 6 Port 1 1 7 5 FSlider 7 0 8192 0 0 81920 1 Module 2 8 397 183 0 0 Port 0 0 8 4 Port 2 0 8 7 FSlider 8 0 0 0 0 16384 1 FSlider 8 1 0 0 0 16384 1 FSlider 8 2 16384 0 0 32768 1 FSlider 8 3 16384 0 0 32768 1 FSlider 8 4 16384 0 0 32768 1 Module 6 9 392 341 0 gverb_1216 GVerb Port 0 0 9 8 FSlider 9 0 1741829 0 16384 4915200 1 FSlider 9 1 30685 0 1638 5898240 1 FSlider 9 2 6457 0 0 16384 1 FSlider 9 3 13156 0 0 16384 1 FSlider 9 4 0 0 -1146880 0 1 FSlider 9 5 -214687 0 -1146880 0 1 FSlider 9 6 0 0 -1146880 0 1 ams-2.0.1/demos/classical.ams0000664000076400007640000000420407770061731013004 00000000000000Module 7 1 574 69 0 0 Port 0 0 1 4 Port 1 0 1 4 FSlider 1 0 13849 0 0 16384 1 FSlider 1 1 16384 0 0 16384 1 FSlider 1 2 16384 0 0 16384 1 ComboBox 1 0 1 1 Module 11 3 145 13 0 0 Port 0 0 3 12 Port 1 3 3 12 FSlider 3 0 0 0 0 16384 1 FSlider 3 1 -72548 1 -113176 0 1 FSlider 3 2 98 0 0 16384 1 FSlider 3 3 7688 0 0 16384 1 FSlider 3 4 9746 0 0 16384 1 FSlider 3 5 -17120 1 -113176 0 1 FSlider 3 6 16384 0 1638 163840 1 Module 2 4 432 23 0 0 Port 0 0 4 3 Port 2 0 4 18 FSlider 4 0 0 0 0 163840 1 FSlider 4 1 0 0 0 163840 1 FSlider 4 2 19529 0 0 32768 1 FSlider 4 3 8192 0 0 32768 1 FSlider 4 4 8192 0 0 32768 1 Module 1 5 145 267 0 0 Port 1 1 5 12 Port 2 0 5 16 FSlider 5 0 0 0 0 16384 1 FSlider 5 1 1638 0 0 163840 1 FSlider 5 2 0 0 0 163840 1 FSlider 5 3 8192 0 1638 14745 1 FSlider 5 4 198 0 0 2972 1 FSlider 5 5 0 0 0 163840 1 ISlider 5 0 0 1 ISlider 5 1 1 1 ISlider 5 2 1 1 ComboBox 5 0 0 1 Module 15 9 145 158 0 0 Port 0 1 9 12 FSlider 9 0 1672 0 0 163840 1 FSlider 9 1 1672 0 0 163840 1 Module 10 12 13 120 0 0 FSlider 12 0 129 0 -16384 16384 1 FSMIDI 12 0 13 0 0 ISlider 12 0 24 1 ComboBox 12 0 0 1 Module 11 14 258 350 0 0 Port 0 0 14 12 Port 1 3 14 12 FSlider 14 0 0 0 0 16384 1 FSlider 14 1 252 0 0 16384 1 FSlider 14 2 0 0 0 16384 1 FSlider 14 3 15124 0 0 16384 1 FSlider 14 4 0 0 0 16384 1 FSlider 14 5 3319 0 0 16384 1 FSlider 14 6 1638 0 1638 163840 1 Module 3 16 17 267 0 0 FSlider 16 0 104490 0 0 1638400 1 FSlider 16 1 0 0 0 102940 1 Module 6 18 259 175 0 mvclpf24 Mvclpf-3 Port 0 0 18 21 Port 1 0 18 9 Port 2 0 18 14 FSlider 18 0 -231131 0 -983040 163840 1 FSlider 18 1 -49412 0 -49412 33192 1 FSMIDI 18 1 10 0 1 FSlider 18 2 76904 0 0 163840 1 FSlider 18 3 0 0 0 16384 1 FSlider 18 4 0 0 0 16384 1 FSlider 18 5 184320 0 -245760 245760 1 Module 1 20 493 258 0 0 Port 1 1 20 12 FSlider 20 0 84 0 0 16384 1 FSlider 20 1 8192 0 1638 14745 1 FSlider 20 2 0 0 0 16384 1 FSlider 20 3 0 0 0 102940 1 FSlider 20 4 0 0 0 163840 1 FSlider 20 5 0 0 0 163840 1 ISlider 20 0 3 1 ISlider 20 1 1 1 ISlider 20 2 1 1 ComboBox 20 0 0 1 Module 8 21 610 314 2 0 Port 0 2 21 5 Port 1 3 21 20 FSlider 21 0 16384 0 0 32768 1 FSlider 21 1 16384 0 0 32768 1 FSlider 21 2 16384 0 0 32768 1 ams-2.0.1/demos/example_vcEnvelope_exp.ams0000664000076400007640000000260707770061731015550 00000000000000Module 34 1 493 33 0 0 Port 0 0 1 3 Port 1 3 1 3 Port 2 0 1 9 Port 3 0 1 12 Port 5 0 1 12 FSlider 1 0 16384 0 0 16384 1 FSlider 1 1 16384 0 0 16384 1 FSlider 1 2 10533 0 0 16384 1 FSlider 1 3 16384 0 0 16384 1 ComboBox 1 0 1 1 ComboBox 1 1 1 1 Module 7 2 639 342 0 0 Port 0 0 2 4 Port 1 0 2 4 FSlider 2 0 8192 0 0 16384 1 FSlider 2 1 8192 0 0 16384 1 FSlider 2 2 8192 0 0 16384 1 ComboBox 2 0 1 1 Module 10 3 7 15 0 0 FSlider 3 0 0 0 -16384 16384 1 ISlider 3 0 12 1 ComboBox 3 0 0 1 Module 2 4 641 143 0 0 Port 0 0 4 1 Port 2 0 4 6 FSlider 4 0 0 0 0 163840 1 FSlider 4 1 0 0 0 163840 1 FSlider 4 2 16384 0 0 32768 1 FSlider 4 3 16384 0 0 32768 1 FSlider 4 4 16384 0 0 32768 1 Module 1 5 115 253 0 0 Port 1 1 5 3 FSlider 5 0 0 0 0 16384 1 FSlider 5 1 8192 0 1638 14745 1 FSlider 5 2 0 0 0 16384 1 FSlider 5 3 0 0 0 102940 1 FSlider 5 4 0 0 0 163840 1 FSlider 5 5 0 0 0 163840 1 ISlider 5 0 1 1 ISlider 5 1 1 1 ISlider 5 2 1 1 ComboBox 5 0 0 1 Module 6 6 380 339 0 mvclpf24 Mvclpf-3 Port 0 2 6 5 Port 1 1 6 3 Port 2 0 6 1 FSlider 6 0 0 0 -983040 163840 1 FSlider 6 1 -81920 0 -81920 81920 1 FSlider 6 2 133170 0 0 163840 1 FSlider 6 3 8273 0 0 16384 1 FSlider 6 4 0 0 0 16384 1 FSlider 6 5 0 0 -245760 245760 1 Module 13 9 233 97 0 0 Port 0 2 9 3 Module 13 12 367 185 0 0 Port 0 0 12 13 Module 8 13 234 231 2 0 Port 0 1 13 3 FSlider 13 0 2906 0 0 32768 1 FSlider 13 1 16384 0 0 32768 1 FSlider 13 2 16384 0 0 32768 1 ams-2.0.1/demos/sequence02b.ams0000664000076400007640000000565107770061731013171 00000000000000Module 7 2 985 187 0 0 Port 0 0 2 13 Port 1 1 2 13 FSlider 2 0 8192 0 0 16384 1 FSlider 2 1 8192 0 0 16384 1 FSlider 2 2 8192 0 0 16384 1 ComboBox 2 0 1 1 Module 1 3 204 192 0 0 Port 1 1 3 10 Port 4 0 3 11 FSlider 3 0 0 0 0 16384 1 FSlider 3 1 1638 0 0 163840 1 FSlider 3 2 0 0 0 163840 1 FSlider 3 3 8192 0 1638 14745 1 FSlider 3 4 3838 0 0 16384 1 FSlider 3 5 0 0 0 102940 1 ISlider 3 0 2 1 ISlider 3 1 1 1 ISlider 3 2 1 1 ComboBox 3 0 0 1 Module 9 4 503 186 0 0 Port 0 0 4 15 Port 1 1 4 10 Port 2 1 4 12 FSlider 4 0 12121 0 0 163840 1 FSlider 4 1 65930 0 0 163840 1 FSlider 4 2 49693 0 0 163840 1 FSlider 4 3 0 0 0 163840 1 FSlider 4 4 3281 0 163 16384 1 FSlider 4 5 0 0 0 16384 1 ComboBox 4 0 1 1 Module 11 5 215 49 0 0 Port 0 0 5 10 FSlider 5 0 0 0 0 16384 1 FSlider 5 1 -86324 1 -113176 0 1 FSlider 5 2 1968 0 0 16384 1 FSlider 5 3 -24470 1 -113176 0 1 FSlider 5 4 0 0 0 16384 1 FSlider 5 5 819 0 0 16384 1 FSlider 5 6 16384 0 1638 163840 1 Module 2 6 645 112 0 0 Port 0 0 6 5 Port 2 0 6 4 FSlider 6 0 0 0 0 163840 1 FSlider 6 1 0 0 0 163840 1 FSlider 6 2 8192 0 0 16384 1 FSlider 6 3 8192 0 0 16384 1 FSlider 6 4 8192 0 0 16384 1 Module 12 10 16 50 16 0 ISlider 10 0 0 1 ISlider 10 1 111 1 ISlider 10 2 31 1 ISlider 10 3 63 1 ISlider 10 4 12 1 ISlider 10 5 63 1 ISlider 10 6 32 1 ISlider 10 7 63 1 ISlider 10 8 10 1 ISlider 10 9 63 1 ISlider 10 10 31 1 ISlider 10 11 63 1 ISlider 10 12 11 1 ISlider 10 13 63 1 ISlider 10 14 29 1 ISlider 10 15 63 1 ISlider 10 16 12 1 ISlider 10 17 63 1 ISlider 10 18 31 1 ISlider 10 19 63 1 ISlider 10 20 24 1 ISlider 10 21 63 1 ISlider 10 22 27 1 ISlider 10 23 63 1 ISlider 10 24 31 1 ISlider 10 25 63 1 ISlider 10 26 31 1 ISlider 10 27 63 1 ISlider 10 28 7 1 ISlider 10 29 63 1 ISlider 10 30 32 1 ISlider 10 31 63 1 ISlider 10 32 43 1 ISlider 10 33 63 1 ComboBox 10 0 1 1 CheckBox 10 0 1 1 CheckBox 10 1 1 1 CheckBox 10 2 1 1 CheckBox 10 3 1 1 CheckBox 10 4 1 1 CheckBox 10 5 1 1 CheckBox 10 6 1 1 CheckBox 10 7 1 1 CheckBox 10 8 1 1 CheckBox 10 9 1 1 CheckBox 10 10 1 1 CheckBox 10 11 1 1 CheckBox 10 12 1 1 CheckBox 10 13 1 1 CheckBox 10 14 1 1 CheckBox 10 15 1 1 Module 3 11 31 276 0 0 FSlider 11 0 93891 0 0 1638400 1 FSlider 11 1 0 0 0 102940 1 Module 3 12 335 369 0 0 FSlider 12 0 -47346 1 -75451 75451 1 FSlider 12 1 0 0 0 102940 1 Module 6 13 783 186 0 cmt Freeverb (Version 3) Port 0 0 13 6 Port 1 0 13 6 FSlider 13 0 8591 0 0 16384 1 FSlider 13 1 -78802 1 -113176 0 1 FSlider 13 2 -14592 1 -113176 0 1 FSlider 13 3 -11674 1 -113176 0 1 FSlider 13 4 16384 0 0 16384 1 CheckBox 13 0 0 1 Module 1 14 203 427 0 0 Port 1 1 14 10 Port 4 1 14 11 FSlider 14 0 -72732 1 -113176 0 1 FSlider 14 1 1638 0 0 163840 1 FSlider 14 2 0 0 0 163840 1 FSlider 14 3 8192 0 1638 14745 1 FSlider 14 4 0 0 0 16384 1 FSlider 14 5 0 0 0 102940 1 ISlider 14 0 1 1 ISlider 14 1 1 1 ISlider 14 2 1 1 ComboBox 14 0 0 1 Module 8 15 332 251 2 0 Port 0 3 15 3 Port 1 3 15 14 FSlider 15 0 8192 0 0 16384 1 FSlider 15 1 8192 0 0 16384 1 FSlider 15 2 16384 0 0 16384 1 ams-2.0.1/demos/bass.ams0000664000076400007640000000474007770061731012003 00000000000000Module 7 1 586 79 0 0 Port 0 0 1 4 Port 1 0 1 4 FSlider 1 0 4180 0 0 16384 1 FSlider 1 1 16384 0 0 16384 1 FSlider 1 2 16384 0 0 16384 1 ComboBox 1 0 1 1 Module 11 3 145 13 0 0 Port 0 0 3 12 Port 1 3 3 12 FSlider 3 0 0 0 0 16384 1 FSlider 3 1 -107579 1 -113176 0 1 FSlider 3 2 98 0 0 16384 1 FSlider 3 3 6797 0 0 16384 1 FSlider 3 4 9902 0 0 16384 1 FSlider 3 5 -2176 1 -113176 0 1 FSlider 3 6 16384 0 1638 163840 1 Module 2 4 432 23 0 0 Port 0 0 4 3 Port 2 0 4 20 FSlider 4 0 0 0 0 163840 1 FSlider 4 1 0 0 0 163840 1 FSlider 4 2 19529 0 0 32768 1 FSlider 4 3 8192 0 0 32768 1 FSlider 4 4 8192 0 0 32768 1 Module 1 5 168 275 0 0 Port 1 1 5 12 FSlider 5 0 0 0 0 16384 1 FSlider 5 1 1638 0 0 163840 1 FSlider 5 2 0 0 0 163840 1 FSlider 5 3 8192 0 1638 14745 1 FSlider 5 4 0 0 0 163840 1 FSlider 5 5 0 0 0 163840 1 ISlider 5 0 0 1 ISlider 5 1 1 1 ISlider 5 2 1 1 ComboBox 5 0 0 1 Module 10 12 13 120 0 0 FSlider 12 0 129 0 -16384 16384 1 ISlider 12 0 24 1 ComboBox 12 0 0 1 Module 1 14 358 292 0 0 Port 1 1 14 12 FSlider 14 0 180 0 0 16384 1 FSlider 14 1 8192 0 1638 14745 1 FSlider 14 2 0 0 0 16384 1 FSlider 14 3 0 0 0 102940 1 FSlider 14 4 0 0 0 163840 1 FSlider 14 5 0 0 0 163840 1 ISlider 14 0 0 1 ISlider 14 1 1 1 ISlider 14 2 1 1 ComboBox 14 0 0 1 Module 1 15 537 291 0 0 Port 1 1 15 12 FSlider 15 0 270 0 0 16384 1 FSlider 15 1 8192 0 1638 14745 1 FSlider 15 2 0 0 0 16384 1 FSlider 15 3 0 0 0 102940 1 FSlider 15 4 0 0 0 163840 1 FSlider 15 5 0 0 0 163840 1 ISlider 15 0 0 1 ISlider 15 1 1 1 ISlider 15 2 1 1 ComboBox 15 0 0 1 Module 8 16 693 319 4 0 Port 0 2 16 5 Port 1 2 16 14 Port 2 2 16 15 FSlider 16 0 16384 0 0 32768 1 FSlider 16 1 16384 0 0 32768 1 FSlider 16 2 16384 0 0 32768 1 FSlider 16 3 16384 0 0 32768 1 FSlider 16 4 16384 0 0 32768 1 Module 11 18 23 270 0 0 Port 0 0 18 12 Port 1 3 18 12 FSlider 18 0 0 0 0 16384 1 FSlider 18 1 360 0 0 16384 1 FSlider 18 2 0 0 0 16384 1 FSlider 18 3 12648 0 0 16384 1 FSlider 18 4 0 0 0 16384 1 FSlider 18 5 16384 0 0 16384 1 FSlider 18 6 23918 0 1638 163840 1 Module 6 20 195 144 0 mvclpf24 Mvclpf-3 Port 0 0 20 16 Port 1 1 20 12 Port 2 0 20 18 FSlider 20 0 163840 0 -983040 163840 1 FSlider 20 1 -54829 0 -81920 81920 1 FSMIDI 20 1 13 0 0 FSlider 20 2 52981 0 0 163840 1 FSlider 20 3 7482 0 0 16384 1 FSMIDI 20 3 10 0 1 FSlider 20 4 0 0 0 16384 1 FSlider 20 5 -9350 0 -245760 245760 1 Comment 0 0 266 165 258 177 #PARA# 0 0 0 In this powerful bass patch the cutoff frequency has been bound to the Pitchbend parameter and the resonance is bound to the ModWheel. #ARAP# ams-2.0.1/demos/example_phaser_bassclang.ams0000664000076400007640000000453607770061731016070 00000000000000Module 7 1 797 190 0 0 Port 0 0 1 18 Port 1 1 1 18 FSlider 1 0 16384 0 0 16384 1 FSlider 1 1 16384 0 0 16384 1 FSlider 1 2 16384 0 0 16384 1 ComboBox 1 0 1 1 Module 25 3 795 101 0 0 Port 0 0 3 19 FSlider 3 0 16384 0 1638 163840 1 FSlider 3 1 0 0 0 327680000 1 FSlider 3 2 327680000 0 0 327680000 1 ComboBox 3 0 0 1 ComboBox 3 1 0 1 ComboBox 3 2 0 1 ComboBox 3 3 2 1 ComboBox 3 4 2 1 ComboBox 3 5 4 1 CheckBox 3 0 1 1 Module 1 7 146 226 0 0 Port 1 1 7 13 FSlider 7 0 0 0 0 16384 1 FSlider 7 1 8507 0 1638 14745 1 FSlider 7 2 0 0 0 16384 1 FSlider 7 3 0 0 0 102940 1 FSlider 7 4 0 0 0 163840 1 FSlider 7 5 0 0 0 163840 1 ISlider 7 0 0 1 ISlider 7 1 1 1 ISlider 7 2 3 1 ComboBox 7 0 0 1 Module 6 12 493 60 0 cs_chorus Chorus2 Port 0 0 12 16 FSlider 12 0 199332 0 0 491520 1 FSlider 12 1 -17349 1 -95176 17999 1 FSlider 12 2 25174 0 0 163840 1 FSlider 12 3 21475 1 -75451 37725 1 FSlider 12 4 3343 0 0 49152 1 Module 10 13 7 167 0 0 FSlider 13 0 0 0 -16384 16384 1 ISlider 13 0 12 1 ComboBox 13 0 0 1 Module 11 15 140 84 0 0 Port 0 0 15 13 FSlider 15 0 0 0 0 16384 1 FSlider 15 1 16384 0 0 16384 1 FSlider 15 2 327 0 0 16384 1 FSlider 15 3 10755 0 0 16384 1 FSlider 15 4 7478 0 0 16384 1 FSlider 15 5 10124 0 0 16384 1 FSlider 15 6 16384 0 1638 163840 1 Module 2 16 308 102 0 0 Port 0 0 16 15 Port 2 2 16 7 FSlider 16 0 0 0 0 16384 1 FSlider 16 1 0 0 0 16384 1 FSlider 16 2 16384 0 0 32768 1 FSlider 16 3 16384 0 0 32768 1 FSlider 16 4 16384 0 0 32768 1 Module 6 18 488 342 0 gverb_1216 GVerb Port 0 0 18 19 FSlider 18 0 497628 0 16384 4915200 1 FSlider 18 1 120461 0 1638 5898240 1 FSlider 18 2 6933 0 0 16384 1 FSlider 18 3 14898 0 0 16384 1 FSlider 18 4 -149211 0 -1146880 0 1 FSlider 18 5 -245760 0 -1146880 0 1 FSlider 18 6 -231131 0 -1146880 0 1 Module 6 19 492 168 0 cs_phaser Phaser1 Port 0 0 19 12 Port 1 1 19 22 Port 3 0 19 20 FSlider 19 0 -360699 0 -655360 163840 1 FSlider 19 1 35109 0 -81920 81920 1 FSlider 19 2 0 0 0 163840 1 FSlider 19 3 70733 0 0 163840 1 FSlider 19 4 16198 0 -16384 16384 1 FSlider 19 5 8213 0 -16384 16384 1 LSlider 19 0 30 1 Module 3 20 312 306 0 0 FSlider 20 0 -38183 1 -75451 75451 1 FSlider 20 1 0 0 0 102940 1 Module 11 22 264 19 0 0 Port 0 0 22 13 FSlider 22 0 0 0 0 16384 1 FSlider 22 1 819 0 0 16384 1 FSlider 22 2 327 0 0 16384 1 FSlider 22 3 1638 0 0 16384 1 FSlider 22 4 11468 0 0 16384 1 FSlider 22 5 2689 0 0 16384 1 FSlider 22 6 16384 0 1638 163840 1 ams-2.0.1/demos/example_full_midi.ams0000664000076400007640000000630107770061731014525 00000000000000Module 7 1 680 387 0 0 Port 0 0 1 10 Port 1 1 1 10 FSlider 1 0 13849 0 0 16384 1 FSlider 1 1 16384 0 0 16384 1 FSlider 1 2 16384 0 0 16384 1 ComboBox 1 0 1 1 Module 11 3 145 13 0 0 Port 0 0 3 12 FSlider 3 0 0 0 0 16384 1 FSlider 3 1 -80203 1 -113175 0 1 FSMIDI 3 1 10 0 0 FSlider 3 2 -81675 1 -113176 0 1 FSlider 3 3 -44558 1 -113176 0 1 FSMIDI 3 3 10 0 1 FSlider 3 4 8772 0 0 16384 1 FSMIDI 3 4 10 0 2 FSlider 3 5 -87332 1 -113175 0 1 FSMIDI 3 5 10 0 3 FSlider 3 6 16384 0 1638 163840 1 Module 2 4 638 180 0 0 Port 0 0 4 3 Port 2 0 4 7 FSlider 4 0 0 0 0 163840 1 FSlider 4 1 0 0 0 163840 1 FSlider 4 2 19529 0 0 32768 1 FSlider 4 3 8192 0 0 32768 1 FSlider 4 4 8192 0 0 32768 1 Module 1 5 189 262 0 0 Port 1 1 5 12 Port 2 0 5 14 FSlider 5 0 0 0 0 16384 1 FSlider 5 1 -37725 1 -113176 11610 1 FSMIDI 5 1 10 0 5 FSlider 5 2 0 0 0 163840 1 FSlider 5 3 8192 0 1638 14745 1 FSlider 5 4 0 0 0 163840 1 FSlider 5 5 0 0 0 163840 1 ISlider 5 0 0 1 ISlider 5 1 1 1 ISlider 5 2 1 1 ComboBox 5 0 0 1 Module 9 7 507 172 0 0 Port 0 0 7 16 Port 1 0 7 9 Port 2 0 7 14 Port 3 0 7 18 FSlider 7 0 2926 0 0 163840 1 FSlider 7 1 50465 0 0 139328 1 FSMIDI 7 1 10 0 1 FSlider 7 2 -54221 1 -113176 11612 1 FSMIDI 7 2 10 0 6 FSlider 7 3 86435 0 0 163840 1 FSMIDI 7 3 10 0 7 FSlider 7 4 11464 0 163 16384 1 FSlider 7 5 0 0 0 16384 1 ComboBox 7 0 6 1 Module 15 9 225 158 0 0 Port 0 1 9 12 FSlider 9 0 1408 0 0 163840 1 FSlider 9 1 1408 0 0 163840 1 Module 6 10 505 386 0 cmt Freeverb (Version 3) Port 0 0 10 4 Port 1 0 10 4 FSlider 10 0 11502 0 0 16384 1 FSlider 10 1 -89825 1 -113176 0 1 FSlider 10 2 -5764 1 -113176 0 1 FSlider 10 3 -5764 1 -113176 0 1 FSlider 10 4 16384 0 0 16384 1 CheckBox 10 0 0 1 Module 10 12 13 120 0 0 FSlider 12 0 129 0 -16384 16384 1 FSMIDI 12 0 13 0 0 ISlider 12 0 24 1 ComboBox 12 0 0 1 Module 3 14 12 346 0 0 FSlider 14 0 108298 0 0 491213 1 FSMIDI 14 0 10 0 4 FSlider 14 1 0 0 0 102940 1 Module 14 15 11 606 0 0 FSlider 15 0 81920 0 0 163840 1 FSlider 15 1 8192 0 0 16384 1 Module 8 16 348 356 4 0 Port 0 2 16 5 Port 1 2 16 17 Port 2 2 16 20 Port 3 0 16 15 FSlider 16 0 16431 0 0 32768 1 FSlider 16 1 32768 0 0 32768 1 FSMIDI 16 1 10 0 12 FSlider 16 2 17545 0 0 32768 1 FSMIDI 16 2 10 0 13 FSlider 16 3 17287 0 0 32768 1 FSMIDI 16 3 10 0 14 FSlider 16 4 16771 0 0 32768 1 FSMIDI 16 4 10 0 15 Module 1 17 189 507 0 0 Port 1 1 17 12 Port 2 0 17 14 FSlider 17 0 49 0 0 16384 1 FSlider 17 1 -37725 1 -113175 11612 1 FSMIDI 17 1 10 0 5 FSlider 17 2 0 0 0 163840 1 FSlider 17 3 8192 0 1638 14745 1 FSlider 17 4 0 0 0 163840 1 FSlider 17 5 0 0 0 163840 1 ISlider 17 0 1 1 ISlider 17 1 1 1 ISlider 17 2 1 1 ComboBox 17 0 0 1 Module 11 18 310 15 0 0 Port 0 0 18 12 FSlider 18 0 0 0 0 16384 1 FSlider 18 1 0 1 -113176 0 1 FSMIDI 18 1 10 0 8 FSlider 18 2 -81675 1 -113176 0 1 FSlider 18 3 0 1 -113176 0 1 FSMIDI 18 3 10 0 9 FSlider 18 4 0 0 0 16384 1 FSMIDI 18 4 10 0 10 FSlider 18 5 -54360 1 -113176 0 1 FSMIDI 18 5 10 0 11 FSlider 18 6 16384 0 1638 163840 1 Module 1 20 190 752 0 0 Port 1 1 20 12 FSlider 20 0 98 0 0 16384 1 FSlider 20 1 -37725 1 -113175 11612 1 FSMIDI 20 1 10 0 5 FSlider 20 2 0 0 0 163840 1 FSlider 20 3 8192 0 1638 14745 1 FSlider 20 4 0 0 0 163840 1 FSlider 20 5 0 0 0 163840 1 ISlider 20 0 2 1 ISlider 20 1 1 1 ISlider 20 2 1 1 ComboBox 20 0 0 1 ams-2.0.1/demos/example_dynamicwaves_8_chorus.ams0000664000076400007640000001271107770061731017067 00000000000000Module 21 1 174 40 8 0 Port 0 1 1 2 Port 3 0 1 2 Port 4 3 1 2 FSlider 1 0 0 0 0 16384 1 FSlider 1 1 0 0 0 163840 1 FSlider 1 2 0 0 0 163840 1 FSlider 1 3 1638 0 1638 163840 1 FSlider 1 4 16384 0 0 16384 1 FSlider 1 5 16384 0 0 16384 1 FSlider 1 6 16384 0 0 16384 1 FSlider 1 7 16384 0 0 16384 1 FSlider 1 8 16384 0 0 16384 1 FSlider 1 9 16384 0 0 16384 1 FSlider 1 10 16384 0 0 16384 1 FSlider 1 11 16384 0 0 16384 1 FSlider 1 12 154 0 0 16384 1 FSlider 1 13 0 0 0 102940 1 FSlider 1 14 0 0 0 16384 1 FSlider 1 15 0 0 0 102940 1 FSlider 1 16 116 0 0 16384 1 FSlider 1 17 0 0 0 102940 1 FSlider 1 18 77 0 0 16384 1 FSlider 1 19 0 0 0 102940 1 FSlider 1 20 39 0 0 16384 1 FSlider 1 21 0 0 0 102940 1 FSlider 1 22 116 0 0 16384 1 FSlider 1 23 0 0 0 102940 1 FSlider 1 24 39 0 0 16384 1 FSlider 1 25 0 0 0 102940 1 FSlider 1 26 0 0 0 16384 1 FSlider 1 27 0 0 0 102940 1 FSlider 1 28 3082 0 0 16384 1 FSlider 1 29 2636 0 0 16384 1 FSlider 1 30 11112 0 0 16384 1 FSlider 1 31 4826 0 0 16384 1 FSlider 1 32 1987 0 0 16384 1 FSlider 1 33 5150 0 0 16384 1 FSlider 1 34 14745 0 0 16384 1 FSlider 1 35 1638 0 0 16384 1 FSlider 1 36 13107 0 0 16384 1 FSlider 1 37 163 0 0 16384 1 FSlider 1 38 11468 0 0 16384 1 FSlider 1 39 163 0 0 16384 1 FSlider 1 40 8192 0 0 16384 1 FSlider 1 41 163 0 0 16384 1 FSlider 1 42 0 0 0 16384 1 FSlider 1 43 11013 0 0 16384 1 FSlider 1 44 8192 0 0 16384 1 FSlider 1 45 163 0 0 16384 1 FSlider 1 46 16384 0 0 16384 1 FSlider 1 47 1638 0 0 16384 1 FSlider 1 48 14745 0 0 16384 1 FSlider 1 49 1638 0 0 16384 1 FSlider 1 50 12029 0 0 16384 1 FSlider 1 51 163 0 0 16384 1 FSlider 1 52 11468 0 0 16384 1 FSlider 1 53 163 0 0 16384 1 FSlider 1 54 8192 0 0 16384 1 FSlider 1 55 163 0 0 16384 1 FSlider 1 56 0 0 0 16384 1 FSlider 1 57 2798 0 0 16384 1 FSlider 1 58 8192 0 0 16384 1 FSlider 1 59 1906 0 0 16384 1 FSlider 1 60 10869 0 0 16384 1 FSlider 1 61 1638 0 0 16384 1 FSlider 1 62 14745 0 0 16384 1 FSlider 1 63 4704 0 0 16384 1 FSlider 1 64 11095 0 0 16384 1 FSlider 1 65 2879 0 0 16384 1 FSlider 1 66 7543 0 0 16384 1 FSlider 1 67 4015 0 0 16384 1 FSlider 1 68 13140 0 0 16384 1 FSlider 1 69 3569 0 0 16384 1 FSlider 1 70 0 0 0 16384 1 FSlider 1 71 163 0 0 16384 1 FSlider 1 72 8192 0 0 16384 1 FSlider 1 73 163 0 0 16384 1 FSlider 1 74 16384 0 0 16384 1 FSlider 1 75 1638 0 0 16384 1 FSlider 1 76 14745 0 0 16384 1 FSlider 1 77 1638 0 0 16384 1 FSlider 1 78 13107 0 0 16384 1 FSlider 1 79 163 0 0 16384 1 FSlider 1 80 11468 0 0 16384 1 FSlider 1 81 163 0 0 16384 1 FSlider 1 82 8192 0 0 16384 1 FSlider 1 83 163 0 0 16384 1 FSlider 1 84 0 0 0 16384 1 FSlider 1 85 163 0 0 16384 1 FSlider 1 86 8192 0 0 16384 1 FSlider 1 87 163 0 0 16384 1 FSlider 1 88 16384 0 0 16384 1 FSlider 1 89 1638 0 0 16384 1 FSlider 1 90 14745 0 0 16384 1 FSlider 1 91 1638 0 0 16384 1 FSlider 1 92 13107 0 0 16384 1 FSlider 1 93 163 0 0 16384 1 FSlider 1 94 11468 0 0 16384 1 FSlider 1 95 163 0 0 16384 1 FSlider 1 96 8192 0 0 16384 1 FSlider 1 97 163 0 0 16384 1 FSlider 1 98 0 0 0 16384 1 FSlider 1 99 163 0 0 16384 1 FSlider 1 100 8192 0 0 16384 1 FSlider 1 101 163 0 0 16384 1 FSlider 1 102 16384 0 0 16384 1 FSlider 1 103 1638 0 0 16384 1 FSlider 1 104 14745 0 0 16384 1 FSlider 1 105 1638 0 0 16384 1 FSlider 1 106 10722 0 0 16384 1 FSlider 1 107 163 0 0 16384 1 FSlider 1 108 11468 0 0 16384 1 FSlider 1 109 163 0 0 16384 1 FSlider 1 110 8192 0 0 16384 1 FSlider 1 111 163 0 0 16384 1 FSlider 1 112 4742 0 0 16384 1 FSlider 1 113 2352 0 0 16384 1 FSlider 1 114 8192 0 0 16384 1 FSlider 1 115 5359 0 0 16384 1 FSlider 1 116 16384 0 0 16384 1 FSlider 1 117 1638 0 0 16384 1 FSlider 1 118 14745 0 0 16384 1 FSlider 1 119 2544 0 0 16384 1 FSlider 1 120 13107 0 0 16384 1 FSlider 1 121 3855 0 0 16384 1 FSlider 1 122 14688 0 0 16384 1 FSlider 1 123 7633 0 0 16384 1 FSlider 1 124 10023 0 0 16384 1 FSlider 1 125 2159 0 0 16384 1 FSlider 1 126 771 0 0 16384 1 FSlider 1 127 3238 0 0 16384 1 FSlider 1 128 8192 0 0 16384 1 FSlider 1 129 3855 0 0 16384 1 FSlider 1 130 8790 0 0 16384 1 FSlider 1 131 4934 0 0 16384 1 FSlider 1 132 14745 0 0 16384 1 FSlider 1 133 5590 0 0 16384 1 FSlider 1 134 4915 0 0 16384 1 FSlider 1 135 5474 0 0 16384 1 FSlider 1 136 7903 0 0 16384 1 FSlider 1 137 3277 0 0 16384 1 FSlider 1 138 8192 0 0 16384 1 FSlider 1 139 163 0 0 16384 1 ISlider 1 0 1 1 ISlider 1 1 0 1 ISlider 1 2 1 1 ISlider 1 3 1 1 ISlider 1 4 0 1 ISlider 1 5 2 1 ISlider 1 6 1 1 ISlider 1 7 0 1 ISlider 1 8 3 1 ISlider 1 9 1 1 ISlider 1 10 0 1 ISlider 1 11 4 1 ISlider 1 12 1 1 ISlider 1 13 0 1 ISlider 1 14 5 1 ISlider 1 15 1 1 ISlider 1 16 0 1 ISlider 1 17 6 1 ISlider 1 18 1 1 ISlider 1 19 0 1 ISlider 1 20 7 1 ISlider 1 21 1 1 ISlider 1 22 0 1 ISlider 1 23 8 1 ISlider 1 24 1 1 ComboBox 1 0 3 1 CMIDI 1 0 10 0 1 ComboBox 1 1 0 1 ComboBox 1 2 0 1 ComboBox 1 3 0 1 ComboBox 1 4 0 1 ComboBox 1 5 0 1 ComboBox 1 6 0 1 ComboBox 1 7 0 1 Module 10 2 25 40 0 0 FSlider 2 0 129 0 -16384 16384 1 FSMIDI 2 0 13 0 0 ISlider 2 0 24 1 ComboBox 2 0 0 1 Module 7 3 607 42 0 0 Port 0 0 3 4 Port 1 1 3 4 FSlider 3 0 8192 0 0 16384 1 FSlider 3 1 8192 0 0 16384 1 FSlider 3 2 8192 0 0 16384 1 ComboBox 3 0 1 1 Module 6 4 329 43 0 gverb_1216 GVerb Port 0 0 4 5 FSlider 4 0 2634717 0 16384 4915200 1 FSlider 4 1 59733 0 1638 5898240 1 FSlider 4 2 6174 0 0 16384 1 FSlider 4 3 13075 0 0 16384 1 FSlider 4 4 0 0 -1146880 0 1 FSlider 4 5 -189263 0 -1146880 0 1 FSlider 4 6 -124292 0 -1146880 0 1 Module 6 5 334 159 0 cs_chorus Chorus2 Port 0 0 5 1 FSlider 5 0 18160 0 0 491520 1 FSlider 5 1 37725 1 -95176 37725 1 FSlider 5 2 4439 0 0 163840 1 FSlider 5 3 51525 1 -75451 55725 1 FSlider 5 4 969 0 0 49152 1 ams-2.0.1/demos/example_midiout_junglebirds.ams0000664000076400007640000000544207770061731016630 00000000000000Module 7 1 652 42 0 0 Port 0 0 1 10 Port 1 1 1 10 FSlider 1 0 13849 0 0 16384 1 FSlider 1 1 16384 0 0 16384 1 FSlider 1 2 16384 0 0 16384 1 ComboBox 1 0 1 1 Module 2 4 323 8 0 0 Port 0 0 4 23 Port 2 0 4 14 FSlider 4 0 0 0 0 163840 1 FSlider 4 1 418 0 0 163840 1 FSlider 4 2 1254 0 0 32768 1 FSlider 4 3 4681 0 0 32768 1 FSlider 4 4 8192 0 0 32768 1 Module 6 10 462 40 0 cmt Freeverb (Version 3) Port 0 0 10 30 Port 1 1 10 30 FSlider 10 0 11536 0 0 16384 1 FSlider 10 1 -19337 1 -113176 0 1 FSlider 10 2 -8372 1 -113175 0 1 FSMIDI 10 2 10 0 2 FSlider 10 3 0 1 -113176 0 1 FSlider 10 4 16342 0 0 16384 1 CheckBox 10 0 0 1 Module 1 14 548 169 0 0 Port 1 0 14 22 Port 2 1 14 23 FSlider 14 0 0 0 0 16384 1 FSlider 14 1 8192 0 1638 14745 1 FSlider 14 2 0 0 0 16384 1 FSlider 14 3 0 0 0 102940 1 FSlider 14 4 26139 0 988 51689 0 FSMIDI 14 4 13 0 0 FSlider 14 5 1260 0 0 163840 1 ISlider 14 0 6 1 ISlider 14 1 1 1 ISlider 14 2 1 1 ComboBox 14 0 0 1 Module 18 22 30 19 0 0 FSlider 22 0 24511 0 0 81920 1 FSMIDI 22 0 10 0 24 FSlider 22 1 0 0 -8192 8192 1 FSlider 22 2 0 0 0 81920 1 FSlider 22 3 0 0 -8192 8192 1 FSlider 22 4 0 0 0 81920 1 FSlider 22 5 0 0 -8192 8192 1 FSlider 22 6 0 0 0 81920 1 FSlider 22 7 0 0 -8192 8192 1 Module 22 23 104 175 0 0 Port 0 2 23 26 FSlider 23 0 16036 0 1638 163840 1 FSlider 23 1 0 0 0 10191 1 FSlider 23 2 0 0 0 16384 1 FSlider 23 3 326 0 0 16384 1 FSlider 23 4 8400 0 0 16384 1 FSlider 23 5 2048 0 0 16384 1 FSlider 23 6 0 0 0 16384 1 FSMIDI 23 6 10 0 1 FSMIDI 23 6 10 0 25 FSlider 23 7 1187 0 0 16384 1 FSlider 23 8 16087 0 0 16384 1 FSlider 23 9 3740 0 0 16384 1 FSlider 23 10 1276 0 0 16384 1 FSlider 23 11 0 0 0 16384 1 FSlider 23 12 1306 0 0 16384 1 FSlider 23 13 0 0 0 16384 1 FSlider 23 14 1187 0 0 16384 1 Module 29 25 572 429 0 0 Port 0 0 25 26 Port 1 0 25 28 Port 2 2 25 26 FSlider 25 0 16384 0 0 163840 1 FSlider 25 1 114688 0 0 163840 1 FSlider 25 2 8192 0 0 163840 1 ISlider 25 0 50 1 ISlider 25 1 10 1 ISlider 25 2 24 1 ISlider 25 3 25 1 ComboBox 25 0 0 1 ComboBox 25 1 0 1 Module 14 26 364 430 0 0 FSlider 26 0 6687 0 0 163840 1 FSlider 26 1 16384 0 0 16384 1 Module 14 28 364 300 0 0 FSlider 28 0 81920 0 0 163840 1 FSlider 28 1 8192 0 0 16384 1 Module 6 30 297 171 0 cmt Canyon Delay Port 0 0 30 4 Port 1 0 30 4 FSlider 30 0 6553 0 163 16220 1 FSlider 30 1 13124 0 -16384 16384 1 FSlider 30 2 12288 0 163 16220 1 FSlider 30 3 13124 0 -16384 16384 1 FSlider 30 4 81920000 0 16384 81920000 1 Comment 0 0 15 326 317 180 #PARA# 0 0 0 This patch is based on the JungleBirds. It uses random voltages to automatically play the sound. #ARAP# #PARA# 0 0 1 If you connect the readable MIDI ports of AlsaModularSynth with its writeable port (using e.g. Kaconnect), pitch and envelope will change. #ARAP# #PARA# 0 0 2 #ARAP# #PARA# 0 0 3 #ARAP# #PARA# 0 0 4 #ARAP# #PARA# 0 0 5 #ARAP# #PARA# 0 0 6 #ARAP# ams-2.0.1/demos/example_2vco.ams0000664000076400007640000000453307770061731013437 00000000000000Module 7 1 483 181 0 0 Port 0 0 1 10 Port 1 1 1 10 FSlider 1 0 13849 0 0 16384 1 FSlider 1 1 16384 0 0 16384 1 FSlider 1 2 16384 0 0 16384 1 ComboBox 1 0 1 1 Module 11 3 145 13 0 0 Port 0 0 3 12 FSlider 3 0 0 0 0 16384 1 FSlider 3 1 -80383 1 -113176 0 1 FSlider 3 2 98 0 0 16384 1 FSlider 3 3 3781 0 0 16384 1 FSlider 3 4 9746 0 0 16384 1 FSlider 3 5 -17120 1 -113176 0 1 FSlider 3 6 16384 0 1638 163840 1 Module 2 4 432 23 0 0 Port 0 0 4 3 Port 2 0 4 7 FSlider 4 0 0 0 0 163840 1 FSlider 4 1 0 0 0 163840 1 FSlider 4 2 19529 0 0 32768 1 FSlider 4 3 8192 0 0 32768 1 FSlider 4 4 8192 0 0 32768 1 Module 1 5 132 268 0 0 Port 1 1 5 12 Port 2 1 5 16 FSlider 5 0 0 0 0 16384 1 FSlider 5 1 1638 0 0 163840 1 FSlider 5 2 0 0 0 163840 1 FSlider 5 3 8192 0 1638 14745 1 FSlider 5 4 198 0 0 2972 1 FSlider 5 5 0 0 0 163840 1 ISlider 5 0 0 1 ISlider 5 1 1 1 ISlider 5 2 1 1 ComboBox 5 0 0 1 Module 9 7 578 276 0 0 Port 0 0 7 18 Port 1 0 7 9 Port 2 0 7 14 FSlider 7 0 7941 0 0 163840 1 FSlider 7 1 46393 0 10449 133827 1 FSMIDI 7 1 10 0 1 FSlider 7 2 8359 0 0 163840 1 FSlider 7 3 0 0 0 163840 1 FSlider 7 4 13107 0 163 16384 1 FSlider 7 5 0 0 0 16384 1 ComboBox 7 0 6 1 Module 15 9 264 161 0 0 Port 0 1 9 12 FSlider 9 0 1672 0 0 163840 1 FSlider 9 1 1672 0 0 163840 1 Module 6 10 564 45 0 cmt Freeverb (Version 3) Port 0 0 10 4 Port 1 0 10 4 FSlider 10 0 5057 0 0 16384 1 FSlider 10 1 -89825 1 -113176 0 1 FSlider 10 2 -16168 1 -113176 0 1 FSlider 10 3 -5338 1 -113176 0 1 FSlider 10 4 16384 0 0 16384 1 CheckBox 10 0 0 1 Module 10 12 13 120 0 0 FSlider 12 0 129 0 -16384 16384 1 FSMIDI 12 0 13 0 0 ISlider 12 0 24 1 ComboBox 12 0 0 1 Module 11 14 386 384 0 0 Port 0 0 14 12 FSlider 14 0 0 0 0 16384 1 FSlider 14 1 546 0 0 16384 1 FSlider 14 2 0 0 0 16384 1 FSlider 14 3 9746 0 0 16384 1 FSlider 14 4 0 0 0 16384 1 FSlider 14 5 2353 0 0 16384 1 FSlider 14 6 1638 0 1638 163840 1 Module 3 16 17 267 0 0 FSlider 16 0 104490 0 0 1638400 1 FSlider 16 1 0 0 0 102940 1 Module 8 18 401 273 2 0 Port 0 2 18 5 Port 1 3 18 19 FSlider 18 0 16384 0 0 32768 1 FSlider 18 1 16384 0 0 32768 1 FSlider 18 2 16384 0 0 32768 1 Module 1 19 257 270 0 0 Port 1 1 19 12 Port 2 1 19 16 FSlider 19 0 42 0 0 16384 1 FSlider 19 1 8192 0 1638 14745 1 FSlider 19 2 0 0 0 16384 1 FSlider 19 3 0 0 0 102940 1 FSlider 19 4 197 0 0 1115 1 FSlider 19 5 0 0 0 163840 1 ISlider 19 0 1 1 ISlider 19 1 1 1 ISlider 19 2 1 1 ComboBox 19 0 0 1 ams-2.0.1/demos/example_advmcv.ams0000664000076400007640000000275607770061731014053 00000000000000Module 34 1 230 15 0 0 Port 0 0 1 17 Port 1 3 1 17 Port 2 2 1 17 Port 3 1 1 17 Port 4 6 1 17 Port 5 5 1 17 FSlider 1 0 16384 0 0 16384 1 FSlider 1 1 16384 0 0 16384 1 FSlider 1 2 0 0 0 16384 1 FSlider 1 3 16384 0 0 16384 1 FSlider 1 4 -16384 0 -16384 16384 1 FSlider 1 5 -1453 0 -16384 16384 1 FSlider 1 6 16384 0 -16384 16384 1 FSlider 1 7 16384 0 -16384 16384 1 ComboBox 1 0 1 1 ComboBox 1 1 1 1 Module 7 2 626 121 0 0 Port 0 0 2 4 Port 1 0 2 4 FSlider 2 0 8192 0 0 16384 1 FSlider 2 1 8192 0 0 16384 1 FSlider 2 2 8192 0 0 16384 1 ComboBox 2 0 1 1 Module 2 4 507 72 0 0 Port 0 0 4 1 Port 2 0 4 6 FSlider 4 0 0 0 0 163840 1 FSlider 4 1 0 0 0 163840 1 FSlider 4 2 16384 0 0 32768 1 FSlider 4 3 16384 0 0 32768 1 FSlider 4 4 16384 0 0 32768 1 Module 1 5 207 231 0 0 Port 1 1 5 17 Port 2 1 5 15 FSlider 5 0 0 0 0 16384 1 FSlider 5 1 8192 0 1638 14745 1 FSlider 5 2 0 0 0 16384 1 FSlider 5 3 0 0 0 102940 1 FSlider 5 4 180 0 0 163840 1 FSlider 5 5 0 0 0 163840 1 ISlider 5 0 1 1 ISlider 5 1 1 1 ISlider 5 2 1 1 ComboBox 5 0 0 1 Module 6 6 370 243 0 mvclpf24 Mvclpf-3 Port 0 2 6 5 Port 1 1 6 17 Port 2 0 6 1 FSlider 6 0 0 0 -983040 163840 1 FSlider 6 1 -81920 0 -81920 81920 1 FSlider 6 2 133170 0 0 163840 1 FSlider 6 3 8273 0 0 16384 1 FSlider 6 4 0 0 0 16384 1 FSlider 6 5 0 0 -245760 245760 1 Module 3 15 12 289 0 0 FSlider 15 0 81920 0 0 1638400 1 FSlider 15 1 0 0 0 102940 1 Module 35 17 7 15 0 0 FSlider 17 0 0 0 -16384 16384 1 ISlider 17 0 24 1 ISlider 17 1 1 1 ISlider 17 2 0 1 ISlider 17 3 0 1 ISlider 17 4 0 1 ams-2.0.1/demos/example_random_major.ams0000664000076400007640000000402507770061731015232 00000000000000Module 7 1 979 59 0 0 Port 0 0 1 16 Port 1 1 1 16 FSlider 1 0 8192 0 0 16384 1 FSlider 1 1 8192 0 0 16384 1 FSlider 1 2 8192 0 0 16384 1 ComboBox 1 0 1 1 Module 11 3 298 30 0 0 Port 0 1 3 7 Port 1 1 3 7 FSlider 3 0 0 0 0 16384 1 FSlider 3 1 -106719 1 -113176 0 1 FSlider 3 2 0 0 0 16384 1 FSlider 3 3 3887 0 0 16384 1 FSlider 3 4 9742 0 0 16384 1 FSlider 3 5 6298 0 0 16384 1 FSlider 3 6 12354 0 1638 163840 1 Module 2 4 445 14 0 0 Port 0 0 4 3 Port 2 0 4 10 FSlider 4 0 7042 0 0 163840 1 FSlider 4 1 0 0 0 163840 1 FSlider 4 2 8192 0 0 16384 1 FSlider 4 3 8192 0 0 16384 1 FSlider 4 4 8192 0 0 16384 1 Module 1 5 386 177 0 0 Port 1 0 5 7 FSlider 5 0 0 0 0 16384 1 FSlider 5 1 0 0 0 163840 1 FSlider 5 2 0 0 0 163840 1 FSlider 5 3 8192 0 1638 14745 1 FSlider 5 4 0 0 0 16384 1 FSlider 5 5 0 0 0 102940 1 ISlider 5 0 3 1 ISlider 5 1 1 1 ISlider 5 2 1 1 ComboBox 5 0 0 1 Module 16 7 144 150 0 0 Port 0 2 7 12 ComboBox 7 0 2 1 Module 9 10 564 175 0 0 Port 0 2 10 5 Port 1 0 10 13 Port 2 0 10 18 FSlider 10 0 43297 0 0 163840 1 FSlider 10 1 111687 0 0 163840 1 FSlider 10 2 48709 0 0 163840 1 FSlider 10 3 0 0 0 163840 1 FSlider 10 4 13107 0 163 16384 1 FSlider 10 5 0 0 0 16384 1 ComboBox 10 0 6 1 Module 14 12 14 148 0 0 FSlider 12 0 27228 0 0 163840 1 FSlider 12 1 6572 0 0 16384 1 Module 15 13 260 267 0 0 Port 0 0 13 7 FSlider 13 0 8192 0 0 163840 1 FSlider 13 1 8192 0 0 163840 1 Module 6 15 576 61 0 cmt Canyon Delay Port 0 0 15 4 Port 1 0 15 4 FSlider 15 0 9273 0 163 16220 1 FSlider 15 1 12347 0 -16384 16384 1 FSlider 15 2 6788 0 163 16220 1 FSlider 15 3 13661 0 -16384 16384 1 FSlider 15 4 81920000 0 16384 81920000 1 Module 6 16 779 62 0 cmt Freeverb (Version 3) Port 0 0 16 15 Port 1 1 16 15 FSlider 16 0 8215 0 0 16384 1 FSlider 16 1 -83989 1 -113176 0 1 FSlider 16 2 -9404 1 -113176 0 1 FSlider 16 3 0 1 -113176 0 1 FSlider 16 4 16384 0 0 16384 1 CheckBox 16 0 0 1 Module 15 18 381 411 0 0 Port 0 2 18 19 FSlider 18 0 98116 0 0 163840 1 FSlider 18 1 70418 0 0 163840 1 Module 14 19 188 358 0 0 FSlider 19 0 133325 0 0 163840 1 FSlider 19 1 16384 0 0 16384 1 ams-2.0.1/demos/example_vco_add.ams0000644000076400007640000000506611146403161014152 00000000000000Module 1 1 141 232 0 0 Port 1 1 1 12 FSlider 1 0 0 0 0 16384 1 FSlider 1 1 0 0 0 163840 1 FSlider 1 2 0 0 0 163840 1 FSlider 1 3 8192 0 1638 14745 1 FSlider 1 4 16384 0 0 16384 1 FSlider 1 5 0 0 0 102940 1 ISlider 1 0 1 1 ISlider 1 1 2 1 ISlider 1 2 1 1 ComboBox 1 0 0 1 Module 1 2 247 233 0 0 Port 1 1 2 12 FSlider 2 0 0 0 0 16384 1 FSlider 2 1 0 0 0 163840 1 FSlider 2 2 0 0 0 163840 1 FSlider 2 3 8192 0 1638 14745 1 FSlider 2 4 16384 0 0 16384 1 FSlider 2 5 0 0 0 102940 1 ISlider 2 0 1 1 ISlider 2 1 3 1 ISlider 2 2 1 1 ComboBox 2 0 0 1 Module 1 3 356 233 0 0 Port 1 1 3 12 FSlider 3 0 0 0 0 16384 1 FSlider 3 1 0 0 0 163840 1 FSlider 3 2 0 0 0 163840 1 FSlider 3 3 8192 0 1638 14745 1 FSlider 3 4 0 0 0 16384 1 FSlider 3 5 0 0 0 102940 1 ISlider 3 0 1 1 ISlider 3 1 4 1 ISlider 3 2 1 1 ComboBox 3 0 0 1 Module 1 4 464 233 0 0 Port 1 1 4 12 FSlider 4 0 0 0 0 16384 1 FSlider 4 1 0 0 0 163840 1 FSlider 4 2 0 0 0 163840 1 FSlider 4 3 8192 0 1638 14745 1 FSlider 4 4 0 0 0 16384 1 FSlider 4 5 0 0 0 102940 1 ISlider 4 0 1 1 ISlider 4 1 5 1 ISlider 4 2 1 1 ComboBox 4 0 0 1 Module 2 6 492 38 0 0 Port 0 0 6 8 Port 2 0 6 10 Port 3 0 6 9 FSlider 6 0 0 0 0 163840 1 FSlider 6 1 0 0 0 163840 1 FSlider 6 2 16384 0 0 32768 1 FSlider 6 3 16384 0 0 32768 1 FSlider 6 4 16384 0 0 32768 1 Module 7 7 616 142 0 0 Port 0 0 7 6 Port 1 0 7 6 FSlider 7 0 2770 0 0 16384 1 FSlider 7 1 8192 0 0 16384 1 FSlider 7 2 8192 0 0 16384 1 ComboBox 7 0 1 1 Module 11 8 333 37 0 0 Port 0 0 8 12 FSlider 8 0 0 0 0 16384 1 FSlider 8 1 819 0 0 16384 1 FSlider 8 2 327 0 0 16384 1 FSlider 8 3 1638 0 0 16384 1 FSlider 8 4 11468 0 0 16384 1 FSlider 8 5 819 0 0 16384 1 FSlider 8 6 16384 0 1638 163840 1 Module 8 9 617 240 4 0 Port 0 0 9 1 Port 1 0 9 2 Port 2 0 9 3 Port 3 0 9 4 FSlider 9 0 15868 0 0 32768 1 FSlider 9 1 13932 0 0 32768 1 FSMIDI 9 1 10 0 1 FSlider 9 2 21313 0 0 32768 1 FSlider 9 3 18836 0 0 32768 0 FSMIDI 9 3 10 0 1 FSlider 9 4 15680 0 0 32768 1 Module 1 10 31 231 0 0 Port 1 1 10 12 FSlider 10 0 0 0 0 16384 1 FSlider 10 1 0 0 0 163840 1 FSlider 10 2 0 0 0 163840 1 FSlider 10 3 8192 0 1638 14745 1 FSlider 10 4 16384 0 0 16384 1 FSlider 10 5 0 0 0 102940 1 ISlider 10 0 1 1 ISlider 10 1 1 1 ISlider 10 2 1 1 ComboBox 10 0 0 1 Module 10 12 10 34 0 0 FSlider 12 0 129 0 -16384 16384 1 FSMIDI 12 0 13 0 0 ISlider 12 0 24 1 ComboBox 12 0 0 1 Comment 0 0 118 32 200 170 #PARA# 0 0 0 This patch demonstrates additive synthesis. The harmonics of the sound to be generated are weighted in the mixer. #ARAP# #PARA# 0 0 1 Open the mixer dialog and try out the modulation wheel! #ARAP# #PARA# 0 0 2 #ARAP# #PARA# 0 0 3 #ARAP# ams-2.0.1/demos/example_vcorgan_8.ams0000664000076400007640000000460307770061731014452 00000000000000Module 7 1 603 162 0 0 Port 0 0 1 12 Port 1 1 1 12 FSlider 1 0 8192 0 0 16384 1 FSlider 1 1 8192 0 0 16384 1 FSlider 1 2 8192 0 0 16384 1 ComboBox 1 0 1 1 Module 10 4 5 57 0 0 FSlider 4 0 0 0 -16384 16384 1 ISlider 4 0 12 1 ComboBox 4 0 0 1 Module 3 5 5 180 0 0 FSlider 5 0 118848 0 0 1638400 1 FSlider 5 1 0 0 0 102940 1 Module 11 7 158 37 0 0 Port 0 0 7 4 FSlider 7 0 0 0 0 16384 1 FSlider 7 1 386 0 0 16384 1 FSlider 7 2 327 0 0 16384 1 FSlider 7 3 1638 0 0 16384 1 FSlider 7 4 16384 0 0 16384 1 FSlider 7 5 386 0 0 16384 1 FSlider 7 6 16384 0 1638 163840 1 Module 2 8 312 114 0 0 Port 0 0 8 7 Port 2 0 8 15 FSlider 8 0 0 0 0 163840 1 FSlider 8 1 0 0 0 163840 1 FSlider 8 2 16384 0 0 32768 1 FSlider 8 3 16384 0 0 32768 1 FSlider 8 4 16384 0 0 32768 1 Module 6 12 423 161 0 cmt Freeverb (Version 3) Port 0 0 12 8 Port 1 0 12 8 FSlider 12 0 10357 0 0 16384 1 FSlider 12 1 -102621 1 -113176 0 1 FSlider 12 2 -48965 1 -113176 0 1 FSlider 12 3 -48965 1 -113176 0 1 FSlider 12 4 16384 0 0 16384 1 CheckBox 12 0 0 1 Module 20 15 159 182 8 0 Port 0 1 15 4 Port 1 0 15 5 FSlider 15 0 0 0 0 16384 1 FSlider 15 1 392 0 0 1046 1 FSlider 15 2 0 0 0 163840 1 FSlider 15 3 16384 0 0 16384 1 FSlider 15 4 6562 0 0 16384 1 FSlider 15 5 16384 0 0 16384 1 FSlider 15 6 4932 0 0 16384 1 FSlider 15 7 14754 0 0 16384 1 FSlider 15 8 3303 0 0 16384 1 FSlider 15 9 13124 0 0 16384 1 FSlider 15 10 1673 0 0 16384 1 FSlider 15 11 0 0 0 102940 1 FSlider 15 12 0 0 0 16384 1 FSlider 15 13 0 0 0 102940 1 FSlider 15 14 0 0 0 16384 1 FSlider 15 15 0 0 0 102940 1 FSlider 15 16 0 0 0 16384 1 FSlider 15 17 0 0 0 102940 1 FSlider 15 18 0 0 0 16384 1 FSlider 15 19 0 0 0 102940 1 FSlider 15 20 0 0 0 16384 1 FSlider 15 21 0 0 0 102940 1 FSlider 15 22 0 0 0 16384 1 FSlider 15 23 0 0 0 102940 1 FSlider 15 24 0 0 0 16384 1 FSlider 15 25 0 0 0 102940 1 FSlider 15 26 0 0 0 102940 1 ISlider 15 0 0 1 ISlider 15 1 0 1 ISlider 15 2 1 1 ISlider 15 3 1 1 ISlider 15 4 0 1 ISlider 15 5 2 1 ISlider 15 6 1 1 ISlider 15 7 0 1 ISlider 15 8 3 1 ISlider 15 9 1 1 ISlider 15 10 0 1 ISlider 15 11 4 1 ISlider 15 12 1 1 ISlider 15 13 0 1 ISlider 15 14 5 1 ISlider 15 15 1 1 ISlider 15 16 0 1 ISlider 15 17 6 1 ISlider 15 18 1 1 ISlider 15 19 0 1 ISlider 15 20 7 1 ISlider 15 21 1 1 ISlider 15 22 0 1 ISlider 15 23 8 1 ISlider 15 24 1 1 ComboBox 15 0 0 1 ComboBox 15 1 0 1 ComboBox 15 2 0 1 ComboBox 15 3 0 1 ComboBox 15 4 0 1 ComboBox 15 5 0 1 ComboBox 15 6 0 1 ComboBox 15 7 0 1 ams-2.0.1/demos/example_chorus.ams0000664000076400007640000000266007770061731014070 00000000000000Module 1 1 185 44 0 0 Port 1 1 1 4 FSlider 1 0 0 0 0 16384 1 FSlider 1 1 8192 0 1638 14745 1 FSlider 1 2 0 0 0 16384 1 FSlider 1 3 0 0 0 102940 1 FSlider 1 4 0 0 0 163840 1 FSlider 1 5 0 0 0 163840 1 ISlider 1 0 1 1 ISlider 1 1 1 1 ISlider 1 2 1 1 ComboBox 1 0 0 1 Module 7 2 553 213 0 0 Port 0 0 2 5 Port 1 1 2 5 FSlider 2 0 8192 0 0 16384 1 FSlider 2 1 8192 0 0 16384 1 FSlider 2 2 8192 0 0 16384 1 ComboBox 2 0 1 1 Module 6 3 372 224 0 cs_chorus Chorus2 Port 0 0 3 7 FSlider 3 0 275853 0 0 491520 1 FSlider 3 1 17999 1 -95176 17999 1 FSlider 3 2 11703 0 0 163840 1 FSlider 3 3 35127 1 -75451 37725 1 FSlider 3 4 1881 0 0 49152 1 Module 10 4 7 58 0 0 FSlider 4 0 0 0 -16384 16384 1 ISlider 4 0 12 1 ComboBox 4 0 0 1 Module 6 5 297 323 0 gverb_1216 GVerb Port 0 0 5 3 FSlider 5 0 1978410 0 16384 4915200 1 FSlider 5 1 106934 0 1638 5898240 1 FSlider 5 2 0 0 0 16384 1 FSlider 5 3 9279 0 0 16384 1 FSlider 5 4 0 0 -1146880 0 1 FSlider 5 5 -140434 0 -1146880 0 1 FSlider 5 6 -157989 0 -1146880 0 1 Module 11 6 68 346 0 0 Port 0 0 6 4 FSlider 6 0 0 0 0 16384 1 FSlider 6 1 819 0 0 16384 1 FSlider 6 2 327 0 0 16384 1 FSlider 6 3 1638 0 0 16384 1 FSlider 6 4 11468 0 0 16384 1 FSlider 6 5 819 0 0 16384 1 FSlider 6 6 16384 0 1638 163840 1 Module 2 7 458 43 1 0 Port 0 0 7 6 Port 2 3 7 1 FSlider 7 0 -113176 1 -113176 37725 1 FSlider 7 1 -113176 1 -113176 37725 1 FSlider 7 2 0 1 -113176 11356 1 FSlider 7 3 0 1 -113176 11356 1 FSlider 7 4 0 1 -113176 11356 1 ams-2.0.1/demos/example_ams_demo_bode.ams0000664000076400007640000000510207770061731015334 00000000000000Module 7 1 1019 238 0 0 Port 0 0 1 16 Port 1 1 1 16 FSlider 1 0 8192 0 0 16384 1 FSlider 1 1 8192 0 0 16384 1 FSlider 1 2 8192 0 0 16384 1 ComboBox 1 0 1 1 Module 11 3 318 33 0 0 Port 0 1 3 7 Port 1 1 3 7 FSlider 3 0 0 0 0 16384 1 FSlider 3 1 -106718 1 -113176 0 1 FSlider 3 2 0 0 0 16384 1 FSlider 3 3 3887 0 0 16384 1 FSlider 3 4 9742 0 0 16384 1 FSlider 3 5 6298 0 0 16384 1 FSlider 3 6 12354 0 1638 163840 1 Module 2 4 612 130 0 0 Port 0 0 4 3 Port 2 0 4 10 FSlider 4 0 7042 0 0 163840 1 FSlider 4 1 0 0 0 163840 1 FSlider 4 2 8192 0 0 16384 1 FSlider 4 3 8192 0 0 16384 1 FSlider 4 4 8192 0 0 16384 1 Module 1 5 386 177 0 0 Port 1 0 5 7 FSlider 5 0 0 0 0 16384 1 FSlider 5 1 1638 0 0 163840 1 FSlider 5 2 0 0 0 163840 1 FSlider 5 3 8192 0 1638 14745 1 FSlider 5 4 0 0 0 16384 1 FSlider 5 5 0 0 0 102940 1 ISlider 5 0 3 1 ISlider 5 1 1 1 ISlider 5 2 1 1 ComboBox 5 0 0 1 Module 16 7 184 104 0 0 Port 0 1 7 12 Port 1 1 7 21 ComboBox 7 0 10 1 Module 9 10 498 228 0 0 Port 0 2 10 5 Port 1 0 10 13 Port 2 0 10 18 FSlider 10 0 17554 0 0 163840 1 FSlider 10 1 111687 0 0 163840 1 FSlider 10 2 48709 0 0 163840 1 FSlider 10 3 0 0 0 163840 1 FSlider 10 4 13107 0 163 16384 1 FSlider 10 5 0 0 0 16384 1 ComboBox 10 0 6 1 Module 14 12 14 148 0 0 FSlider 12 0 27228 0 0 163840 1 FSlider 12 1 6572 0 0 16384 1 Module 15 13 278 272 0 0 Port 0 0 13 7 FSlider 13 0 8192 0 0 163840 1 FSlider 13 1 8192 0 0 163840 1 Module 6 15 715 206 0 cmt Canyon Delay Port 0 0 15 24 Port 1 0 15 25 FSlider 15 0 9273 0 163 16220 1 FSlider 15 1 12347 0 -16384 16384 1 FSlider 15 2 6788 0 163 16220 1 FSlider 15 3 13661 0 -16384 16384 1 FSlider 15 4 81920000 0 16384 81920000 1 Module 6 16 868 232 0 cmt Freeverb (Version 3) Port 0 0 16 15 Port 1 1 16 15 FSlider 16 0 8215 0 0 16384 1 FSlider 16 1 -83988 1 -113176 0 1 FSlider 16 2 -9404 1 -113176 0 1 FSlider 16 3 0 1 -113176 0 1 FSlider 16 4 16384 0 0 16384 1 CheckBox 16 0 0 1 Module 15 18 381 411 0 0 Port 0 2 18 19 FSlider 18 0 98116 0 0 163840 1 FSlider 18 1 70418 0 0 163840 1 Module 14 19 240 422 0 0 FSlider 19 0 133325 0 0 163840 1 FSlider 19 1 16384 0 0 16384 1 Module 16 21 71 302 0 0 Port 0 2 21 12 ComboBox 21 0 0 1 Module 6 23 754 26 0 bode_shifter_cv_1432 Bode frequency shifter (CV) Port 0 0 23 4 FSlider 23 0 14419592 0 0 81920000 1 FSlider 23 1 -16384 0 -16384 16384 1 FSlider 23 2 0 0 0 16384 1 Module 8 24 615 368 2 0 Port 0 0 24 4 Port 1 0 24 23 FSlider 24 0 16384 0 0 32768 1 FSlider 24 1 16384 0 0 32768 1 FSlider 24 2 4932 0 0 32768 1 Module 8 25 747 367 2 0 Port 0 0 25 4 Port 1 1 25 23 FSlider 25 0 16384 0 0 32768 1 FSlider 25 1 16384 0 0 32768 1 FSlider 25 2 4932 0 0 32768 1 ams-2.0.1/demos/example_vcEnvelope.ams0000664000076400007640000000264707770061731014700 00000000000000Module 34 1 230 15 0 0 Port 0 0 1 3 Port 1 3 1 3 Port 2 2 1 3 Port 3 1 1 3 Port 5 1 1 3 FSlider 1 0 16384 0 0 16384 1 FSlider 1 1 16384 0 0 16384 1 FSlider 1 2 10533 0 0 16384 1 FSlider 1 3 16384 0 0 16384 1 FSlider 1 4 -16384 0 -16384 16384 1 FSlider 1 5 -1453 0 -16384 16384 1 FSlider 1 6 16384 0 -16384 16384 1 FSlider 1 7 -2583 0 -16384 16384 1 ComboBox 1 0 1 1 ComboBox 1 1 1 1 Module 7 2 626 121 0 0 Port 0 0 2 4 Port 1 0 2 4 FSlider 2 0 8192 0 0 16384 1 FSlider 2 1 8192 0 0 16384 1 FSlider 2 2 8192 0 0 16384 1 ComboBox 2 0 1 1 Module 10 3 7 15 0 0 FSlider 3 0 0 0 -16384 16384 1 ISlider 3 0 12 1 ComboBox 3 0 0 1 Module 2 4 507 72 0 0 Port 0 0 4 1 Port 2 0 4 6 FSlider 4 0 0 0 0 163840 1 FSlider 4 1 0 0 0 163840 1 FSlider 4 2 16384 0 0 32768 1 FSlider 4 3 16384 0 0 32768 1 FSlider 4 4 16384 0 0 32768 1 Module 1 5 145 228 0 0 Port 1 1 5 3 Port 2 1 5 15 FSlider 5 0 0 0 0 16384 1 FSlider 5 1 8192 0 1638 14745 1 FSlider 5 2 0 0 0 16384 1 FSlider 5 3 0 0 0 102940 1 FSlider 5 4 180 0 0 163840 1 FSlider 5 5 0 0 0 163840 1 ISlider 5 0 1 1 ISlider 5 1 1 1 ISlider 5 2 1 1 ComboBox 5 0 0 1 Module 6 6 370 243 0 mvclpf24 Mvclpf-3 Port 0 2 6 5 Port 1 1 6 3 Port 2 0 6 1 FSlider 6 0 0 0 -983040 163840 1 FSlider 6 1 -81920 0 -81920 81920 1 FSlider 6 2 133170 0 0 163840 1 FSlider 6 3 8273 0 0 16384 1 FSlider 6 4 0 0 0 16384 1 FSlider 6 5 0 0 -245760 245760 1 Module 3 15 10 229 0 0 FSlider 15 0 81920 0 0 1638400 1 FSlider 15 1 0 0 0 102940 1 ams-2.0.1/demos/sequence01b.ams0000664000076400007640000000610307770061731013161 00000000000000Module 12 1 1 93 32 0 ISlider 1 0 2 1 ISlider 1 1 110 1 ISlider 1 2 20 1 ISlider 1 3 63 1 ISlider 1 4 24 1 ISlider 1 5 63 1 ISlider 1 6 27 1 ISlider 1 7 63 1 ISlider 1 8 32 1 ISlider 1 9 63 1 ISlider 1 10 32 1 ISlider 1 11 63 1 ISlider 1 12 27 1 ISlider 1 13 63 1 ISlider 1 14 24 1 ISlider 1 15 63 1 ISlider 1 16 20 1 ISlider 1 17 63 1 ISlider 1 18 19 1 ISlider 1 19 63 1 ISlider 1 20 22 1 ISlider 1 21 63 1 ISlider 1 22 27 1 ISlider 1 23 63 1 ISlider 1 24 34 1 ISlider 1 25 63 1 ISlider 1 26 34 1 ISlider 1 27 63 1 ISlider 1 28 27 1 ISlider 1 29 63 1 ISlider 1 30 22 1 ISlider 1 31 63 1 ISlider 1 32 19 1 ISlider 1 33 63 1 ISlider 1 34 20 1 ISlider 1 35 63 1 ISlider 1 36 24 1 ISlider 1 37 63 1 ISlider 1 38 27 1 ISlider 1 39 63 1 ISlider 1 40 32 1 ISlider 1 41 63 1 ISlider 1 42 32 1 ISlider 1 43 63 1 ISlider 1 44 27 1 ISlider 1 45 63 1 ISlider 1 46 24 1 ISlider 1 47 63 1 ISlider 1 48 20 1 ISlider 1 49 63 1 ISlider 1 50 15 1 ISlider 1 51 63 1 ISlider 1 52 22 1 ISlider 1 53 63 1 ISlider 1 54 27 1 ISlider 1 55 63 1 ISlider 1 56 39 1 ISlider 1 57 63 1 ISlider 1 58 39 1 ISlider 1 59 63 1 ISlider 1 60 27 1 ISlider 1 61 63 1 ISlider 1 62 22 1 ISlider 1 63 63 1 ISlider 1 64 15 1 ISlider 1 65 63 1 ComboBox 1 0 2 1 CheckBox 1 0 1 1 CheckBox 1 1 1 1 CheckBox 1 2 1 1 CheckBox 1 3 1 1 CheckBox 1 4 1 1 CheckBox 1 5 1 1 CheckBox 1 6 1 1 CheckBox 1 7 1 1 CheckBox 1 8 1 1 CheckBox 1 9 1 1 CheckBox 1 10 1 1 CheckBox 1 11 1 1 CheckBox 1 12 1 1 CheckBox 1 13 1 1 CheckBox 1 14 1 1 CheckBox 1 15 1 1 CheckBox 1 16 1 1 CheckBox 1 17 1 1 CheckBox 1 18 1 1 CheckBox 1 19 1 1 CheckBox 1 20 1 1 CheckBox 1 21 1 1 CheckBox 1 22 1 1 CheckBox 1 23 1 1 CheckBox 1 24 1 1 CheckBox 1 25 1 1 CheckBox 1 26 1 1 CheckBox 1 27 1 1 CheckBox 1 28 1 1 CheckBox 1 29 1 1 CheckBox 1 30 1 1 CheckBox 1 31 1 1 Module 7 2 637 220 0 0 Port 0 0 2 8 Port 1 1 2 8 FSlider 2 0 8192 0 0 16384 1 FSlider 2 1 8192 0 0 16384 1 FSlider 2 2 8192 0 0 16384 1 ComboBox 2 0 1 1 Module 1 3 105 272 0 0 Port 1 1 3 1 FSlider 3 0 0 0 0 16384 1 FSlider 3 1 0 0 0 163840 1 FSlider 3 2 0 0 0 163840 1 FSlider 3 3 8192 0 1638 14745 1 FSlider 3 4 0 0 0 16384 1 FSlider 3 5 0 0 0 102940 1 ISlider 3 0 3 1 ISlider 3 1 1 1 ISlider 3 2 1 1 ComboBox 3 0 0 1 Module 9 4 227 219 0 0 Port 0 3 4 3 Port 1 1 4 1 Port 2 1 4 5 FSlider 4 0 12792 0 0 163840 1 FSlider 4 1 81182 0 0 163840 1 FSlider 4 2 49201 0 0 163840 1 FSlider 4 3 0 0 0 163840 1 FSlider 4 4 4206 0 163 16384 1 FSlider 4 5 0 0 0 16384 1 ComboBox 4 0 1 1 Module 11 5 206 73 0 0 Port 0 0 5 1 FSlider 5 0 0 0 0 16384 1 FSlider 5 1 -64235 1 -113176 0 1 FSlider 5 2 295 0 0 16384 1 FSlider 5 3 -43502 1 -113176 0 1 FSlider 5 4 0 0 0 16384 1 FSlider 5 5 819 0 0 16384 1 FSlider 5 6 16384 0 1638 163840 1 Module 2 6 347 140 0 0 Port 0 0 6 5 Port 2 0 6 4 FSlider 6 0 0 0 0 163840 1 FSlider 6 1 0 0 0 163840 1 FSlider 6 2 8192 0 0 16384 1 FSlider 6 3 8192 0 0 16384 1 FSlider 6 4 8192 0 0 16384 1 Module 6 8 466 217 0 cmt Freeverb (Version 3) Port 0 0 8 6 Port 1 0 8 6 FSlider 8 0 4601 0 0 16384 1 FSlider 8 1 -48967 1 -113176 0 1 FSlider 8 2 -25943 1 -113176 0 1 FSlider 8 3 -19781 1 -113176 0 1 FSlider 8 4 16384 0 0 16384 1 CheckBox 8 0 0 1 ams-2.0.1/demos/example_barberpole_phaser_reverb.ams0000664000076400007640000002041510075726624017610 00000000000000Module 6 1 399 4 2 blvco Saw-VCO ColorP 0 0 1 4 250 200 50 180 180 180 FSlider 1 0 0 0 0 16384 1 FSlider 1 1 0 0 0 65536 1 FSlider 1 2 0 0 0 65536 1 FSlider 1 3 12055 0 0 16384 1 LSlider 1 0 -1 1 Module 43 3 38 278 0 0 FSlider 3 0 -34252 1 -75451 49082 1 FSlider 3 1 26369 1 -75451 26369 1 FSlider 3 2 0 1 -75451 26369 1 ComboBox 3 0 2 1 Module 42 4 201 52 2 0 ColorP 0 1 4 6 250 200 50 180 180 180 FSlider 4 0 -79027 1 -150902 -40582 1 FSlider 4 1 -75451 1 -75451 0 1 FSlider 4 2 0 1 -75451 37725 1 FSlider 4 3 -75684 1 -150902 -40582 1 FSlider 4 4 -75451 1 -75451 0 1 FSlider 4 5 37725 1 -75451 37725 1 ComboBox 4 0 0 1 ComboBox 4 1 0 1 CheckBox 4 0 0 1 Module 35 6 11 18 0 0 FSlider 6 0 0 0 -16384 16384 1 ISlider 6 0 0 1 ISlider 6 1 0 1 ISlider 6 2 0 1 ISlider 6 3 0 1 ISlider 6 4 0 1 Module 2 7 1075 41 0 0 ColorP 0 0 7 32 250 200 50 180 180 180 ColorP 2 0 7 16 250 200 50 180 180 180 FSlider 7 0 0 0 0 16384 1 FSlider 7 1 0 0 0 16384 1 FSlider 7 2 16384 0 0 32768 1 FSlider 7 3 16384 0 0 32768 1 FSlider 7 4 16384 0 0 32768 1 Module 6 8 1232 9 0 cs_phaser Phaser1 ColorP 0 0 8 7 250 200 50 180 180 180 ColorP 1 0 8 3 250 200 50 180 180 180 FSlider 8 0 0 0 -655360 163840 1 FSlider 8 1 -38637 0 -98304 98304 1 FSlider 8 2 0 0 0 163840 1 FSlider 8 3 0 0 0 163840 1 FSlider 8 4 11997 0 -16384 16384 1 FSlider 8 5 8070 0 -16384 16384 1 LSlider 8 0 8 1 FSMIDI 8 4 13 0 0 LSMIDI 8 0 10 0 1 Module 6 9 1232 132 0 cs_phaser Phaser1 ColorP 0 0 9 7 250 200 50 180 180 180 ColorP 1 1 9 3 250 200 50 180 180 180 FSlider 9 0 0 0 -655360 163840 1 FSlider 9 1 -38637 0 -98304 98304 1 FSlider 9 2 0 0 0 163840 1 FSlider 9 3 0 0 0 163840 1 FSlider 9 4 11997 0 -16384 16384 1 FSlider 9 5 8233 0 -16384 16384 1 LSlider 9 0 8 1 FSMIDI 9 4 13 0 0 LSMIDI 9 0 10 0 1 Module 6 10 1231 255 0 cs_phaser Phaser1 ColorP 0 0 10 7 250 200 50 180 180 180 ColorP 1 2 10 3 250 200 50 180 180 180 FSlider 10 0 0 0 -655360 163840 1 FSlider 10 1 -38637 0 -98304 98304 1 FSlider 10 2 0 0 0 163840 1 FSlider 10 3 0 0 0 163840 1 FSlider 10 4 11997 0 -16384 16384 1 FSlider 10 5 8233 0 -16384 16384 1 LSlider 10 0 8 1 FSMIDI 10 4 13 0 0 LSMIDI 10 0 10 0 1 Module 6 11 1232 379 0 cs_phaser Phaser1 ColorP 0 0 11 7 250 200 50 180 180 180 ColorP 1 3 11 3 250 200 50 180 180 180 FSlider 11 0 0 0 -655360 163840 1 FSlider 11 1 -38637 0 -98304 98304 1 FSlider 11 2 0 0 0 163840 1 FSlider 11 3 0 0 0 163840 1 FSlider 11 4 11997 0 -16384 16384 1 FSlider 11 5 8233 0 -16384 16384 1 LSlider 11 0 8 1 FSMIDI 11 4 13 0 0 LSMIDI 11 0 10 0 1 Module 6 12 1232 503 0 cs_phaser Phaser1 ColorP 0 0 12 7 250 200 50 180 180 180 ColorP 1 4 12 3 250 200 50 180 180 180 FSlider 12 0 0 0 -655360 163840 1 FSlider 12 1 -38637 0 -98304 98304 1 FSlider 12 2 0 0 0 163840 1 FSlider 12 3 0 0 0 163840 1 FSlider 12 4 11997 0 -16384 16384 1 FSlider 12 5 8233 0 -16384 16384 1 LSlider 12 0 8 1 FSMIDI 12 4 13 0 0 LSMIDI 12 0 10 0 1 Module 6 13 1232 626 0 cs_phaser Phaser1 ColorP 0 0 13 7 250 200 50 180 180 180 ColorP 1 5 13 3 250 200 50 180 180 180 FSlider 13 0 0 0 -655360 163840 1 FSlider 13 1 -38637 0 -98304 98304 1 FSlider 13 2 0 0 0 163840 1 FSlider 13 3 0 0 0 163840 1 FSlider 13 4 11997 0 -16384 16384 1 FSlider 13 5 8233 0 -16384 16384 1 LSlider 13 0 8 1 FSMIDI 13 4 13 0 0 LSMIDI 13 0 10 0 1 Module 6 14 1232 750 0 cs_phaser Phaser1 ColorP 0 0 14 7 250 200 50 180 180 180 ColorP 1 6 14 3 250 200 50 180 180 180 FSlider 14 0 0 0 -655360 163840 1 FSlider 14 1 -38637 0 -98304 98304 1 FSlider 14 2 0 0 0 163840 1 FSlider 14 3 0 0 0 163840 1 FSlider 14 4 11997 0 -16384 16384 1 FSlider 14 5 8233 0 -16384 16384 1 LSlider 14 0 8 1 FSMIDI 14 4 13 0 0 LSMIDI 14 0 10 0 1 Module 6 15 1232 873 0 cs_phaser Phaser1 ColorP 0 0 15 7 250 200 50 180 180 180 ColorP 1 7 15 3 250 200 50 180 180 180 FSlider 15 0 0 0 -655360 163840 1 FSlider 15 1 -38637 0 -98304 98304 1 FSlider 15 2 0 0 0 163840 1 FSlider 15 3 0 0 0 163840 1 FSlider 15 4 11997 0 -16384 16384 1 FSlider 15 5 8233 0 -16384 16384 1 LSlider 15 0 8 1 FSMIDI 15 4 13 0 0 LSMIDI 15 0 10 0 1 Module 6 16 813 137 2 mvclpf24 Mvclpf-4 ColorP 0 0 16 18 250 200 50 180 180 180 ColorP 1 1 16 4 250 200 50 180 180 180 ColorP 2 0 16 32 250 200 50 180 180 180 FSlider 16 0 0 0 -983040 163840 1 FSlider 16 1 29834 0 -98304 98304 1 FSlider 16 2 89664 0 0 163840 1 FSlider 16 3 0 0 0 16384 1 FSlider 16 4 0 0 0 16384 1 FSlider 16 5 -8559 0 -245760 245760 1 LSlider 16 0 4 1 Module 6 17 399 134 2 blvco Saw-VCO ColorP 0 1 17 4 250 200 50 180 180 180 FSlider 17 0 73 0 0 16384 1 FSlider 17 1 0 0 0 65536 1 FSlider 17 2 0 0 0 65536 1 FSlider 17 3 9847 0 0 16384 1 LSlider 17 0 0 1 Module 8 18 673 55 2 0 ColorP 0 0 18 1 250 200 50 180 180 180 ColorP 1 0 18 17 250 200 50 180 180 180 FSlider 18 0 16469 0 0 32768 1 FSlider 18 1 16384 0 0 32768 1 FSlider 18 2 16384 0 0 32768 1 Module 7 20 2281 516 0 0 ColorP 0 0 20 36 250 200 50 180 180 180 ColorP 1 1 20 36 250 200 50 180 180 180 FSlider 20 0 8192 0 0 16384 1 FSlider 20 1 8192 0 0 16384 1 FSlider 20 2 8192 0 0 16384 1 ComboBox 20 0 0 1 Module 2 21 1556 4 0 0 ColorP 0 8 21 3 250 200 50 180 180 180 ColorP 2 0 21 8 250 200 50 180 180 180 FSlider 21 0 0 0 0 16384 1 FSlider 21 1 0 0 0 16384 1 FSlider 21 2 16384 0 0 32768 1 FSlider 21 3 16384 0 0 32768 1 FSlider 21 4 16384 0 0 32768 1 Module 2 22 1557 150 0 0 ColorP 0 9 22 3 250 200 50 180 180 180 ColorP 2 0 22 9 250 200 50 180 180 180 FSlider 22 0 0 0 0 16384 1 FSlider 22 1 0 0 0 16384 1 FSlider 22 2 16384 0 0 32768 1 FSlider 22 3 16384 0 0 32768 1 FSlider 22 4 16384 0 0 32768 1 Module 2 23 1558 294 0 0 ColorP 0 10 23 3 250 200 50 180 180 180 ColorP 2 0 23 10 250 200 50 180 180 180 FSlider 23 0 0 0 0 16384 1 FSlider 23 1 0 0 0 16384 1 FSlider 23 2 16384 0 0 32768 1 FSlider 23 3 16384 0 0 32768 1 FSlider 23 4 16384 0 0 32768 1 Module 2 24 1560 438 0 0 ColorP 0 11 24 3 250 200 50 180 180 180 ColorP 2 0 24 11 250 200 50 180 180 180 FSlider 24 0 0 0 0 16384 1 FSlider 24 1 0 0 0 16384 1 FSlider 24 2 16384 0 0 32768 1 FSlider 24 3 16384 0 0 32768 1 FSlider 24 4 16384 0 0 32768 1 Module 2 25 1559 583 0 0 ColorP 0 12 25 3 250 200 50 180 180 180 ColorP 2 0 25 12 250 200 50 180 180 180 FSlider 25 0 0 0 0 16384 1 FSlider 25 1 0 0 0 16384 1 FSlider 25 2 16384 0 0 32768 1 FSlider 25 3 16384 0 0 32768 1 FSlider 25 4 16384 0 0 32768 1 Module 2 26 1557 731 0 0 ColorP 0 13 26 3 250 200 50 180 180 180 ColorP 2 0 26 13 250 200 50 180 180 180 FSlider 26 0 0 0 0 16384 1 FSlider 26 1 0 0 0 16384 1 FSlider 26 2 16384 0 0 32768 1 FSlider 26 3 16384 0 0 32768 1 FSlider 26 4 16384 0 0 32768 1 Module 2 27 1557 885 0 0 ColorP 0 14 27 3 250 200 50 180 180 180 ColorP 2 0 27 14 250 200 50 180 180 180 FSlider 27 0 0 0 0 16384 1 FSlider 27 1 0 0 0 16384 1 FSlider 27 2 16384 0 0 32768 1 FSlider 27 3 16384 0 0 32768 1 FSlider 27 4 16384 0 0 32768 1 Module 2 28 1556 1035 0 0 ColorP 0 15 28 3 250 200 50 180 180 180 ColorP 2 0 28 15 250 200 50 180 180 180 FSlider 28 0 0 0 0 16384 1 FSlider 28 1 0 0 0 16384 1 FSlider 28 2 16384 0 0 32768 1 FSlider 28 3 16384 0 0 32768 1 FSlider 28 4 16384 0 0 32768 1 Module 39 32 400 264 0 0 ColorP 0 0 32 6 250 200 50 180 180 180 ColorP 1 3 32 6 250 200 50 180 180 180 FSlider 32 0 -118973 0 -131072 131072 1 FSlider 32 1 79988 0 -131072 131072 1 FSlider 32 2 0 0 0 16384 1 FSlider 32 3 8192 0 0 16384 1 FSlider 32 4 0 0 -131072 131072 1 FSlider 32 5 16384 0 -131072 131072 1 FSlider 32 6 16384 0 -131072 131072 1 FSlider 32 7 16384 0 0 16384 1 FSlider 32 8 16384 0 0 16384 1 FSlider 32 9 16384 0 -131072 131072 1 Module 8 33 1799 400 4 0 ColorP 0 0 33 21 250 200 50 180 180 180 ColorP 1 0 33 22 250 200 50 180 180 180 ColorP 2 0 33 23 250 200 50 180 180 180 ColorP 3 0 33 24 250 200 50 180 180 180 FSlider 33 0 5433 0 0 32768 1 FSlider 33 1 16384 0 0 32768 1 FSlider 33 2 16384 0 0 32768 1 FSlider 33 3 16384 0 0 32768 1 FSlider 33 4 16384 0 0 32768 1 Module 8 34 1799 547 4 0 ColorP 0 0 34 25 250 200 50 180 180 180 ColorP 1 0 34 26 250 200 50 180 180 180 ColorP 2 0 34 27 250 200 50 180 180 180 ColorP 3 0 34 28 250 200 50 180 180 180 FSlider 34 0 5433 0 0 32768 1 FSlider 34 1 16384 0 0 32768 1 FSlider 34 2 16384 0 0 32768 1 FSlider 34 3 16384 0 0 32768 1 FSlider 34 4 16384 0 0 32768 1 Module 6 36 1997 515 0 g2reverb G2reverb ColorP 0 0 36 33 250 200 50 180 180 180 ColorP 1 0 36 34 250 200 50 180 180 180 FSlider 36 0 1685662 0 163840 2457600 1 FSlider 36 1 48273 0 16384 327680 1 FSlider 36 2 10310 0 0 16384 1 FSlider 36 3 2877 0 0 16384 1 FSlider 36 4 0 0 -1310720 0 1 FSlider 36 5 -262144 0 -1310720 0 1 FSlider 36 6 -185419 0 -1310720 0 1 ams-2.0.1/demos/example_portamento.ams0000664000076400007640000000307107770061731014752 00000000000000Module 7 1 629 140 0 0 Port 0 0 1 7 Port 1 0 1 7 FSlider 1 0 8826 0 0 16384 1 FSlider 1 1 8192 0 0 16384 1 FSlider 1 2 8192 0 0 16384 1 ComboBox 1 0 1 1 Module 1 2 330 58 0 0 Port 1 0 2 11 FSlider 2 0 0 0 0 16384 1 FSlider 2 1 1638 0 0 163840 1 FSlider 2 2 0 0 0 163840 1 FSlider 2 3 8192 0 1638 14745 1 FSlider 2 4 0 0 0 163840 1 FSlider 2 5 0 0 0 163840 1 ISlider 2 0 1 1 ISlider 2 1 1 1 ISlider 2 2 1 1 ComboBox 2 0 0 1 Module 9 7 484 59 0 0 Port 0 2 7 2 Port 1 0 7 11 FSlider 7 0 16384 0 0 163840 1 FSlider 7 1 75818 0 52358 109656 1 FSMIDI 7 1 10 0 1 FSlider 7 2 0 0 0 163840 1 FSlider 7 3 0 0 0 163840 1 FSlider 7 4 13107 0 163 16384 1 FSlider 7 5 0 0 0 16384 1 ComboBox 7 0 6 1 Module 15 11 174 118 0 0 Port 0 1 11 13 FSlider 11 0 8192 0 0 163840 1 FSlider 11 1 8192 0 0 163840 1 Module 10 13 29 91 0 0 FSlider 13 0 129 0 -16384 16384 1 FSMIDI 13 0 13 0 0 ISlider 13 0 24 1 ComboBox 13 0 0 1 Comment 0 0 207 299 330 186 #PARA# 0 0 0 This patch demonstrates the Slew Limiter. This module limits the slope of the input control signal. #ARAP# #PARA# 0 0 1 Different values can be supplied for rising and falling signals. #ARAP# #PARA# 0 0 2 #ARAP# #PARA# 0 0 3 Here, the slew limiter features a portamento. You might want to add ENV and VCA modules as well. #ARAP# #PARA# 0 0 4 #ARAP# #PARA# 0 0 5 #ARAP# #PARA# 0 0 6 #ARAP# #PARA# 0 0 7 #ARAP# #PARA# 0 0 8 #ARAP# #PARA# 0 0 9 #ARAP# #PARA# 0 0 10 #ARAP# #PARA# 0 0 11 #ARAP# #PARA# 0 0 12 #ARAP# #PARA# 0 0 13 #ARAP# #PARA# 0 0 14 #ARAP# #PARA# 0 0 15 #ARAP# #PARA# 0 0 16 #ARAP# #PARA# 0 0 17 #ARAP# ams-2.0.1/demos/phaser_wail.ams0000664000076400007640000000556307770061731013355 00000000000000Module 7 1 1019 238 0 0 Port 0 0 1 16 Port 1 1 1 16 FSlider 1 0 16384 0 0 16384 1 FSlider 1 1 8192 0 0 16384 1 FSlider 1 2 8192 0 0 16384 1 ComboBox 1 0 1 1 Module 11 3 318 33 0 0 Port 0 1 3 7 Port 1 1 3 7 FSlider 3 0 0 0 0 16384 1 FSlider 3 1 -106718 1 -113176 0 1 FSlider 3 2 0 0 0 16384 1 FSlider 3 3 3887 0 0 16384 1 FSlider 3 4 9742 0 0 16384 1 FSlider 3 5 6298 0 0 16384 1 FSlider 3 6 12354 0 1638 163840 1 Module 2 4 528 36 0 0 Port 0 0 4 3 Port 2 0 4 10 FSlider 4 0 7042 0 0 163840 1 FSlider 4 1 0 0 0 163840 1 FSlider 4 2 8192 0 0 16384 1 FSlider 4 3 8192 0 0 16384 1 FSlider 4 4 8192 0 0 16384 1 Module 1 5 386 177 0 0 Port 1 0 5 7 FSlider 5 0 0 0 0 16384 1 FSlider 5 1 1638 0 0 163840 1 FSlider 5 2 0 0 0 163840 1 FSlider 5 3 8192 0 1638 14745 1 FSlider 5 4 0 0 0 16384 1 FSlider 5 5 0 0 0 102940 1 ISlider 5 0 3 1 ISlider 5 1 1 1 ISlider 5 2 1 1 ComboBox 5 0 0 1 Module 16 7 184 104 0 0 Port 0 1 7 12 Port 1 1 7 21 ComboBox 7 0 10 1 Module 9 10 498 228 0 0 Port 0 2 10 5 Port 1 0 10 13 Port 2 0 10 18 FSlider 10 0 17554 0 0 163840 1 FSlider 10 1 111687 0 0 163840 1 FSlider 10 2 48709 0 0 163840 1 FSlider 10 3 0 0 0 163840 1 FSlider 10 4 13107 0 163 16384 1 FSlider 10 5 0 0 0 16384 1 ComboBox 10 0 6 1 Module 14 12 14 148 0 0 FSlider 12 0 27228 0 0 163840 1 FSlider 12 1 6572 0 0 16384 1 Module 15 13 278 272 0 0 Port 0 0 13 7 FSlider 13 0 8192 0 0 163840 1 FSlider 13 1 8192 0 0 163840 1 Module 6 15 715 206 0 cmt Canyon Delay Port 0 0 15 24 Port 1 0 15 25 FSlider 15 0 9273 0 163 16220 1 FSlider 15 1 12347 0 -16384 16384 1 FSlider 15 2 6788 0 163 16220 1 FSlider 15 3 13661 0 -16384 16384 1 FSlider 15 4 81920000 0 16384 81920000 1 Module 6 16 975 136 0 cmt Freeverb (Version 3) Port 0 0 16 15 Port 1 1 16 15 FSlider 16 0 8215 0 0 16384 1 FSlider 16 1 -83988 1 -113176 0 1 FSlider 16 2 -9404 1 -113176 0 1 FSlider 16 3 0 1 -113176 0 1 FSlider 16 4 16384 0 0 16384 1 CheckBox 16 0 0 1 Module 15 18 381 411 0 0 Port 0 2 18 19 FSlider 18 0 98116 0 0 163840 1 FSlider 18 1 70418 0 0 163840 1 Module 14 19 240 422 0 0 FSlider 19 0 133325 0 0 163840 1 FSlider 19 1 16384 0 0 16384 1 Module 16 21 71 302 0 0 Port 0 2 21 12 ComboBox 21 0 0 1 Module 6 23 754 26 0 bode_shifter_cv_1432 Bode frequency shifter (CV) Port 0 0 23 4 FSlider 23 0 14419592 0 0 81920000 1 FSlider 23 1 -16384 0 -16384 16384 1 FSlider 23 2 0 0 0 16384 1 Module 8 24 902 327 2 0 Port 0 0 24 27 Port 1 0 24 23 FSlider 24 0 16384 0 0 32768 1 FSlider 24 1 16384 0 0 32768 1 FSlider 24 2 4932 0 0 32768 1 Module 8 25 747 367 2 0 Port 0 0 25 4 Port 1 1 25 23 FSlider 25 0 16384 0 0 32768 1 FSlider 25 1 16384 0 0 32768 1 FSlider 25 2 4932 0 0 32768 1 Module 6 27 606 198 1 cs_phaser Phaser1 Port 0 0 27 4 Port 1 0 27 18 Port 5 0 27 13 FSlider 27 0 -99474 0 -655360 163840 1 FSlider 27 1 23406 0 -81920 81920 1 FSlider 27 2 0 0 0 163840 1 FSlider 27 3 0 0 0 163840 1 FSlider 27 4 16296 0 -16384 16384 1 FSlider 27 5 16384 0 -16384 16384 1 LSlider 27 0 30 1ams-2.0.1/demos/organ01.ams0000664000076400007640000000230207770061731012312 00000000000000Module 33 1 121 26 0 0 Port 0 1 1 2 ISlider 1 0 0 1 ComboBox 1 0 1 1 Module 10 2 3 14 0 0 FSlider 2 0 0 0 -16384 16384 1 ISlider 2 0 24 1 ComboBox 2 0 0 1 Module 7 3 569 208 0 0 Port 0 0 3 6 Port 1 1 3 6 FSlider 3 0 8192 0 0 16384 1 FSlider 3 1 8192 0 0 16384 1 FSlider 3 2 8192 0 0 16384 1 ComboBox 3 0 1 1 Module 6 4 250 38 3 cmt Organ Port 0 0 4 2 Port 2 0 4 1 FSlider 4 0 16384 0 0 16384 1 FSlider 4 1 0 0 0 327680000 1 FSlider 4 2 16384 0 0 16384 1 FSlider 4 3 16384 0 0 16384 1 FSlider 4 4 16384 0 0 16384 1 FSlider 4 5 16384 0 0 16384 1 FSlider 4 6 16384 0 0 16384 1 FSlider 4 7 16384 0 0 16384 1 FSlider 4 8 163 0 163 16384 1 FSlider 4 9 163 0 163 16384 1 FSlider 4 10 16384 0 0 16384 1 FSlider 4 11 163 0 163 16384 1 FSlider 4 12 163 0 163 16384 1 FSlider 4 13 163 0 163 16384 1 FSlider 4 14 16384 0 0 16384 1 FSlider 4 15 163 0 163 16384 1 CheckBox 4 0 0 1 CheckBox 4 1 1 1 CheckBox 4 2 1 1 CheckBox 4 3 1 1 Module 6 6 499 31 0 g2reverb Stereo reverb Port 0 0 6 4 Port 1 0 6 4 FSlider 6 0 1446312 0 163840 2457600 1 FSlider 6 1 47820 0 16384 327680 1 FSlider 6 2 13115 0 0 16384 1 FSlider 6 3 4520 0 0 16384 1 FSlider 6 4 0 0 -1310720 0 1 FSlider 6 5 -90394 0 -1310720 0 1 FSlider 6 6 -116221 0 -1310720 0 1 ams-2.0.1/demos/JungleBird.ams0000664000076400007640000000452507770061731013101 00000000000000Module 7 1 652 42 0 0 Port 0 0 1 10 Port 1 1 1 10 FSlider 1 0 13849 0 0 16384 1 FSlider 1 1 16384 0 0 16384 1 FSlider 1 2 16384 0 0 16384 1 ComboBox 1 0 1 1 Module 2 4 319 19 0 0 Port 0 0 4 23 Port 2 0 4 14 FSlider 4 0 0 0 0 163840 1 FSlider 4 1 418 0 0 163840 1 FSlider 4 2 1254 0 0 32768 1 FSlider 4 3 4681 0 0 32768 1 FSlider 4 4 8192 0 0 32768 1 Module 6 10 462 40 0 cmt Freeverb (Version 3) Port 0 0 10 4 Port 1 0 10 4 FSlider 10 0 8234 0 0 16384 1 FSlider 10 1 -19337 1 -113176 0 1 FSlider 10 2 -9803 1 -113175 0 1 FSMIDI 10 2 10 0 2 FSlider 10 3 -5338 1 -113176 0 1 FSlider 10 4 16342 0 0 16384 1 CheckBox 10 0 0 1 Module 10 12 5 25 0 0 FSlider 12 0 129 0 -16384 16384 1 ISlider 12 0 24 1 ComboBox 12 0 0 1 Module 1 14 317 212 0 0 Port 1 0 14 22 Port 2 1 14 23 FSlider 14 0 0 0 0 16384 1 FSlider 14 1 8192 0 1638 14745 1 FSlider 14 2 0 0 0 16384 1 FSlider 14 3 0 0 0 102940 1 FSlider 14 4 27736 0 988 51689 0 FSMIDI 14 4 13 0 0 FSlider 14 5 1260 0 0 163840 1 ISlider 14 0 6 1 ISlider 14 1 1 1 ISlider 14 2 1 1 ComboBox 14 0 0 1 Module 18 22 125 20 0 0 FSlider 22 0 33019 0 0 81920 1 FSlider 22 1 0 0 -8192 8192 1 FSlider 22 2 0 0 0 81920 1 FSlider 22 3 0 0 -8192 8192 1 FSlider 22 4 0 0 0 81920 1 FSlider 22 5 0 0 -8192 8192 1 FSlider 22 6 0 0 0 81920 1 FSlider 22 7 0 0 -8192 8192 1 Module 22 23 121 166 0 0 Port 0 0 23 12 FSlider 23 0 16036 0 1638 163840 1 FSlider 23 1 0 0 0 10191 1 FSlider 23 2 0 0 0 16384 1 FSlider 23 3 326 0 0 16384 1 FSlider 23 4 8400 0 0 16384 1 FSlider 23 5 2048 0 0 16384 1 FSlider 23 6 8643 0 0 16384 1 FSMIDI 23 6 10 0 1 FSlider 23 7 1187 0 0 16384 1 FSlider 23 8 16087 0 0 16384 1 FSlider 23 9 3740 0 0 16384 1 FSlider 23 10 1276 0 0 16384 1 FSlider 23 11 0 0 0 16384 1 FSlider 23 12 1306 0 0 16384 1 FSlider 23 13 0 0 0 16384 1 FSlider 23 14 1187 0 0 16384 1 Comment 0 0 411 212 315 182 #PARA# 0 0 0 This sound (contributed by Christoph Eckert) demonstrates the possibility to also use the keyboard with a fixed pitch. #ARAP# #PARA# 0 0 1 You may use Pitch Bender to vary the pitch. #ARAP# #PARA# 0 0 2 If you have CC02 assigned, it will control the reverb. #ARAP# #PARA# 0 0 3 #ARAP# #PARA# 0 0 4 Have fun! #ARAP# #PARA# 0 0 5 #ARAP# #PARA# 0 0 6 #ARAP# #PARA# 0 0 7 #ARAP# #PARA# 0 0 8 #ARAP# #PARA# 0 0 9 #ARAP# #PARA# 0 0 10 #ARAP# #PARA# 0 0 11 #ARAP# #PARA# 0 0 12 #ARAP# #PARA# 0 0 13 #ARAP# #PARA# 0 0 14 #ARAP# ams-2.0.1/demos/example_ams_demo_scope_spectrum_mcpvcf.ams0000664000076400007640000000642207770061731021022 00000000000000Module 7 1 1019 238 0 0 Port 0 0 1 16 Port 1 1 1 16 FSlider 1 0 8192 0 0 16384 1 FSlider 1 1 8192 0 0 16384 1 FSlider 1 2 8192 0 0 16384 1 ComboBox 1 0 1 1 Module 11 3 318 33 0 0 Port 0 1 3 7 Port 1 1 3 7 FSlider 3 0 0 0 0 16384 1 FSlider 3 1 -106718 1 -113176 0 1 FSlider 3 2 0 0 0 16384 1 FSlider 3 3 3887 0 0 16384 1 FSlider 3 4 9742 0 0 16384 1 FSlider 3 5 6298 0 0 16384 1 FSlider 3 6 12354 0 1638 163840 1 Module 2 4 612 130 0 0 Port 0 0 4 3 Port 2 0 4 29 FSlider 4 0 7042 0 0 163840 1 FSlider 4 1 0 0 0 163840 1 FSlider 4 2 8192 0 0 16384 1 FSlider 4 3 8192 0 0 16384 1 FSlider 4 4 8192 0 0 16384 1 Module 1 5 386 177 0 0 Port 1 0 5 7 FSlider 5 0 0 0 0 16384 1 FSlider 5 1 1638 0 0 163840 1 FSlider 5 2 0 0 0 163840 1 FSlider 5 3 8192 0 1638 14745 1 FSlider 5 4 0 0 0 16384 1 FSlider 5 5 0 0 0 102940 1 ISlider 5 0 3 1 ISlider 5 1 1 1 ISlider 5 2 1 1 ComboBox 5 0 0 1 Module 16 7 184 104 0 0 Port 0 1 7 12 Port 1 1 7 21 ComboBox 7 0 10 1 Module 14 12 14 148 0 0 FSlider 12 0 27228 0 0 163840 1 FSlider 12 1 6572 0 0 16384 1 Module 15 13 278 272 0 0 Port 0 0 13 7 FSlider 13 0 8192 0 0 163840 1 FSlider 13 1 8192 0 0 163840 1 Module 6 15 715 206 0 cmt Canyon Delay Port 0 0 15 4 Port 1 0 15 4 FSlider 15 0 9273 0 163 16220 1 FSlider 15 1 12347 0 -16384 16384 1 FSlider 15 2 6788 0 163 16220 1 FSlider 15 3 13661 0 -16384 16384 1 FSlider 15 4 81920000 0 16384 81920000 1 Module 6 16 868 232 0 cmt Freeverb (Version 3) Port 0 0 16 15 Port 1 1 16 15 FSlider 16 0 8215 0 0 16384 1 FSlider 16 1 -83988 1 -113176 0 1 FSlider 16 2 -9404 1 -113176 0 1 FSlider 16 3 0 1 -113176 0 1 FSlider 16 4 16384 0 0 16384 1 CheckBox 16 0 0 1 Module 15 18 381 411 0 0 Port 0 2 18 19 FSlider 18 0 98116 0 0 163840 1 FSlider 18 1 70418 0 0 163840 1 Module 14 19 238 408 0 0 FSlider 19 0 133325 0 0 163840 1 FSlider 19 1 16384 0 0 16384 1 Module 16 21 71 277 0 0 Port 0 2 21 12 ComboBox 21 0 0 1 Module 24 23 217 4 0 0 Port 0 0 23 4 FSlider 23 0 418607 0 163840 16384000 1 FSlider 23 1 49195 0 1638 163840 1 FSlider 23 2 -686 0 -16384 16384 1 ComboBox 23 0 1 1 ComboBox 23 1 0 1 Module 25 24 113 4 0 0 Port 0 0 24 4 FSlider 24 0 16384 0 1638 163840 1 FSlider 24 1 0 0 0 327680000 1 FSlider 24 2 163840000 0 0 327680000 1 ComboBox 24 0 1 1 ComboBox 24 1 0 1 ComboBox 24 2 0 1 ComboBox 24 3 1 1 ComboBox 24 4 2 1 ComboBox 24 5 4 1 CheckBox 24 0 1 1 Module 25 25 9 4 0 0 Port 0 0 25 4 FSlider 25 0 16384 0 1638 163840 1 FSlider 25 1 0 0 0 327680000 1 FSlider 25 2 163840000 0 0 327680000 1 ComboBox 25 0 0 1 ComboBox 25 1 0 1 ComboBox 25 2 0 1 ComboBox 25 3 1 1 ComboBox 25 4 2 1 ComboBox 25 5 4 1 CheckBox 25 0 1 1 Module 29 27 491 33 0 0 Port 0 1 27 12 Port 2 1 27 7 FSlider 27 0 6434 0 0 163840 1 FSlider 27 1 16384 0 0 163840 1 FSlider 27 2 8192 0 0 163840 1 ISlider 27 0 41 1 ISlider 27 1 0 1 ISlider 27 2 24 1 ISlider 27 3 25 1 ComboBox 27 0 9 1 ComboBox 27 1 2 1 Module 6 29 510 324 0 mvclpf24 Mvclpf-3 Port 0 2 29 5 Port 1 0 29 13 Port 2 0 29 18 Port 3 0 29 31 FSlider 29 0 -2117 0 -983040 163840 1 FSlider 29 1 38314 0 -81920 81920 1 FSlider 29 2 77051 0 0 163840 1 FSlider 29 3 6731 0 0 16384 1 FSlider 29 4 11939 0 0 16384 1 FSlider 29 5 245760 0 -245760 245760 1 Module 14 30 33 436 0 0 FSlider 30 0 112614 0 0 163840 1 FSlider 30 1 16384 0 0 16384 1 Module 15 31 177 319 0 0 Port 0 2 31 30 FSlider 31 0 18204 0 0 163840 1 FSlider 31 1 55460 0 0 163840 1 ams-2.0.1/demos/example_basic.ams0000664000076400007640000004645307770061731013656 00000000000000Module 7 1 590 33 0 0 Port 0 0 1 4 Port 1 0 1 4 FSlider 1 0 8192 0 0 16384 1 FSlider 1 1 8192 0 0 16384 1 FSlider 1 2 8192 0 0 16384 1 ComboBox 1 0 1 1 Module 11 3 188 15 0 0 Port 0 0 3 7 FSlider 3 0 0 0 0 16384 1 FSlider 3 1 -72732 1 -113176 0 1 FSlider 3 2 98 0 0 16384 1 FSlider 3 3 12448 0 0 16384 1 FSlider 3 4 4969 0 0 16384 1 FSlider 3 5 7380 0 0 16384 1 FSlider 3 6 16384 0 1638 163840 1 Module 2 4 425 19 0 0 Port 0 0 4 3 Port 2 2 4 5 FSlider 4 0 0 0 0 163840 1 FSlider 4 1 0 0 0 163840 1 FSlider 4 2 8192 0 0 16384 1 FSlider 4 3 8192 0 0 16384 1 FSlider 4 4 8192 0 0 16384 1 Module 1 5 198 150 0 0 Port 1 1 5 7 FSlider 5 0 0 0 0 16384 1 FSlider 5 1 1638 0 0 163840 1 FSlider 5 2 0 0 0 163840 1 FSlider 5 3 8192 0 1638 14745 1 FSlider 5 4 0 0 0 163840 1 FSlider 5 5 0 0 0 163840 1 ISlider 5 0 0 1 ISlider 5 1 1 1 ISlider 5 2 1 1 ComboBox 5 0 0 1 Module 10 7 38 71 0 0 FSlider 7 0 16384 0 -16384 16384 1 FSMIDI 7 0 13 0 0 ISlider 7 0 24 1 ComboBox 7 0 0 1 Comment 0 0 332 273 388 202 #PARA# 0 0 0 This is the most basic patch. It has a MCV for MIDI input,and a VCO for wave synthesis. The amplification of the VCA depends on the input signal of its gain ports. #ARAP# #PARA# 0 0 1 The gain curve is generated by the ENV. #ARAP# #PARA# 0 0 2 #ARAP# #PARA# 0 0 3 To play this patch start "kaconnect" and "vkeybd". Then #ARAP# #PARA# 0 0 4 connect "vkeybd" and "AlsaModularSynth". The pitchbender has been bound to the "Pitch" parameter of the MCV. #ARAP# #PARA# 0 0 5 #ARAP# #PARA# 0 0 6 #ARAP# #PARA# 0 0 7 #ARAP# #PARA# 0 0 8 #ARAP# #PARA# 0 0 9 #ARAP# #PARA# 0 0 10 #ARAP# #PARA# 0 0 11 #ARAP# #PARA# 0 0 12 #ARAP# #PARA# 0 0 13 #ARAP# #PARA# 0 0 14 #ARAP# #PARA# 0 0 15 #ARAP# #PARA# 0 0 16 #ARAP# #PARA# 0 0 17 #ARAP# #PARA# 0 0 18 #ARAP# #PARA# 0 0 19 #ARAP# #PARA# 0 0 20 #ARAP# #PARA# 0 0 21 #ARAP# #PARA# 0 0 22 #ARAP# #PARA# 0 0 23 #ARAP# #PARA# 0 0 24 #ARAP# #PARA# 0 0 25 #ARAP# #PARA# 0 0 26 #ARAP# #PARA# 0 0 27 #ARAP# #PARA# 0 0 28 #ARAP# #PARA# 0 0 29 #ARAP# #PARA# 0 0 30 #ARAP# #PARA# 0 0 31 #ARAP# #PARA# 0 0 32 #ARAP# #PARA# 0 0 33 #ARAP# #PARA# 0 0 34 #ARAP# #PARA# 0 0 35 #ARAP# #PARA# 0 0 36 #ARAP# #PARA# 0 0 37 #ARAP# #PARA# 0 0 38 #ARAP# #PARA# 0 0 39 #ARAP# #PARA# 0 0 40 #ARAP# #PARA# 0 0 41 #ARAP# #PARA# 0 0 42 #ARAP# #PARA# 0 0 43 #ARAP# #PARA# 0 0 44 #ARAP# #PARA# 0 0 45 #ARAP# #PARA# 0 0 46 #ARAP# #PARA# 0 0 47 #ARAP# #PARA# 0 0 48 #ARAP# #PARA# 0 0 49 #ARAP# #PARA# 0 0 50 #ARAP# #PARA# 0 0 51 #ARAP# #PARA# 0 0 52 #ARAP# #PARA# 0 0 53 #ARAP# #PARA# 0 0 54 #ARAP# #PARA# 0 0 55 #ARAP# #PARA# 0 0 56 #ARAP# #PARA# 0 0 57 #ARAP# #PARA# 0 0 58 #ARAP# #PARA# 0 0 59 #ARAP# #PARA# 0 0 60 #ARAP# #PARA# 0 0 61 #ARAP# #PARA# 0 0 62 #ARAP# #PARA# 0 0 63 #ARAP# #PARA# 0 0 64 #ARAP# #PARA# 0 0 65 #ARAP# #PARA# 0 0 66 #ARAP# #PARA# 0 0 67 #ARAP# #PARA# 0 0 68 #ARAP# #PARA# 0 0 69 #ARAP# #PARA# 0 0 70 #ARAP# #PARA# 0 0 71 #ARAP# #PARA# 0 0 72 #ARAP# #PARA# 0 0 73 #ARAP# #PARA# 0 0 74 #ARAP# #PARA# 0 0 75 #ARAP# #PARA# 0 0 76 #ARAP# #PARA# 0 0 77 #ARAP# #PARA# 0 0 78 #ARAP# #PARA# 0 0 79 #ARAP# #PARA# 0 0 80 #ARAP# #PARA# 0 0 81 #ARAP# #PARA# 0 0 82 #ARAP# #PARA# 0 0 83 #ARAP# #PARA# 0 0 84 #ARAP# #PARA# 0 0 85 #ARAP# #PARA# 0 0 86 #ARAP# #PARA# 0 0 87 #ARAP# #PARA# 0 0 88 #ARAP# #PARA# 0 0 89 #ARAP# #PARA# 0 0 90 #ARAP# #PARA# 0 0 91 #ARAP# #PARA# 0 0 92 #ARAP# #PARA# 0 0 93 #ARAP# #PARA# 0 0 94 #ARAP# #PARA# 0 0 95 #ARAP# #PARA# 0 0 96 #ARAP# #PARA# 0 0 97 #ARAP# #PARA# 0 0 98 #ARAP# #PARA# 0 0 99 #ARAP# #PARA# 0 0 100 #ARAP# #PARA# 0 0 101 #ARAP# #PARA# 0 0 102 #ARAP# #PARA# 0 0 103 #ARAP# #PARA# 0 0 104 #ARAP# #PARA# 0 0 105 #ARAP# #PARA# 0 0 106 #ARAP# #PARA# 0 0 107 #ARAP# #PARA# 0 0 108 #ARAP# #PARA# 0 0 109 #ARAP# #PARA# 0 0 110 #ARAP# #PARA# 0 0 111 #ARAP# #PARA# 0 0 112 #ARAP# #PARA# 0 0 113 #ARAP# #PARA# 0 0 114 #ARAP# #PARA# 0 0 115 #ARAP# #PARA# 0 0 116 #ARAP# #PARA# 0 0 117 #ARAP# #PARA# 0 0 118 #ARAP# #PARA# 0 0 119 #ARAP# #PARA# 0 0 120 #ARAP# #PARA# 0 0 121 #ARAP# #PARA# 0 0 122 #ARAP# #PARA# 0 0 123 #ARAP# #PARA# 0 0 124 #ARAP# #PARA# 0 0 125 #ARAP# #PARA# 0 0 126 #ARAP# #PARA# 0 0 127 #ARAP# #PARA# 0 0 128 #ARAP# #PARA# 0 0 129 #ARAP# #PARA# 0 0 130 #ARAP# #PARA# 0 0 131 #ARAP# #PARA# 0 0 132 #ARAP# #PARA# 0 0 133 #ARAP# #PARA# 0 0 134 #ARAP# #PARA# 0 0 135 #ARAP# #PARA# 0 0 136 #ARAP# #PARA# 0 0 137 #ARAP# #PARA# 0 0 138 #ARAP# #PARA# 0 0 139 #ARAP# #PARA# 0 0 140 #ARAP# #PARA# 0 0 141 #ARAP# #PARA# 0 0 142 #ARAP# #PARA# 0 0 143 #ARAP# #PARA# 0 0 144 #ARAP# #PARA# 0 0 145 #ARAP# #PARA# 0 0 146 #ARAP# #PARA# 0 0 147 #ARAP# #PARA# 0 0 148 #ARAP# #PARA# 0 0 149 #ARAP# #PARA# 0 0 150 #ARAP# #PARA# 0 0 151 #ARAP# #PARA# 0 0 152 #ARAP# #PARA# 0 0 153 #ARAP# #PARA# 0 0 154 #ARAP# #PARA# 0 0 155 #ARAP# #PARA# 0 0 156 #ARAP# #PARA# 0 0 157 #ARAP# #PARA# 0 0 158 #ARAP# #PARA# 0 0 159 #ARAP# #PARA# 0 0 160 #ARAP# #PARA# 0 0 161 #ARAP# #PARA# 0 0 162 #ARAP# #PARA# 0 0 163 #ARAP# #PARA# 0 0 164 #ARAP# #PARA# 0 0 165 #ARAP# #PARA# 0 0 166 #ARAP# #PARA# 0 0 167 #ARAP# #PARA# 0 0 168 #ARAP# #PARA# 0 0 169 #ARAP# #PARA# 0 0 170 #ARAP# #PARA# 0 0 171 #ARAP# #PARA# 0 0 172 #ARAP# #PARA# 0 0 173 #ARAP# #PARA# 0 0 174 #ARAP# #PARA# 0 0 175 #ARAP# #PARA# 0 0 176 #ARAP# #PARA# 0 0 177 #ARAP# #PARA# 0 0 178 #ARAP# #PARA# 0 0 179 #ARAP# #PARA# 0 0 180 #ARAP# #PARA# 0 0 181 #ARAP# #PARA# 0 0 182 #ARAP# #PARA# 0 0 183 #ARAP# #PARA# 0 0 184 #ARAP# #PARA# 0 0 185 #ARAP# #PARA# 0 0 186 #ARAP# #PARA# 0 0 187 #ARAP# #PARA# 0 0 188 #ARAP# #PARA# 0 0 189 #ARAP# #PARA# 0 0 190 #ARAP# #PARA# 0 0 191 #ARAP# #PARA# 0 0 192 #ARAP# #PARA# 0 0 193 #ARAP# #PARA# 0 0 194 #ARAP# #PARA# 0 0 195 #ARAP# #PARA# 0 0 196 #ARAP# #PARA# 0 0 197 #ARAP# #PARA# 0 0 198 #ARAP# #PARA# 0 0 199 #ARAP# #PARA# 0 0 200 #ARAP# #PARA# 0 0 201 #ARAP# #PARA# 0 0 202 #ARAP# #PARA# 0 0 203 #ARAP# #PARA# 0 0 204 #ARAP# #PARA# 0 0 205 #ARAP# #PARA# 0 0 206 #ARAP# #PARA# 0 0 207 #ARAP# #PARA# 0 0 208 #ARAP# #PARA# 0 0 209 #ARAP# #PARA# 0 0 210 #ARAP# #PARA# 0 0 211 #ARAP# #PARA# 0 0 212 #ARAP# #PARA# 0 0 213 #ARAP# #PARA# 0 0 214 #ARAP# #PARA# 0 0 215 #ARAP# #PARA# 0 0 216 #ARAP# #PARA# 0 0 217 #ARAP# #PARA# 0 0 218 #ARAP# #PARA# 0 0 219 #ARAP# #PARA# 0 0 220 #ARAP# #PARA# 0 0 221 #ARAP# #PARA# 0 0 222 #ARAP# #PARA# 0 0 223 #ARAP# #PARA# 0 0 224 #ARAP# #PARA# 0 0 225 #ARAP# #PARA# 0 0 226 #ARAP# #PARA# 0 0 227 #ARAP# #PARA# 0 0 228 #ARAP# #PARA# 0 0 229 #ARAP# #PARA# 0 0 230 #ARAP# #PARA# 0 0 231 #ARAP# #PARA# 0 0 232 #ARAP# #PARA# 0 0 233 #ARAP# #PARA# 0 0 234 #ARAP# #PARA# 0 0 235 #ARAP# #PARA# 0 0 236 #ARAP# #PARA# 0 0 237 #ARAP# #PARA# 0 0 238 #ARAP# #PARA# 0 0 239 #ARAP# #PARA# 0 0 240 #ARAP# #PARA# 0 0 241 #ARAP# #PARA# 0 0 242 #ARAP# #PARA# 0 0 243 #ARAP# #PARA# 0 0 244 #ARAP# #PARA# 0 0 245 #ARAP# #PARA# 0 0 246 #ARAP# #PARA# 0 0 247 #ARAP# #PARA# 0 0 248 #ARAP# #PARA# 0 0 249 #ARAP# #PARA# 0 0 250 #ARAP# #PARA# 0 0 251 #ARAP# #PARA# 0 0 252 #ARAP# #PARA# 0 0 253 #ARAP# #PARA# 0 0 254 #ARAP# #PARA# 0 0 255 #ARAP# #PARA# 0 0 256 #ARAP# #PARA# 0 0 257 #ARAP# #PARA# 0 0 258 #ARAP# #PARA# 0 0 259 #ARAP# #PARA# 0 0 260 #ARAP# #PARA# 0 0 261 #ARAP# #PARA# 0 0 262 #ARAP# #PARA# 0 0 263 #ARAP# #PARA# 0 0 264 #ARAP# #PARA# 0 0 265 #ARAP# #PARA# 0 0 266 #ARAP# #PARA# 0 0 267 #ARAP# #PARA# 0 0 268 #ARAP# #PARA# 0 0 269 #ARAP# #PARA# 0 0 270 #ARAP# #PARA# 0 0 271 #ARAP# #PARA# 0 0 272 #ARAP# #PARA# 0 0 273 #ARAP# #PARA# 0 0 274 #ARAP# #PARA# 0 0 275 #ARAP# #PARA# 0 0 276 #ARAP# #PARA# 0 0 277 #ARAP# #PARA# 0 0 278 #ARAP# #PARA# 0 0 279 #ARAP# #PARA# 0 0 280 #ARAP# #PARA# 0 0 281 #ARAP# #PARA# 0 0 282 #ARAP# #PARA# 0 0 283 #ARAP# #PARA# 0 0 284 #ARAP# #PARA# 0 0 285 #ARAP# #PARA# 0 0 286 #ARAP# #PARA# 0 0 287 #ARAP# #PARA# 0 0 288 #ARAP# #PARA# 0 0 289 #ARAP# #PARA# 0 0 290 #ARAP# #PARA# 0 0 291 #ARAP# #PARA# 0 0 292 #ARAP# #PARA# 0 0 293 #ARAP# #PARA# 0 0 294 #ARAP# #PARA# 0 0 295 #ARAP# #PARA# 0 0 296 #ARAP# #PARA# 0 0 297 #ARAP# #PARA# 0 0 298 #ARAP# #PARA# 0 0 299 #ARAP# #PARA# 0 0 300 #ARAP# #PARA# 0 0 301 #ARAP# #PARA# 0 0 302 #ARAP# #PARA# 0 0 303 #ARAP# #PARA# 0 0 304 #ARAP# #PARA# 0 0 305 #ARAP# #PARA# 0 0 306 #ARAP# #PARA# 0 0 307 #ARAP# #PARA# 0 0 308 #ARAP# #PARA# 0 0 309 #ARAP# #PARA# 0 0 310 #ARAP# #PARA# 0 0 311 #ARAP# #PARA# 0 0 312 #ARAP# #PARA# 0 0 313 #ARAP# #PARA# 0 0 314 #ARAP# #PARA# 0 0 315 #ARAP# #PARA# 0 0 316 #ARAP# #PARA# 0 0 317 #ARAP# #PARA# 0 0 318 #ARAP# #PARA# 0 0 319 #ARAP# #PARA# 0 0 320 #ARAP# #PARA# 0 0 321 #ARAP# #PARA# 0 0 322 #ARAP# #PARA# 0 0 323 #ARAP# #PARA# 0 0 324 #ARAP# #PARA# 0 0 325 #ARAP# #PARA# 0 0 326 #ARAP# #PARA# 0 0 327 #ARAP# #PARA# 0 0 328 #ARAP# #PARA# 0 0 329 #ARAP# #PARA# 0 0 330 #ARAP# #PARA# 0 0 331 #ARAP# #PARA# 0 0 332 #ARAP# #PARA# 0 0 333 #ARAP# #PARA# 0 0 334 #ARAP# #PARA# 0 0 335 #ARAP# #PARA# 0 0 336 #ARAP# #PARA# 0 0 337 #ARAP# #PARA# 0 0 338 #ARAP# #PARA# 0 0 339 #ARAP# #PARA# 0 0 340 #ARAP# #PARA# 0 0 341 #ARAP# #PARA# 0 0 342 #ARAP# #PARA# 0 0 343 #ARAP# #PARA# 0 0 344 #ARAP# #PARA# 0 0 345 #ARAP# #PARA# 0 0 346 #ARAP# #PARA# 0 0 347 #ARAP# #PARA# 0 0 348 #ARAP# #PARA# 0 0 349 #ARAP# #PARA# 0 0 350 #ARAP# #PARA# 0 0 351 #ARAP# #PARA# 0 0 352 #ARAP# #PARA# 0 0 353 #ARAP# #PARA# 0 0 354 #ARAP# #PARA# 0 0 355 #ARAP# #PARA# 0 0 356 #ARAP# #PARA# 0 0 357 #ARAP# #PARA# 0 0 358 #ARAP# #PARA# 0 0 359 #ARAP# #PARA# 0 0 360 #ARAP# #PARA# 0 0 361 #ARAP# #PARA# 0 0 362 #ARAP# #PARA# 0 0 363 #ARAP# #PARA# 0 0 364 #ARAP# #PARA# 0 0 365 #ARAP# #PARA# 0 0 366 #ARAP# #PARA# 0 0 367 #ARAP# #PARA# 0 0 368 #ARAP# #PARA# 0 0 369 #ARAP# #PARA# 0 0 370 #ARAP# #PARA# 0 0 371 #ARAP# #PARA# 0 0 372 #ARAP# #PARA# 0 0 373 #ARAP# #PARA# 0 0 374 #ARAP# #PARA# 0 0 375 #ARAP# #PARA# 0 0 376 #ARAP# #PARA# 0 0 377 #ARAP# #PARA# 0 0 378 #ARAP# #PARA# 0 0 379 #ARAP# #PARA# 0 0 380 #ARAP# #PARA# 0 0 381 #ARAP# #PARA# 0 0 382 #ARAP# #PARA# 0 0 383 #ARAP# #PARA# 0 0 384 #ARAP# #PARA# 0 0 385 #ARAP# #PARA# 0 0 386 #ARAP# #PARA# 0 0 387 #ARAP# #PARA# 0 0 388 #ARAP# #PARA# 0 0 389 #ARAP# #PARA# 0 0 390 #ARAP# #PARA# 0 0 391 #ARAP# #PARA# 0 0 392 #ARAP# #PARA# 0 0 393 #ARAP# #PARA# 0 0 394 #ARAP# #PARA# 0 0 395 #ARAP# #PARA# 0 0 396 #ARAP# #PARA# 0 0 397 #ARAP# #PARA# 0 0 398 #ARAP# #PARA# 0 0 399 #ARAP# #PARA# 0 0 400 #ARAP# #PARA# 0 0 401 #ARAP# #PARA# 0 0 402 #ARAP# #PARA# 0 0 403 #ARAP# #PARA# 0 0 404 #ARAP# #PARA# 0 0 405 #ARAP# #PARA# 0 0 406 #ARAP# #PARA# 0 0 407 #ARAP# #PARA# 0 0 408 #ARAP# #PARA# 0 0 409 #ARAP# #PARA# 0 0 410 #ARAP# #PARA# 0 0 411 #ARAP# #PARA# 0 0 412 #ARAP# #PARA# 0 0 413 #ARAP# #PARA# 0 0 414 #ARAP# #PARA# 0 0 415 #ARAP# #PARA# 0 0 416 #ARAP# #PARA# 0 0 417 #ARAP# #PARA# 0 0 418 #ARAP# #PARA# 0 0 419 #ARAP# #PARA# 0 0 420 #ARAP# #PARA# 0 0 421 #ARAP# #PARA# 0 0 422 #ARAP# #PARA# 0 0 423 #ARAP# #PARA# 0 0 424 #ARAP# #PARA# 0 0 425 #ARAP# #PARA# 0 0 426 #ARAP# #PARA# 0 0 427 #ARAP# #PARA# 0 0 428 #ARAP# #PARA# 0 0 429 #ARAP# #PARA# 0 0 430 #ARAP# #PARA# 0 0 431 #ARAP# #PARA# 0 0 432 #ARAP# #PARA# 0 0 433 #ARAP# #PARA# 0 0 434 #ARAP# #PARA# 0 0 435 #ARAP# #PARA# 0 0 436 #ARAP# #PARA# 0 0 437 #ARAP# #PARA# 0 0 438 #ARAP# #PARA# 0 0 439 #ARAP# #PARA# 0 0 440 #ARAP# #PARA# 0 0 441 #ARAP# #PARA# 0 0 442 #ARAP# #PARA# 0 0 443 #ARAP# #PARA# 0 0 444 #ARAP# #PARA# 0 0 445 #ARAP# #PARA# 0 0 446 #ARAP# #PARA# 0 0 447 #ARAP# #PARA# 0 0 448 #ARAP# #PARA# 0 0 449 #ARAP# #PARA# 0 0 450 #ARAP# #PARA# 0 0 451 #ARAP# #PARA# 0 0 452 #ARAP# #PARA# 0 0 453 #ARAP# #PARA# 0 0 454 #ARAP# #PARA# 0 0 455 #ARAP# #PARA# 0 0 456 #ARAP# #PARA# 0 0 457 #ARAP# #PARA# 0 0 458 #ARAP# #PARA# 0 0 459 #ARAP# #PARA# 0 0 460 #ARAP# #PARA# 0 0 461 #ARAP# #PARA# 0 0 462 #ARAP# #PARA# 0 0 463 #ARAP# #PARA# 0 0 464 #ARAP# #PARA# 0 0 465 #ARAP# #PARA# 0 0 466 #ARAP# #PARA# 0 0 467 #ARAP# #PARA# 0 0 468 #ARAP# #PARA# 0 0 469 #ARAP# #PARA# 0 0 470 #ARAP# #PARA# 0 0 471 #ARAP# #PARA# 0 0 472 #ARAP# #PARA# 0 0 473 #ARAP# #PARA# 0 0 474 #ARAP# #PARA# 0 0 475 #ARAP# #PARA# 0 0 476 #ARAP# #PARA# 0 0 477 #ARAP# #PARA# 0 0 478 #ARAP# #PARA# 0 0 479 #ARAP# #PARA# 0 0 480 #ARAP# #PARA# 0 0 481 #ARAP# #PARA# 0 0 482 #ARAP# #PARA# 0 0 483 #ARAP# #PARA# 0 0 484 #ARAP# #PARA# 0 0 485 #ARAP# #PARA# 0 0 486 #ARAP# #PARA# 0 0 487 #ARAP# #PARA# 0 0 488 #ARAP# #PARA# 0 0 489 #ARAP# #PARA# 0 0 490 #ARAP# #PARA# 0 0 491 #ARAP# #PARA# 0 0 492 #ARAP# #PARA# 0 0 493 #ARAP# #PARA# 0 0 494 #ARAP# #PARA# 0 0 495 #ARAP# #PARA# 0 0 496 #ARAP# #PARA# 0 0 497 #ARAP# #PARA# 0 0 498 #ARAP# #PARA# 0 0 499 #ARAP# #PARA# 0 0 500 #ARAP# #PARA# 0 0 501 #ARAP# #PARA# 0 0 502 #ARAP# #PARA# 0 0 503 #ARAP# #PARA# 0 0 504 #ARAP# #PARA# 0 0 505 #ARAP# #PARA# 0 0 506 #ARAP# #PARA# 0 0 507 #ARAP# #PARA# 0 0 508 #ARAP# #PARA# 0 0 509 #ARAP# #PARA# 0 0 510 #ARAP# #PARA# 0 0 511 #ARAP# #PARA# 0 0 512 #ARAP# #PARA# 0 0 513 #ARAP# #PARA# 0 0 514 #ARAP# #PARA# 0 0 515 #ARAP# #PARA# 0 0 516 #ARAP# #PARA# 0 0 517 #ARAP# #PARA# 0 0 518 #ARAP# #PARA# 0 0 519 #ARAP# #PARA# 0 0 520 #ARAP# #PARA# 0 0 521 #ARAP# #PARA# 0 0 522 #ARAP# #PARA# 0 0 523 #ARAP# #PARA# 0 0 524 #ARAP# #PARA# 0 0 525 #ARAP# #PARA# 0 0 526 #ARAP# #PARA# 0 0 527 #ARAP# #PARA# 0 0 528 #ARAP# #PARA# 0 0 529 #ARAP# #PARA# 0 0 530 #ARAP# #PARA# 0 0 531 #ARAP# #PARA# 0 0 532 #ARAP# #PARA# 0 0 533 #ARAP# #PARA# 0 0 534 #ARAP# #PARA# 0 0 535 #ARAP# #PARA# 0 0 536 #ARAP# #PARA# 0 0 537 #ARAP# #PARA# 0 0 538 #ARAP# #PARA# 0 0 539 #ARAP# #PARA# 0 0 540 #ARAP# #PARA# 0 0 541 #ARAP# #PARA# 0 0 542 #ARAP# #PARA# 0 0 543 #ARAP# #PARA# 0 0 544 #ARAP# #PARA# 0 0 545 #ARAP# #PARA# 0 0 546 #ARAP# #PARA# 0 0 547 #ARAP# #PARA# 0 0 548 #ARAP# #PARA# 0 0 549 #ARAP# #PARA# 0 0 550 #ARAP# #PARA# 0 0 551 #ARAP# #PARA# 0 0 552 #ARAP# #PARA# 0 0 553 #ARAP# #PARA# 0 0 554 #ARAP# #PARA# 0 0 555 #ARAP# #PARA# 0 0 556 #ARAP# #PARA# 0 0 557 #ARAP# #PARA# 0 0 558 #ARAP# #PARA# 0 0 559 #ARAP# #PARA# 0 0 560 #ARAP# #PARA# 0 0 561 #ARAP# #PARA# 0 0 562 #ARAP# #PARA# 0 0 563 #ARAP# #PARA# 0 0 564 #ARAP# #PARA# 0 0 565 #ARAP# #PARA# 0 0 566 #ARAP# #PARA# 0 0 567 #ARAP# #PARA# 0 0 568 #ARAP# #PARA# 0 0 569 #ARAP# #PARA# 0 0 570 #ARAP# #PARA# 0 0 571 #ARAP# #PARA# 0 0 572 #ARAP# #PARA# 0 0 573 #ARAP# #PARA# 0 0 574 #ARAP# #PARA# 0 0 575 #ARAP# #PARA# 0 0 576 #ARAP# #PARA# 0 0 577 #ARAP# #PARA# 0 0 578 #ARAP# #PARA# 0 0 579 #ARAP# #PARA# 0 0 580 #ARAP# #PARA# 0 0 581 #ARAP# #PARA# 0 0 582 #ARAP# #PARA# 0 0 583 #ARAP# #PARA# 0 0 584 #ARAP# #PARA# 0 0 585 #ARAP# #PARA# 0 0 586 #ARAP# #PARA# 0 0 587 #ARAP# #PARA# 0 0 588 #ARAP# #PARA# 0 0 589 #ARAP# #PARA# 0 0 590 #ARAP# #PARA# 0 0 591 #ARAP# #PARA# 0 0 592 #ARAP# #PARA# 0 0 593 #ARAP# #PARA# 0 0 594 #ARAP# #PARA# 0 0 595 #ARAP# #PARA# 0 0 596 #ARAP# #PARA# 0 0 597 #ARAP# #PARA# 0 0 598 #ARAP# #PARA# 0 0 599 #ARAP# #PARA# 0 0 600 #ARAP# #PARA# 0 0 601 #ARAP# #PARA# 0 0 602 #ARAP# #PARA# 0 0 603 #ARAP# #PARA# 0 0 604 #ARAP# #PARA# 0 0 605 #ARAP# #PARA# 0 0 606 #ARAP# #PARA# 0 0 607 #ARAP# #PARA# 0 0 608 #ARAP# #PARA# 0 0 609 #ARAP# #PARA# 0 0 610 #ARAP# #PARA# 0 0 611 #ARAP# #PARA# 0 0 612 #ARAP# #PARA# 0 0 613 #ARAP# #PARA# 0 0 614 #ARAP# #PARA# 0 0 615 #ARAP# #PARA# 0 0 616 #ARAP# #PARA# 0 0 617 #ARAP# #PARA# 0 0 618 #ARAP# #PARA# 0 0 619 #ARAP# #PARA# 0 0 620 #ARAP# #PARA# 0 0 621 #ARAP# #PARA# 0 0 622 #ARAP# #PARA# 0 0 623 #ARAP# #PARA# 0 0 624 #ARAP# #PARA# 0 0 625 #ARAP# #PARA# 0 0 626 #ARAP# #PARA# 0 0 627 #ARAP# #PARA# 0 0 628 #ARAP# #PARA# 0 0 629 #ARAP# #PARA# 0 0 630 #ARAP# #PARA# 0 0 631 #ARAP# #PARA# 0 0 632 #ARAP# #PARA# 0 0 633 #ARAP# #PARA# 0 0 634 #ARAP# #PARA# 0 0 635 #ARAP# #PARA# 0 0 636 #ARAP# #PARA# 0 0 637 #ARAP# #PARA# 0 0 638 #ARAP# #PARA# 0 0 639 #ARAP# #PARA# 0 0 640 #ARAP# #PARA# 0 0 641 #ARAP# #PARA# 0 0 642 #ARAP# #PARA# 0 0 643 #ARAP# #PARA# 0 0 644 #ARAP# #PARA# 0 0 645 #ARAP# #PARA# 0 0 646 #ARAP# #PARA# 0 0 647 #ARAP# #PARA# 0 0 648 #ARAP# #PARA# 0 0 649 #ARAP# #PARA# 0 0 650 #ARAP# #PARA# 0 0 651 #ARAP# #PARA# 0 0 652 #ARAP# #PARA# 0 0 653 #ARAP# #PARA# 0 0 654 #ARAP# #PARA# 0 0 655 #ARAP# #PARA# 0 0 656 #ARAP# #PARA# 0 0 657 #ARAP# #PARA# 0 0 658 #ARAP# #PARA# 0 0 659 #ARAP# #PARA# 0 0 660 #ARAP# #PARA# 0 0 661 #ARAP# #PARA# 0 0 662 #ARAP# #PARA# 0 0 663 #ARAP# #PARA# 0 0 664 #ARAP# #PARA# 0 0 665 #ARAP# #PARA# 0 0 666 #ARAP# #PARA# 0 0 667 #ARAP# #PARA# 0 0 668 #ARAP# #PARA# 0 0 669 #ARAP# #PARA# 0 0 670 #ARAP# #PARA# 0 0 671 #ARAP# #PARA# 0 0 672 #ARAP# #PARA# 0 0 673 #ARAP# #PARA# 0 0 674 #ARAP# #PARA# 0 0 675 #ARAP# #PARA# 0 0 676 #ARAP# #PARA# 0 0 677 #ARAP# #PARA# 0 0 678 #ARAP# #PARA# 0 0 679 #ARAP# #PARA# 0 0 680 #ARAP# #PARA# 0 0 681 #ARAP# #PARA# 0 0 682 #ARAP# #PARA# 0 0 683 #ARAP# #PARA# 0 0 684 #ARAP# #PARA# 0 0 685 #ARAP# #PARA# 0 0 686 #ARAP# #PARA# 0 0 687 #ARAP# #PARA# 0 0 688 #ARAP# #PARA# 0 0 689 #ARAP# #PARA# 0 0 690 #ARAP# #PARA# 0 0 691 #ARAP# #PARA# 0 0 692 #ARAP# #PARA# 0 0 693 #ARAP# #PARA# 0 0 694 #ARAP# #PARA# 0 0 695 #ARAP# #PARA# 0 0 696 #ARAP# #PARA# 0 0 697 #ARAP# #PARA# 0 0 698 #ARAP# #PARA# 0 0 699 #ARAP# #PARA# 0 0 700 #ARAP# #PARA# 0 0 701 #ARAP# #PARA# 0 0 702 #ARAP# #PARA# 0 0 703 #ARAP# #PARA# 0 0 704 #ARAP# #PARA# 0 0 705 #ARAP# #PARA# 0 0 706 #ARAP# #PARA# 0 0 707 #ARAP# #PARA# 0 0 708 #ARAP# #PARA# 0 0 709 #ARAP# #PARA# 0 0 710 #ARAP# #PARA# 0 0 711 #ARAP# #PARA# 0 0 712 #ARAP# #PARA# 0 0 713 #ARAP# #PARA# 0 0 714 #ARAP# #PARA# 0 0 715 #ARAP# #PARA# 0 0 716 #ARAP# #PARA# 0 0 717 #ARAP# #PARA# 0 0 718 #ARAP# #PARA# 0 0 719 #ARAP# #PARA# 0 0 720 #ARAP# #PARA# 0 0 721 #ARAP# #PARA# 0 0 722 #ARAP# #PARA# 0 0 723 #ARAP# #PARA# 0 0 724 #ARAP# #PARA# 0 0 725 #ARAP# #PARA# 0 0 726 #ARAP# #PARA# 0 0 727 #ARAP# #PARA# 0 0 728 #ARAP# #PARA# 0 0 729 #ARAP# #PARA# 0 0 730 #ARAP# #PARA# 0 0 731 #ARAP# #PARA# 0 0 732 #ARAP# #PARA# 0 0 733 #ARAP# #PARA# 0 0 734 #ARAP# #PARA# 0 0 735 #ARAP# #PARA# 0 0 736 #ARAP# #PARA# 0 0 737 #ARAP# #PARA# 0 0 738 #ARAP# #PARA# 0 0 739 #ARAP# #PARA# 0 0 740 #ARAP# #PARA# 0 0 741 #ARAP# #PARA# 0 0 742 #ARAP# #PARA# 0 0 743 #ARAP# #PARA# 0 0 744 #ARAP# #PARA# 0 0 745 #ARAP# #PARA# 0 0 746 #ARAP# #PARA# 0 0 747 #ARAP# #PARA# 0 0 748 #ARAP# #PARA# 0 0 749 #ARAP# #PARA# 0 0 750 #ARAP# #PARA# 0 0 751 #ARAP# #PARA# 0 0 752 #ARAP# #PARA# 0 0 753 #ARAP# #PARA# 0 0 754 #ARAP# #PARA# 0 0 755 #ARAP# #PARA# 0 0 756 #ARAP# #PARA# 0 0 757 #ARAP# #PARA# 0 0 758 #ARAP# #PARA# 0 0 759 #ARAP# #PARA# 0 0 760 #ARAP# #PARA# 0 0 761 #ARAP# #PARA# 0 0 762 #ARAP# #PARA# 0 0 763 #ARAP# #PARA# 0 0 764 #ARAP# #PARA# 0 0 765 #ARAP# #PARA# 0 0 766 #ARAP# #PARA# 0 0 767 #ARAP# #PARA# 0 0 768 #ARAP# #PARA# 0 0 769 #ARAP# #PARA# 0 0 770 #ARAP# ams-2.0.1/demos/example_barberpole_phaser_up_down.ams0000664000076400007640000001765510075726624020012 00000000000000Module 6 1 399 4 2 blvco Saw-VCO ColorP 0 0 1 4 250 200 50 180 180 180 FSlider 1 0 0 0 0 16384 1 FSlider 1 1 0 0 0 65536 1 FSlider 1 2 0 0 0 65536 1 FSlider 1 3 12055 0 0 16384 1 LSlider 1 0 -1 1 Module 43 3 38 278 0 0 FSlider 3 0 -34252 1 -75451 49082 1 FSlider 3 1 26369 1 -75451 26369 1 FSlider 3 2 0 1 -75451 26369 1 ComboBox 3 0 2 1 Module 42 4 201 52 2 0 ColorP 0 1 4 6 250 200 50 180 180 180 FSlider 4 0 -79027 1 -150902 -40582 1 FSlider 4 1 -75451 1 -75451 0 1 FSlider 4 2 0 1 -75451 37725 1 FSlider 4 3 -75684 1 -150902 -40582 1 FSlider 4 4 -75451 1 -75451 0 1 FSlider 4 5 37725 1 -75451 37725 1 ComboBox 4 0 0 1 ComboBox 4 1 0 1 CheckBox 4 0 0 1 Module 35 6 11 18 0 0 FSlider 6 0 0 0 -16384 16384 1 ISlider 6 0 0 1 ISlider 6 1 0 1 ISlider 6 2 0 1 ISlider 6 3 0 1 ISlider 6 4 0 1 Module 2 7 1075 41 0 0 ColorP 0 0 7 32 250 200 50 180 180 180 ColorP 2 0 7 16 250 200 50 180 180 180 FSlider 7 0 0 0 0 16384 1 FSlider 7 1 0 0 0 16384 1 FSlider 7 2 16384 0 0 32768 1 FSlider 7 3 16384 0 0 32768 1 FSlider 7 4 16384 0 0 32768 1 Module 6 8 1232 9 0 cs_phaser Phaser1 ColorP 0 0 8 7 250 200 50 180 180 180 ColorP 1 0 8 3 250 200 50 180 180 180 FSlider 8 0 0 0 -655360 163840 1 FSlider 8 1 -38637 0 -98304 98304 1 FSlider 8 2 0 0 0 163840 1 FSlider 8 3 0 0 0 163840 1 FSlider 8 4 10965 0 -16384 16384 1 FSlider 8 5 8070 0 -16384 16384 1 LSlider 8 0 12 1 FSMIDI 8 4 13 0 0 LSMIDI 8 0 10 0 1 Module 6 9 1232 132 0 cs_phaser Phaser1 ColorP 0 0 9 7 250 200 50 180 180 180 ColorP 1 1 9 3 250 200 50 180 180 180 FSlider 9 0 0 0 -655360 163840 1 FSlider 9 1 -38637 0 -98304 98304 1 FSlider 9 2 0 0 0 163840 1 FSlider 9 3 0 0 0 163840 1 FSlider 9 4 10965 0 -16384 16384 1 FSlider 9 5 8233 0 -16384 16384 1 LSlider 9 0 12 1 FSMIDI 9 4 13 0 0 LSMIDI 9 0 10 0 1 Module 6 10 1231 255 0 cs_phaser Phaser1 ColorP 0 0 10 7 250 200 50 180 180 180 ColorP 1 2 10 3 250 200 50 180 180 180 FSlider 10 0 0 0 -655360 163840 1 FSlider 10 1 -38637 0 -98304 98304 1 FSlider 10 2 0 0 0 163840 1 FSlider 10 3 0 0 0 163840 1 FSlider 10 4 10965 0 -16384 16384 1 FSlider 10 5 8233 0 -16384 16384 1 LSlider 10 0 12 1 FSMIDI 10 4 13 0 0 LSMIDI 10 0 10 0 1 Module 6 11 1232 379 0 cs_phaser Phaser1 ColorP 0 0 11 7 250 200 50 180 180 180 ColorP 1 3 11 3 250 200 50 180 180 180 FSlider 11 0 0 0 -655360 163840 1 FSlider 11 1 -38637 0 -98304 98304 1 FSlider 11 2 0 0 0 163840 1 FSlider 11 3 0 0 0 163840 1 FSlider 11 4 10965 0 -16384 16384 1 FSlider 11 5 8233 0 -16384 16384 1 LSlider 11 0 12 1 FSMIDI 11 4 13 0 0 LSMIDI 11 0 10 0 1 Module 6 12 1232 503 0 cs_phaser Phaser1 ColorP 0 0 12 7 250 200 50 180 180 180 ColorP 1 4 12 3 250 200 50 180 180 180 FSlider 12 0 0 0 -655360 163840 1 FSlider 12 1 -38637 0 -98304 98304 1 FSlider 12 2 0 0 0 163840 1 FSlider 12 3 0 0 0 163840 1 FSlider 12 4 10965 0 -16384 16384 1 FSlider 12 5 8233 0 -16384 16384 1 LSlider 12 0 12 1 FSMIDI 12 4 13 0 0 LSMIDI 12 0 10 0 1 Module 6 13 1232 626 0 cs_phaser Phaser1 ColorP 0 0 13 7 250 200 50 180 180 180 ColorP 1 5 13 3 250 200 50 180 180 180 FSlider 13 0 0 0 -655360 163840 1 FSlider 13 1 -38637 0 -98304 98304 1 FSlider 13 2 0 0 0 163840 1 FSlider 13 3 0 0 0 163840 1 FSlider 13 4 10965 0 -16384 16384 1 FSlider 13 5 8233 0 -16384 16384 1 LSlider 13 0 12 1 FSMIDI 13 4 13 0 0 LSMIDI 13 0 10 0 1 Module 6 14 1232 750 0 cs_phaser Phaser1 ColorP 0 0 14 7 250 200 50 180 180 180 ColorP 1 6 14 3 250 200 50 180 180 180 FSlider 14 0 0 0 -655360 163840 1 FSlider 14 1 -38637 0 -98304 98304 1 FSlider 14 2 0 0 0 163840 1 FSlider 14 3 0 0 0 163840 1 FSlider 14 4 10965 0 -16384 16384 1 FSlider 14 5 8233 0 -16384 16384 1 LSlider 14 0 12 1 FSMIDI 14 4 13 0 0 LSMIDI 14 0 10 0 1 Module 6 15 1232 873 0 cs_phaser Phaser1 ColorP 0 0 15 7 250 200 50 180 180 180 ColorP 1 7 15 3 250 200 50 180 180 180 FSlider 15 0 0 0 -655360 163840 1 FSlider 15 1 -38637 0 -98304 98304 1 FSlider 15 2 0 0 0 163840 1 FSlider 15 3 0 0 0 163840 1 FSlider 15 4 10965 0 -16384 16384 1 FSlider 15 5 8233 0 -16384 16384 1 LSlider 15 0 12 1 FSMIDI 15 4 13 0 0 LSMIDI 15 0 10 0 1 Module 6 16 813 137 2 mvclpf24 Mvclpf-4 ColorP 0 0 16 18 250 200 50 180 180 180 ColorP 1 1 16 4 250 200 50 180 180 180 ColorP 2 0 16 32 250 200 50 180 180 180 FSlider 16 0 0 0 -983040 163840 1 FSlider 16 1 29834 0 -98304 98304 1 FSlider 16 2 89664 0 0 163840 1 FSlider 16 3 0 0 0 16384 1 FSlider 16 4 0 0 0 16384 1 FSlider 16 5 -8559 0 -245760 245760 1 LSlider 16 0 4 1 Module 6 17 399 134 2 blvco Saw-VCO ColorP 0 1 17 4 250 200 50 180 180 180 FSlider 17 0 73 0 0 16384 1 FSlider 17 1 0 0 0 65536 1 FSlider 17 2 0 0 0 65536 1 FSlider 17 3 9847 0 0 16384 1 LSlider 17 0 0 1 Module 8 18 673 55 2 0 ColorP 0 0 18 1 250 200 50 180 180 180 ColorP 1 0 18 17 250 200 50 180 180 180 FSlider 18 0 16469 0 0 32768 1 FSlider 18 1 16384 0 0 32768 1 FSlider 18 2 16384 0 0 32768 1 Module 7 20 1954 537 0 0 ColorP 0 0 20 33 250 200 50 180 180 180 ColorP 1 0 20 34 250 200 50 180 180 180 FSlider 20 0 8192 0 0 16384 1 FSlider 20 1 8192 0 0 16384 1 FSlider 20 2 8192 0 0 16384 1 ComboBox 20 0 0 1 Module 2 21 1556 4 0 0 ColorP 0 8 21 3 250 200 50 180 180 180 ColorP 2 0 21 8 250 200 50 180 180 180 FSlider 21 0 0 0 0 16384 1 FSlider 21 1 0 0 0 16384 1 FSlider 21 2 16384 0 0 32768 1 FSlider 21 3 16384 0 0 32768 1 FSlider 21 4 16384 0 0 32768 1 Module 2 22 1557 150 0 0 ColorP 0 9 22 3 250 200 50 180 180 180 ColorP 2 0 22 9 250 200 50 180 180 180 FSlider 22 0 0 0 0 16384 1 FSlider 22 1 0 0 0 16384 1 FSlider 22 2 16384 0 0 32768 1 FSlider 22 3 16384 0 0 32768 1 FSlider 22 4 16384 0 0 32768 1 Module 2 23 1558 294 0 0 ColorP 0 10 23 3 250 200 50 180 180 180 ColorP 2 0 23 10 250 200 50 180 180 180 FSlider 23 0 0 0 0 16384 1 FSlider 23 1 0 0 0 16384 1 FSlider 23 2 16384 0 0 32768 1 FSlider 23 3 16384 0 0 32768 1 FSlider 23 4 16384 0 0 32768 1 Module 2 24 1560 438 0 0 ColorP 0 11 24 3 250 200 50 180 180 180 ColorP 2 0 24 11 250 200 50 180 180 180 FSlider 24 0 0 0 0 16384 1 FSlider 24 1 0 0 0 16384 1 FSlider 24 2 16384 0 0 32768 1 FSlider 24 3 16384 0 0 32768 1 FSlider 24 4 16384 0 0 32768 1 Module 2 25 1559 583 0 0 ColorP 0 12 25 3 250 200 50 180 180 180 ColorP 2 0 25 12 250 200 50 180 180 180 FSlider 25 0 0 0 0 16384 1 FSlider 25 1 0 0 0 16384 1 FSlider 25 2 16384 0 0 32768 1 FSlider 25 3 16384 0 0 32768 1 FSlider 25 4 16384 0 0 32768 1 Module 2 26 1557 731 0 0 ColorP 0 13 26 3 250 200 50 180 180 180 ColorP 2 0 26 13 250 200 50 180 180 180 FSlider 26 0 0 0 0 16384 1 FSlider 26 1 0 0 0 16384 1 FSlider 26 2 16384 0 0 32768 1 FSlider 26 3 16384 0 0 32768 1 FSlider 26 4 16384 0 0 32768 1 Module 2 27 1557 885 0 0 ColorP 0 14 27 3 250 200 50 180 180 180 ColorP 2 0 27 14 250 200 50 180 180 180 FSlider 27 0 0 0 0 16384 1 FSlider 27 1 0 0 0 16384 1 FSlider 27 2 16384 0 0 32768 1 FSlider 27 3 16384 0 0 32768 1 FSlider 27 4 16384 0 0 32768 1 Module 2 28 1556 1035 0 0 ColorP 0 15 28 3 250 200 50 180 180 180 ColorP 2 0 28 15 250 200 50 180 180 180 FSlider 28 0 0 0 0 16384 1 FSlider 28 1 0 0 0 16384 1 FSlider 28 2 16384 0 0 32768 1 FSlider 28 3 16384 0 0 32768 1 FSlider 28 4 16384 0 0 32768 1 Module 39 32 400 264 0 0 ColorP 0 0 32 6 250 200 50 180 180 180 ColorP 1 3 32 6 250 200 50 180 180 180 FSlider 32 0 -118973 0 -131072 131072 1 FSlider 32 1 79988 0 -131072 131072 1 FSlider 32 2 0 0 0 16384 1 FSlider 32 3 8192 0 0 16384 1 FSlider 32 4 0 0 -131072 131072 1 FSlider 32 5 16384 0 -131072 131072 1 FSlider 32 6 16384 0 -131072 131072 1 FSlider 32 7 16384 0 0 16384 1 FSlider 32 8 16384 0 0 16384 1 FSlider 32 9 16384 0 -131072 131072 1 Module 8 33 1799 400 4 0 ColorP 0 0 33 21 250 200 50 180 180 180 ColorP 1 0 33 22 250 200 50 180 180 180 ColorP 2 0 33 23 250 200 50 180 180 180 ColorP 3 0 33 24 250 200 50 180 180 180 FSlider 33 0 5433 0 0 32768 1 FSlider 33 1 16384 0 0 32768 1 FSlider 33 2 16384 0 0 32768 1 FSlider 33 3 16384 0 0 32768 1 FSlider 33 4 16384 0 0 32768 1 Module 8 34 1799 547 4 0 ColorP 0 0 34 25 250 200 50 180 180 180 ColorP 1 0 34 26 250 200 50 180 180 180 ColorP 2 0 34 27 250 200 50 180 180 180 ColorP 3 0 34 28 250 200 50 180 180 180 FSlider 34 0 5433 0 0 32768 1 FSlider 34 1 16384 0 0 32768 1 FSlider 34 2 16384 0 0 32768 1 FSlider 34 3 16384 0 0 32768 1 FSlider 34 4 16384 0 0 32768 1 ams-2.0.1/demos/example_vcswitch.ams0000664000076400007640000000225007770061731014412 00000000000000Module 1 1 65 83 0 0 FSlider 1 0 0 0 0 16384 1 FSlider 1 1 8192 0 1638 14745 1 FSlider 1 2 0 0 0 16384 1 FSlider 1 3 0 0 0 102940 1 FSlider 1 4 0 0 0 163840 1 FSlider 1 5 0 0 0 163840 1 ISlider 1 0 3 1 ISlider 1 1 1 1 ISlider 1 2 1 1 ComboBox 1 0 0 1 Module 26 2 313 110 0 0 Port 0 1 2 5 Port 1 0 2 1 Port 2 3 2 1 FSlider 2 0 8192 0 0 163840 1 Module 24 3 518 51 0 0 Port 0 0 3 2 Port 1 1 3 2 FSlider 3 0 418607 0 163840 16384000 1 FSlider 3 1 45798 0 1638 163840 1 FSlider 3 2 0 0 -16384 16384 1 ComboBox 3 0 1 1 ComboBox 3 1 0 1 Module 24 4 518 175 0 0 Port 0 2 4 2 FSlider 4 0 418607 0 163840 16384000 1 FSlider 4 1 16384 0 1638 163840 1 FSlider 4 2 0 0 -16384 16384 1 ComboBox 4 0 1 1 ComboBox 4 1 0 1 Module 3 5 182 17 0 0 FSlider 5 0 -11336 1 -75451 75451 1 FSlider 5 1 0 0 0 102940 1 Module 7 7 565 309 0 0 FSlider 7 0 8192 0 0 16384 1 FSlider 7 1 8192 0 0 16384 1 FSlider 7 2 8192 0 0 16384 1 ComboBox 7 0 1 1 Comment 0 0 276 279 200 170 #PARA# 0 0 0 This patch demonstrates the voltage controlled switch. It's a silent patch where the scopes show how it works. #ARAP# #PARA# 0 0 1 The PCM Out is just there to stabilize timing. #ARAP# #PARA# 0 0 2 #ARAP# #PARA# 0 0 3 #ARAP# ams-2.0.1/demos/chorus_drops2.ams0000664000076400007640000000504510047700633013636 00000000000000Module 1 1 185 44 0 0 ColorP 1 1 1 4 250 200 50 180 180 180 FSlider 1 0 0 0 0 16384 1 FSlider 1 1 8192 0 1638 14745 1 FSlider 1 2 0 0 0 16384 1 FSlider 1 3 0 0 0 102940 1 FSlider 1 4 0 0 0 163840 1 FSlider 1 5 0 0 0 163840 1 ISlider 1 0 1 1 ISlider 1 1 1 1 ISlider 1 2 1 1 ComboBox 1 0 0 1 Module 7 2 614 334 0 0 ColorP 0 0 2 5 250 200 50 180 180 180 ColorP 1 1 2 5 250 200 50 180 180 180 FSlider 2 0 5885 0 0 16384 1 FSlider 2 1 8192 0 0 16384 1 FSlider 2 2 8192 0 0 16384 1 ComboBox 2 0 1 1 Module 6 3 437 40 0 cs_chorus Chorus2 ColorP 0 0 3 7 250 200 50 180 180 180 FSlider 3 0 275853 0 0 491520 1 FSlider 3 1 17997 1 -95176 17999 1 FSlider 3 2 11703 0 0 163840 1 FSlider 3 3 35125 1 -75451 37725 1 FSlider 3 4 1881 0 0 49152 1 Module 10 4 7 58 0 0 FSlider 4 0 0 0 -16384 16384 1 ISlider 4 0 36 1 ComboBox 4 0 0 1 Module 6 5 294 386 0 gverb_1216 gverb ColorP 0 0 5 9 250 200 50 180 180 180 FSlider 5 0 1978410 0 16384 4915200 1 FSlider 5 1 106934 0 1638 5898240 1 FSlider 5 2 0 0 0 16384 1 FSlider 5 3 9279 0 0 16384 1 FSlider 5 4 0 0 -1146880 0 1 FSlider 5 5 -140434 0 -1146880 0 1 FSlider 5 6 -157989 0 -1146880 0 1 Module 11 6 68 346 0 0 ColorP 0 0 6 4 250 200 50 180 180 180 FSlider 6 0 0 0 0 16384 1 FSlider 6 1 819 0 0 16384 1 FSlider 6 2 327 0 0 16384 1 FSlider 6 3 1638 0 0 16384 1 FSlider 6 4 11468 0 0 16384 1 FSlider 6 5 819 0 0 16384 1 FSlider 6 6 16384 0 1638 163840 1 Module 2 7 307 36 1 0 ColorP 0 0 7 6 250 200 50 180 180 180 ColorP 2 3 7 1 250 200 50 180 180 180 FSlider 7 0 -113175 1 -113176 37725 1 FSlider 7 1 -113175 1 -113176 37725 1 FSlider 7 2 0 1 -113176 11356 1 FSlider 7 3 0 1 -113176 11356 1 FSlider 7 4 0 1 -113176 11356 1 Module 6 9 302 236 0 mvclpf24 Mvclpf-3 ColorP 0 0 9 3 250 200 50 180 180 180 ColorP 1 1 9 4 250 200 50 180 180 180 ColorP 2 0 9 10 250 200 50 180 180 180 ColorP 3 1 9 10 250 200 50 180 180 180 FSlider 9 0 63081 0 -983040 163840 1 FSlider 9 1 -65536 0 -81920 81920 1 FSlider 9 2 33022 0 0 163840 1 FSlider 9 3 12658 0 0 16384 1 FSlider 9 4 7874 0 0 16384 1 FSlider 9 5 158125 0 -245760 245760 1 Module 22 10 148 294 0 0 ColorP 0 0 10 4 250 200 50 180 180 180 ColorP 1 3 10 4 250 200 50 180 180 180 FSlider 10 0 4788 0 1638 163840 1 FSlider 10 1 0 0 0 16384 1 FSlider 10 2 0 0 0 16384 1 FSlider 10 3 53 0 0 16384 1 FSlider 10 4 8192 0 0 16384 1 FSlider 10 5 3102 0 0 16384 1 FSlider 10 6 0 0 0 16384 1 FSlider 10 7 80 0 0 16384 1 FSlider 10 8 14745 0 0 16384 1 FSlider 10 9 1638 0 0 16384 1 FSlider 10 10 2810 0 0 16384 1 FSlider 10 11 8192 0 0 16384 1 FSlider 10 12 819 0 0 16384 1 FSlider 10 13 3276 0 0 16384 1 FSlider 10 14 819 0 0 16384 1 ams-2.0.1/demos/example_ams_demo_scala.ams0000664000076400007640000000416407770061731015515 00000000000000Module 7 1 1019 238 0 0 Port 0 0 1 16 Port 1 1 1 16 FSlider 1 0 8192 0 0 16384 1 FSlider 1 1 8192 0 0 16384 1 FSlider 1 2 8192 0 0 16384 1 ComboBox 1 0 1 1 Module 11 3 318 33 0 0 Port 0 1 3 23 Port 1 1 3 23 FSlider 3 0 0 0 0 16384 1 FSlider 3 1 -106718 1 -113176 0 1 FSlider 3 2 0 0 0 16384 1 FSlider 3 3 3887 0 0 16384 1 FSlider 3 4 9742 0 0 16384 1 FSlider 3 5 6298 0 0 16384 1 FSlider 3 6 12354 0 1638 163840 1 Module 2 4 612 130 0 0 Port 0 0 4 3 Port 2 0 4 10 FSlider 4 0 7042 0 0 163840 1 FSlider 4 1 0 0 0 163840 1 FSlider 4 2 8192 0 0 16384 1 FSlider 4 3 8192 0 0 16384 1 FSlider 4 4 8192 0 0 16384 1 Module 1 5 386 177 0 0 Port 1 0 5 23 FSlider 5 0 0 0 0 16384 1 FSlider 5 1 1638 0 0 163840 1 FSlider 5 2 0 0 0 163840 1 FSlider 5 3 8192 0 1638 14745 1 FSlider 5 4 0 0 0 16384 1 FSlider 5 5 0 0 0 102940 1 ISlider 5 0 3 1 ISlider 5 1 1 1 ISlider 5 2 1 1 ComboBox 5 0 0 1 Module 9 10 498 228 0 0 Port 0 2 10 5 Port 1 0 10 13 Port 2 0 10 18 FSlider 10 0 43297 0 0 163840 1 FSlider 10 1 111687 0 0 163840 1 FSlider 10 2 48709 0 0 163840 1 FSlider 10 3 0 0 0 163840 1 FSlider 10 4 13107 0 163 16384 1 FSlider 10 5 0 0 0 16384 1 ComboBox 10 0 6 1 Module 14 12 14 148 0 0 FSlider 12 0 27228 0 0 163840 1 FSlider 12 1 6572 0 0 16384 1 Module 15 13 278 272 0 0 Port 0 0 13 23 FSlider 13 0 8192 0 0 163840 1 FSlider 13 1 8192 0 0 163840 1 Module 6 15 715 206 0 cmt Canyon Delay Port 0 0 15 4 Port 1 0 15 4 FSlider 15 0 9273 0 163 16220 1 FSlider 15 1 12347 0 -16384 16384 1 FSlider 15 2 6788 0 163 16220 1 FSlider 15 3 13661 0 -16384 16384 1 FSlider 15 4 81920000 0 16384 81920000 1 Module 6 16 868 232 0 cmt Freeverb (Version 3) Port 0 0 16 15 Port 1 1 16 15 FSlider 16 0 8215 0 0 16384 1 FSlider 16 1 -83988 1 -113176 0 1 FSlider 16 2 -9404 1 -113176 0 1 FSlider 16 3 0 1 -113176 0 1 FSlider 16 4 16384 0 0 16384 1 CheckBox 16 0 0 1 Module 15 18 381 411 0 0 Port 0 2 18 19 FSlider 18 0 98116 0 0 163840 1 FSlider 18 1 70418 0 0 163840 1 Module 14 19 240 422 0 0 FSlider 19 0 133325 0 0 163840 1 FSlider 19 1 16384 0 0 16384 1 Module 16 21 71 302 0 0 Port 0 2 21 12 ComboBox 21 0 0 1 Module 31 23 170 90 xylophone.scl Port 0 1 23 12 Port 1 1 23 21 ISlider 23 0 0 1 ams-2.0.1/demos/example_phaser.ams0000664000076400007640000000275007770061731014047 00000000000000Module 7 1 573 28 0 0 Port 0 0 1 4 Port 1 0 1 4 FSlider 1 0 13208 0 0 16384 1 FSlider 1 1 8192 0 0 16384 1 FSlider 1 2 8192 0 0 16384 1 ComboBox 1 0 1 1 Module 11 3 183 28 0 0 Port 0 0 3 7 Port 1 3 3 7 FSlider 3 0 0 0 0 16384 1 FSlider 3 1 -72732 1 -113176 0 1 FSlider 3 2 98 0 0 16384 1 FSlider 3 3 12448 0 0 16384 1 FSlider 3 4 4969 0 0 16384 1 FSlider 3 5 7380 0 0 16384 1 FSlider 3 6 16384 0 1638 163840 1 Module 2 4 380 26 0 0 Port 0 0 4 3 Port 2 0 4 9 FSlider 4 0 0 0 0 163840 1 FSlider 4 1 0 0 0 163840 1 FSlider 4 2 8192 0 0 16384 1 FSlider 4 3 8192 0 0 16384 1 FSlider 4 4 8192 0 0 16384 1 Module 1 5 235 192 0 0 Port 1 1 5 7 FSlider 5 0 0 0 0 16384 1 FSlider 5 1 1638 0 0 163840 1 FSlider 5 2 0 0 0 163840 1 FSlider 5 3 8192 0 1638 14745 1 FSlider 5 4 0 0 0 163840 1 FSlider 5 5 0 0 0 163840 1 ISlider 5 0 0 1 ISlider 5 1 1 1 ISlider 5 2 1 1 ComboBox 5 0 0 1 Module 10 7 24 28 0 0 FSlider 7 0 129 0 -16384 16384 1 FSMIDI 7 0 13 0 0 ISlider 7 0 24 1 ComboBox 7 0 0 1 Module 6 9 451 235 0 cs_phaser Phaser1 Port 0 2 9 5 Port 1 1 9 3 FSlider 9 0 -26331 0 -655360 163840 1 FSlider 9 1 17416 0 -81920 81920 1 FSMIDI 9 1 10 0 1 FSlider 9 2 0 0 0 163840 1 FSlider 9 3 0 0 0 163840 1 FSlider 9 4 15548 0 -16384 16384 1 FSlider 9 5 16384 0 -16384 16384 1 LSlider 9 0 30 1 Comment 0 0 37 303 351 180 #PARA# 0 0 0 This patch demonstrates the phaser plugin by Fons Adriaensen. Use the ModWheel to modify the phaser frequency. Modifying the "Sections" parameter while playing a note creates a funny sound. #ARAP# ams-2.0.1/demos/example_vcEnvelope_lin.ams0000664000076400007640000000256707770061731015543 00000000000000Module 34 1 493 33 0 0 Port 0 0 1 3 Port 1 3 1 3 Port 2 0 1 9 Port 3 0 1 12 FSlider 1 0 16384 0 0 16384 1 FSlider 1 1 16384 0 0 16384 1 FSlider 1 2 3390 0 0 16384 1 FSlider 1 3 1638 0 0 16384 1 ComboBox 1 0 1 1 ComboBox 1 1 0 1 Module 7 2 639 342 0 0 Port 0 0 2 4 Port 1 0 2 4 FSlider 2 0 8192 0 0 16384 1 FSlider 2 1 8192 0 0 16384 1 FSlider 2 2 8192 0 0 16384 1 ComboBox 2 0 1 1 Module 10 3 7 15 0 0 FSlider 3 0 0 0 -16384 16384 1 ISlider 3 0 24 1 ComboBox 3 0 0 1 Module 2 4 641 143 0 0 Port 0 0 4 1 Port 2 0 4 6 FSlider 4 0 0 0 0 163840 1 FSlider 4 1 0 0 0 163840 1 FSlider 4 2 16384 0 0 32768 1 FSlider 4 3 16384 0 0 32768 1 FSlider 4 4 16384 0 0 32768 1 Module 1 5 115 253 0 0 Port 1 1 5 3 FSlider 5 0 0 0 0 16384 1 FSlider 5 1 8192 0 1638 14745 1 FSlider 5 2 0 0 0 16384 1 FSlider 5 3 0 0 0 102940 1 FSlider 5 4 0 0 0 163840 1 FSlider 5 5 0 0 0 163840 1 ISlider 5 0 2 1 ISlider 5 1 1 1 ISlider 5 2 1 1 ComboBox 5 0 0 1 Module 6 6 380 339 0 mvclpf24 Mvclpf-3 Port 0 2 6 5 Port 1 1 6 3 Port 2 0 6 1 FSlider 6 0 0 0 -983040 163840 1 FSlider 6 1 -71831 0 -81920 81920 1 FSlider 6 2 119046 0 0 163840 1 FSlider 6 3 8273 0 0 16384 1 FSlider 6 4 0 0 0 16384 1 FSlider 6 5 0 0 -245760 245760 1 Module 13 9 233 97 0 0 Port 0 2 9 3 Module 13 12 367 185 0 0 Port 0 0 12 13 Module 8 13 234 231 2 0 Port 0 1 13 3 FSlider 13 0 4681 0 0 32768 1 FSlider 13 1 16384 0 0 32768 1 FSlider 13 2 16384 0 0 32768 1 ams-2.0.1/demos/example_vcdoubledecay.ams0000664000076400007640000000356110047700633015367 00000000000000Module 7 1 637 93 0 0 ColorP 0 0 1 2 250 200 50 180 180 180 ColorP 1 1 1 2 250 200 50 180 180 180 FSlider 1 0 8192 0 0 16384 1 FSlider 1 1 8192 0 0 16384 1 FSlider 1 2 8192 0 0 16384 1 ComboBox 1 0 0 1 Module 37 2 480 53 0 0 ColorP 0 0 2 6 250 200 50 180 180 180 FSlider 2 0 0 0 -16384 16384 1 FSlider 2 1 32768 0 0 32768 1 ComboBox 2 0 4 1 Module 6 4 16 350 2 blvco Saw-VCO ColorP 0 1 4 7 250 200 50 180 180 180 FSlider 4 0 0 0 0 16384 1 FSlider 4 1 0 0 0 65536 1 FSlider 4 2 0 0 0 65536 1 FSlider 4 3 16384 0 0 16384 1 LSlider 4 0 -3 1 Module 6 5 387 322 2 mvclpf24 Mvclpf-4 ColorP 0 0 5 4 250 200 50 180 180 180 ColorP 1 1 5 7 250 200 50 180 180 180 ColorP 2 0 5 11 250 200 50 180 180 180 FSlider 5 0 0 0 -983040 163840 1 FSlider 5 1 -81920 0 -81920 81920 1 FSlider 5 2 163840 0 0 163840 1 FSlider 5 3 0 0 0 16384 1 FSlider 5 4 0 0 0 16384 1 FSlider 5 5 205907 0 -245760 245760 1 LSlider 5 0 4 1 FSMIDI 5 1 10 0 1 Module 2 6 361 53 0 0 ColorP 0 0 6 9 250 200 50 180 180 180 ColorP 2 0 6 5 250 200 50 180 180 180 FSlider 6 0 0 0 0 16384 1 FSlider 6 1 0 0 0 16384 1 FSlider 6 2 16384 0 0 32768 1 FSlider 6 3 16384 0 0 32768 1 FSlider 6 4 16384 0 0 32768 1 Module 35 7 6 50 0 0 FSlider 7 0 0 0 -16384 16384 1 ISlider 7 0 24 1 ISlider 7 1 0 1 ISlider 7 2 0 1 ISlider 7 3 0 1 ISlider 7 4 0 1 Module 39 9 181 32 0 0 ColorP 0 0 9 7 250 200 50 180 180 180 ColorP 1 3 9 7 250 200 50 180 180 180 ColorP 3 2 9 7 250 200 50 180 180 180 FSlider 9 0 -131072 0 -131072 131072 1 FSlider 9 1 -37984 0 -131072 131072 1 FSlider 9 2 11034 0 0 16384 1 FSlider 9 3 1204 0 0 16384 1 FSlider 9 4 -17655 0 -131072 131072 1 FSlider 9 5 16384 0 -131072 131072 1 FSlider 9 6 23762 0 -131072 131072 1 FSlider 9 7 16384 0 0 16384 1 FSlider 9 8 16384 0 0 16384 1 FSlider 9 9 23762 0 -131072 131072 1 Module 5 11 217 245 0 0 ColorP 0 2 11 7 250 200 50 180 180 180 ColorP 1 0 11 9 250 200 50 180 180 180 FSlider 11 0 12136 0 0 81920 1 ams-2.0.1/demos/sequence03b.ams0000664000076400007640000001014710047700633013156 00000000000000Module 7 1 1123 165 0 0 Port 0 0 1 13 Port 1 1 1 13 FSlider 1 0 6385 0 0 16384 1 FSlider 1 1 8192 0 0 16384 1 FSlider 1 2 8192 0 0 16384 1 ComboBox 1 0 1 1 Module 9 3 673 207 0 0 Port 0 0 3 12 Port 1 0 3 14 FSlider 3 0 6888 0 0 163840 1 FSlider 3 1 131859 0 53989 131859 1 FSMIDI 3 1 10 0 1 FSlider 3 2 984 0 0 163840 1 FSlider 3 3 0 0 0 163840 1 FSlider 3 4 13107 0 163 16384 1 FSlider 3 5 0 0 0 16384 1 ComboBox 3 0 6 1 Module 1 4 254 343 0 0 Port 1 1 4 16 Port 4 0 4 8 FSlider 4 0 8256 0 0 16384 1 FSMIDI 4 0 13 0 0 FSlider 4 1 1638 0 0 163840 1 FSlider 4 2 0 0 0 163840 1 FSlider 4 3 8959 0 1638 14745 1 FSlider 4 4 6052 0 0 16384 1 FSlider 4 5 0 0 0 102940 1 ISlider 4 0 3 1 ISlider 4 1 1 1 ISlider 4 2 1 1 ComboBox 4 0 0 1 Module 8 5 373 312 2 0 Port 0 3 5 6 Port 1 3 5 4 FSlider 5 0 16384 0 0 32768 1 FSlider 5 1 16384 0 0 32768 1 FSlider 5 2 16384 0 0 32768 1 Module 1 6 253 105 0 0 Port 1 1 6 16 Port 4 0 6 8 FSlider 6 0 8256 0 0 16384 1 FSMIDI 6 0 13 0 0 FSlider 6 1 1638 0 0 163840 1 FSlider 6 2 0 0 0 163840 1 FSlider 6 3 10022 0 1638 14745 1 FSlider 6 4 4969 0 0 16384 1 FSlider 6 5 0 0 0 102940 1 ISlider 6 0 2 1 ISlider 6 1 1 1 ISlider 6 2 1 1 ComboBox 6 0 0 1 Module 3 8 42 304 0 0 FSlider 8 0 93891 0 0 1638400 1 FSlider 8 1 0 0 0 102940 1 Module 2 9 798 109 0 0 Port 0 0 9 10 Port 2 0 9 3 FSlider 9 0 0 0 0 163840 1 FSlider 9 1 0 0 0 163840 1 FSlider 9 2 16384 0 0 32768 1 FSlider 9 3 16384 0 0 32768 1 FSlider 9 4 16384 0 0 32768 1 Module 11 10 390 16 0 0 Port 0 0 10 16 FSlider 10 0 0 0 0 16384 1 FSlider 10 1 819 0 0 16384 1 FSlider 10 2 327 0 0 16384 1 FSlider 10 3 1638 0 0 16384 1 FSlider 10 4 11468 0 0 16384 1 FSlider 10 5 819 0 0 16384 1 FSlider 10 6 16384 0 1638 163840 1 Module 6 12 497 189 0 multivoice_chorus_1201 Multivoice Chorus Port 0 0 12 5 FSlider 12 0 346928 0 163840 655360 1 FSlider 12 1 4601 0 0 32768 1 FSlider 12 2 76287 0 0 81920 1 FSlider 12 3 123467 0 32768 491520 1 FSlider 12 4 -159615 0 -327680 0 1 LSlider 12 0 8 1 Module 6 13 938 164 0 cmt Freeverb (Version 3) Port 0 0 13 9 Port 1 0 13 9 FSlider 13 0 14251 0 0 16384 1 FSlider 13 1 -96093 1 -113176 0 1 FSlider 13 2 7046 0 0 16384 1 FSlider 13 3 2165 0 0 16384 1 FSlider 13 4 16384 0 0 16384 1 CheckBox 13 0 0 1 Module 15 14 540 289 0 0 Port 0 1 14 16 FSlider 14 0 3286 0 0 163840 1 FSlider 14 1 3286 0 0 163840 1 Module 12 16 41 13 32 0 ISlider 16 0 4 1 ISlider 16 1 50 1 ISlider 16 2 16 1 ISlider 16 3 63 1 ISlider 16 4 28 1 ISlider 16 5 63 1 ISlider 16 6 16 1 ISlider 16 7 63 1 ISlider 16 8 12 1 ISlider 16 9 63 1 ISlider 16 10 26 1 ISlider 16 11 63 1 ISlider 16 12 16 1 ISlider 16 13 63 1 ISlider 16 14 28 1 ISlider 16 15 63 1 ISlider 16 16 17 1 ISlider 16 17 63 1 ISlider 16 18 29 1 ISlider 16 19 63 1 ISlider 16 20 17 1 ISlider 16 21 63 1 ISlider 16 22 14 1 ISlider 16 23 63 1 ISlider 16 24 26 1 ISlider 16 25 63 1 ISlider 16 26 17 1 ISlider 16 27 63 1 ISlider 16 28 23 1 ISlider 16 29 63 1 ISlider 16 30 19 1 ISlider 16 31 63 1 ISlider 16 32 24 1 ISlider 16 33 63 1 ISlider 16 34 19 1 ISlider 16 35 63 1 ISlider 16 36 16 1 ISlider 16 37 63 1 ISlider 16 38 26 1 ISlider 16 39 63 1 ISlider 16 40 19 1 ISlider 16 41 63 1 ISlider 16 42 24 1 ISlider 16 43 63 1 ISlider 16 44 17 1 ISlider 16 45 63 1 ISlider 16 46 26 1 ISlider 16 47 63 1 ISlider 16 48 16 1 ISlider 16 49 63 1 ISlider 16 50 28 1 ISlider 16 51 63 1 ISlider 16 52 14 1 ISlider 16 53 63 1 ISlider 16 54 26 1 ISlider 16 55 63 1 ISlider 16 56 11 1 ISlider 16 57 63 1 ISlider 16 58 12 1 ISlider 16 59 63 1 ISlider 16 60 24 1 ISlider 16 61 63 1 ISlider 16 62 14 1 ISlider 16 63 63 1 ISlider 16 64 31 1 ISlider 16 65 63 1 ComboBox 16 0 0 1 CheckBox 16 0 1 1 CheckBox 16 1 1 1 CheckBox 16 2 1 1 CheckBox 16 3 1 1 CheckBox 16 4 1 1 CheckBox 16 5 1 1 CheckBox 16 6 1 1 CheckBox 16 7 1 1 CheckBox 16 8 1 1 CheckBox 16 9 1 1 CheckBox 16 10 1 1 CheckBox 16 11 1 1 CheckBox 16 12 1 1 CheckBox 16 13 1 1 CheckBox 16 14 1 1 CheckBox 16 15 1 1 CheckBox 16 16 1 1 CheckBox 16 17 1 1 CheckBox 16 18 1 1 CheckBox 16 19 1 1 CheckBox 16 20 1 1 CheckBox 16 21 1 1 CheckBox 16 22 1 1 CheckBox 16 23 1 1 CheckBox 16 24 1 1 CheckBox 16 25 1 1 CheckBox 16 26 1 1 CheckBox 16 27 1 1 CheckBox 16 28 1 1 CheckBox 16 29 1 1 CheckBox 16 30 1 1 CheckBox 16 31 1 1 ams-2.0.1/demos/example_vc_panning_lfo.ams0000664000076400007640000000335110047700633015535 00000000000000Module 7 1 637 93 0 0 ColorP 0 0 1 2 250 200 50 180 180 180 ColorP 1 1 1 2 250 200 50 180 180 180 FSlider 1 0 8192 0 0 16384 1 FSlider 1 1 8192 0 0 16384 1 FSlider 1 2 8192 0 0 16384 1 ComboBox 1 0 0 1 Module 37 2 480 53 0 0 ColorP 0 0 2 6 250 200 50 180 180 180 ColorP 1 1 2 9 250 200 50 180 180 180 FSlider 2 0 0 0 -16384 16384 1 FSlider 2 1 16318 0 0 32768 1 ComboBox 2 0 0 1 Module 34 3 207 59 0 0 ColorP 0 0 3 7 250 200 50 180 180 180 ColorP 1 3 3 7 250 200 50 180 180 180 FSlider 3 0 163 0 0 16384 1 FSlider 3 1 16384 0 0 16384 1 FSlider 3 2 11468 0 0 16384 1 FSlider 3 3 16384 0 0 16384 1 FSlider 3 4 0 0 -16384 16384 1 FSlider 3 5 0 0 -16384 16384 1 FSlider 3 6 0 0 -16384 16384 1 FSlider 3 7 0 0 -16384 16384 1 ComboBox 3 0 1 1 ComboBox 3 1 1 1 Module 6 4 22 338 2 blvco Saw-VCO ColorP 0 1 4 7 250 200 50 180 180 180 FSlider 4 0 0 0 0 16384 1 FSlider 4 1 0 0 0 65536 1 FSlider 4 2 0 0 0 65536 1 FSlider 4 3 16384 0 0 16384 1 LSlider 4 0 -4 1 Module 6 5 307 337 2 mvclpf24 Mvclpf-4 ColorP 0 0 5 4 250 200 50 180 180 180 ColorP 2 0 5 3 250 200 50 180 180 180 FSlider 5 0 0 0 -983040 163840 1 FSlider 5 1 -19351 0 -81920 81920 1 FSlider 5 2 99981 0 0 163840 1 FSlider 5 3 0 0 0 16384 1 FSlider 5 4 0 0 0 16384 1 FSlider 5 5 205907 0 -245760 245760 1 LSlider 5 0 4 1 Module 2 6 357 64 0 0 ColorP 0 0 6 3 250 200 50 180 180 180 ColorP 2 0 6 5 250 200 50 180 180 180 FSlider 6 0 0 0 0 16384 1 FSlider 6 1 0 0 0 16384 1 FSlider 6 2 16384 0 0 32768 1 FSlider 6 3 16384 0 0 32768 1 FSlider 6 4 16384 0 0 32768 1 Module 35 7 6 50 0 0 FSlider 7 0 0 0 -16384 16384 1 ISlider 7 0 24 1 ISlider 7 1 0 1 ISlider 7 2 0 1 ISlider 7 3 0 1 ISlider 7 4 0 1 Module 3 9 566 230 0 0 ColorP 0 3 9 7 250 200 50 180 180 180 FSlider 9 0 -11754 1 -75451 75451 1 FSlider 9 1 0 0 0 102940 1 ams-2.0.1/demos/organ03.ams0000664000076400007640000000450407770061731012322 00000000000000Module 33 1 130 21 0 0 Port 0 1 1 2 ISlider 1 0 0 1 ComboBox 1 0 1 1 Module 10 2 4 8 0 0 FSlider 2 0 0 0 -16384 16384 1 ISlider 2 0 24 1 ComboBox 2 0 0 1 Module 7 3 565 324 0 0 Port 0 0 3 6 Port 1 1 3 6 FSlider 3 0 8192 0 0 16384 1 FSlider 3 1 8192 0 0 16384 1 FSlider 3 2 8192 0 0 16384 1 ComboBox 3 0 1 1 Module 6 4 264 8 3 cmt Organ Port 0 0 4 2 Port 2 0 4 1 FSlider 4 0 16384 0 0 16384 1 FSlider 4 1 0 0 0 327680000 1 FSlider 4 2 16384 0 0 16384 1 FSlider 4 3 16384 0 0 16384 1 FSlider 4 4 16384 0 0 16384 1 FSlider 4 5 16384 0 0 16384 1 FSlider 4 6 16384 0 0 16384 1 FSlider 4 7 16384 0 0 16384 1 FSlider 4 8 163 0 163 16384 1 FSlider 4 9 163 0 163 16384 1 FSlider 4 10 16384 0 0 16384 1 FSlider 4 11 163 0 163 16384 1 FSlider 4 12 163 0 163 16384 1 FSlider 4 13 163 0 163 16384 1 FSlider 4 14 16384 0 0 16384 1 FSlider 4 15 163 0 163 16384 1 CheckBox 4 0 0 1 CheckBox 4 1 1 1 CheckBox 4 2 1 1 CheckBox 4 3 1 1 Module 6 6 501 202 0 g2reverb Stereo reverb Port 0 0 6 8 Port 1 0 6 8 FSlider 6 0 1446312 0 163840 2457600 1 FSlider 6 1 41686 0 16384 327680 1 FSlider 6 2 13115 0 0 16384 1 FSlider 6 3 4520 0 0 16384 1 FSlider 6 4 0 0 -1310720 0 1 FSlider 6 5 -67796 0 -1310720 0 1 FSlider 6 6 -158190 0 -1310720 0 1 Module 11 7 132 118 0 0 Port 0 0 7 2 Port 1 3 7 2 FSlider 7 0 0 0 0 16384 1 FSlider 7 1 81 0 0 16384 1 FSlider 7 2 0 0 0 16384 1 FSlider 7 3 487 0 0 16384 1 FSlider 7 4 16384 0 0 16384 1 FSlider 7 5 203 0 0 16384 1 FSlider 7 6 16384 0 1638 163840 1 Module 2 8 632 2 0 0 Port 0 0 8 7 Port 2 0 8 4 Port 3 0 8 12 FSlider 8 0 0 0 0 163840 1 FSlider 8 1 0 0 0 163840 1 FSlider 8 2 16384 0 0 32768 1 FSlider 8 3 16384 0 0 32768 1 FSlider 8 4 16384 0 0 32768 1 Module 1 10 7 248 0 0 Port 1 1 10 2 FSlider 10 0 0 0 0 16384 1 FSlider 10 1 8192 0 1638 14745 1 FSlider 10 2 0 0 0 16384 1 FSlider 10 3 0 0 0 102940 1 FSlider 10 4 0 0 0 163840 1 FSlider 10 5 0 0 0 163840 1 ISlider 10 0 1 1 ISlider 10 1 1 1 ISlider 10 2 1 1 ComboBox 10 0 2 1 Module 1 11 120 249 0 0 Port 1 1 11 2 FSlider 11 0 81 0 0 16384 1 FSlider 11 1 8192 0 1638 14745 1 FSlider 11 2 0 0 0 16384 1 FSlider 11 3 0 0 0 102940 1 FSlider 11 4 0 0 0 163840 1 FSlider 11 5 0 0 0 163840 1 ISlider 11 0 2 1 ISlider 11 1 1 1 ISlider 11 2 1 1 ComboBox 11 0 1 1 Module 8 12 526 76 2 0 Port 0 4 12 10 Port 1 4 12 11 FSlider 12 0 10654 0 0 32768 1 FSlider 12 1 18967 0 0 32768 1 FSlider 12 2 13640 0 0 32768 1 ams-2.0.1/demos/example_barberpole_up_down.ams0000664000076400007640000001124010076763737016437 00000000000000Module 43 1 72 53 0 0 FSlider 1 0 -36045 1 -75451 49081 1 FSlider 1 1 -75451 1 -75451 26368 1 FSlider 1 2 0 1 -75451 26369 1 ComboBox 1 0 2 1 FSMIDI 1 1 10 0 1 Module 7 3 1088 536 0 0 ColorP 0 0 3 23 250 200 50 180 180 180 ColorP 1 0 3 24 250 200 50 180 180 180 FSlider 3 0 8192 0 0 16384 1 FSlider 3 1 8192 0 0 16384 1 FSlider 3 2 8192 0 0 16384 1 ComboBox 3 0 0 1 Module 2 5 711 13 0 0 ColorP 0 8 5 1 250 200 50 180 180 180 ColorP 2 0 5 13 250 200 50 180 180 180 FSlider 5 0 0 0 0 16384 1 FSlider 5 1 0 0 0 16384 1 FSlider 5 2 16384 0 0 32768 1 FSlider 5 3 16384 0 0 32768 1 FSlider 5 4 16384 0 0 32768 1 Module 2 6 712 161 0 0 ColorP 0 9 6 1 250 200 50 180 180 180 ColorP 2 0 6 14 250 200 50 180 180 180 FSlider 6 0 0 0 0 16384 1 FSlider 6 1 0 0 0 16384 1 FSlider 6 2 16384 0 0 32768 1 FSlider 6 3 16384 0 0 32768 1 FSlider 6 4 16384 0 0 32768 1 Module 2 7 712 313 0 0 ColorP 0 10 7 1 250 200 50 180 180 180 ColorP 2 0 7 15 250 200 50 180 180 180 FSlider 7 0 0 0 0 16384 1 FSlider 7 1 0 0 0 16384 1 FSlider 7 2 16384 0 0 32768 1 FSlider 7 3 16384 0 0 32768 1 FSlider 7 4 16384 0 0 32768 1 Module 2 8 713 461 0 0 ColorP 0 11 8 1 250 200 50 180 180 180 ColorP 2 0 8 16 250 200 50 180 180 180 FSlider 8 0 0 0 0 16384 1 FSlider 8 1 0 0 0 16384 1 FSlider 8 2 16384 0 0 32768 1 FSlider 8 3 16384 0 0 32768 1 FSlider 8 4 16384 0 0 32768 1 Module 2 9 712 611 0 0 ColorP 0 12 9 1 250 200 50 180 180 180 ColorP 2 0 9 17 250 200 50 180 180 180 FSlider 9 0 0 0 0 16384 1 FSlider 9 1 0 0 0 16384 1 FSlider 9 2 16384 0 0 32768 1 FSlider 9 3 16384 0 0 32768 1 FSlider 9 4 16384 0 0 32768 1 Module 2 10 716 762 0 0 ColorP 0 13 10 1 250 200 50 180 180 180 ColorP 2 0 10 18 250 200 50 180 180 180 FSlider 10 0 0 0 0 16384 1 FSlider 10 1 0 0 0 16384 1 FSlider 10 2 16384 0 0 32768 1 FSlider 10 3 16384 0 0 32768 1 FSlider 10 4 16384 0 0 32768 1 Module 2 11 717 910 0 0 ColorP 0 14 11 1 250 200 50 180 180 180 ColorP 2 0 11 19 250 200 50 180 180 180 FSlider 11 0 0 0 0 16384 1 FSlider 11 1 0 0 0 16384 1 FSlider 11 2 16384 0 0 32768 1 FSlider 11 3 16384 0 0 32768 1 FSlider 11 4 16384 0 0 32768 1 Module 2 12 717 1064 0 0 ColorP 0 15 12 1 250 200 50 180 180 180 ColorP 2 0 12 20 250 200 50 180 180 180 FSlider 12 0 0 0 0 16384 1 FSlider 12 1 0 0 0 16384 1 FSlider 12 2 16384 0 0 32768 1 FSlider 12 3 16384 0 0 32768 1 FSlider 12 4 16384 0 0 32768 1 Module 6 13 367 7 2 blvco Saw-VCO ColorP 0 0 13 1 250 200 50 180 180 180 FSlider 13 0 0 0 0 16384 1 FSlider 13 1 0 0 0 65536 1 FSlider 13 2 0 0 0 65536 1 FSlider 13 3 0 0 0 16384 1 LSlider 13 0 -1 1 LSMIDI 13 0 13 0 0 Module 6 14 365 136 2 blvco Saw-VCO ColorP 0 1 14 1 250 200 50 180 180 180 FSlider 14 0 15 0 0 16384 1 FSlider 14 1 0 0 0 65536 1 FSlider 14 2 0 0 0 65536 1 FSlider 14 3 0 0 0 16384 1 LSlider 14 0 -1 1 LSMIDI 14 0 13 0 0 Module 6 15 363 264 2 blvco Saw-VCO ColorP 0 2 15 1 250 200 50 180 180 180 FSlider 15 0 34 0 0 16384 1 FSlider 15 1 0 0 0 65536 1 FSlider 15 2 0 0 0 65536 1 FSlider 15 3 0 0 0 16384 1 LSlider 15 0 -1 1 LSMIDI 15 0 13 0 0 Module 6 16 364 395 2 blvco Saw-VCO ColorP 0 3 16 1 250 200 50 180 180 180 FSlider 16 0 44 0 0 16384 1 FSlider 16 1 0 0 0 65536 1 FSlider 16 2 0 0 0 65536 1 FSlider 16 3 0 0 0 16384 1 LSlider 16 0 -1 1 LSMIDI 16 0 13 0 0 Module 6 17 366 525 2 blvco Saw-VCO ColorP 0 4 17 1 250 200 50 180 180 180 FSlider 17 0 34 0 0 16384 1 FSlider 17 1 0 0 0 65536 1 FSlider 17 2 0 0 0 65536 1 FSlider 17 3 0 0 0 16384 1 LSlider 17 0 -1 1 LSMIDI 17 0 13 0 0 Module 6 18 363 655 2 blvco Saw-VCO ColorP 0 5 18 1 250 200 50 180 180 180 FSlider 18 0 17 0 0 16384 1 FSlider 18 1 0 0 0 65536 1 FSlider 18 2 0 0 0 65536 1 FSlider 18 3 0 0 0 16384 1 LSlider 18 0 -1 1 LSMIDI 18 0 13 0 0 Module 6 19 364 784 2 blvco Saw-VCO ColorP 0 6 19 1 250 200 50 180 180 180 FSlider 19 0 0 0 0 16384 1 FSlider 19 1 0 0 0 65536 1 FSlider 19 2 0 0 0 65536 1 FSlider 19 3 0 0 0 16384 1 LSlider 19 0 -1 1 LSMIDI 19 0 13 0 0 Module 6 20 365 916 2 blvco Saw-VCO ColorP 0 7 20 1 250 200 50 180 180 180 FSlider 20 0 41 0 0 16384 1 FSlider 20 1 0 0 0 65536 1 FSlider 20 2 0 0 0 65536 1 FSlider 20 3 0 0 0 16384 1 LSlider 20 0 -1 1 LSMIDI 20 0 13 0 0 Module 8 23 909 404 4 0 ColorP 0 0 23 5 250 200 50 180 180 180 ColorP 1 0 23 6 250 200 50 180 180 180 ColorP 2 0 23 7 250 200 50 180 180 180 ColorP 3 0 23 8 250 200 50 180 180 180 FSlider 23 0 2547 0 0 32768 1 FSlider 23 1 16384 0 0 32768 1 FSlider 23 2 16384 0 0 32768 1 FSlider 23 3 16384 0 0 32768 1 FSlider 23 4 16384 0 0 32768 1 Module 8 24 909 555 4 0 ColorP 0 0 24 9 250 200 50 180 180 180 ColorP 1 0 24 10 250 200 50 180 180 180 ColorP 2 0 24 11 250 200 50 180 180 180 ColorP 3 0 24 12 250 200 50 180 180 180 FSlider 24 0 16384 0 0 32768 1 FSlider 24 1 16384 0 0 32768 1 FSlider 24 2 16384 0 0 32768 1 FSlider 24 3 16384 0 0 32768 1 FSlider 24 4 16384 0 0 32768 1 ams-2.0.1/demos/Makefile.in0000664000076400007640000003047111315245614012410 00000000000000# Makefile.in generated by automake 1.10.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Makefile.am for ams VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = demos DIST_COMMON = $(dist_demosdata_DATA) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/src/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(demosdatadir)" dist_demosdataDATA_INSTALL = $(INSTALL_DATA) DATA = $(dist_demosdata_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMS_CXXFLAGS = @AMS_CXXFLAGS@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LADSPA_PATH = @LADSPA_PATH@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LN_S = @LN_S@ LRELEASE = @LRELEASE@ LTLIBOBJS = @LTLIBOBJS@ LUPDATE = @LUPDATE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MOC = @MOC@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ QT_CFLAGS = @QT_CFLAGS@ QT_CXXFLAGS = @QT_CXXFLAGS@ QT_LIBS = @QT_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ demosdatadir = $(pkgdatadir)/demos dist_demosdata_DATA = \ bass_advenv.ams \ bass.ams \ bass_reverb.ams \ chorus_drops2.ams \ chorus_drops.ams \ classical.ams \ classical_reverb.ams \ example_2vco.ams \ example_3vco.ams \ example_3vco_bode.ams \ example_advmcv.ams \ example_ams_demo.ams \ example_ams_demo_bode.ams \ example_ams_demo_scala.ams \ example_ams_demo_scope_spectrum.ams \ example_ams_demo_scope_spectrum_drums.ams \ example_ams_demo_scope_spectrum_mcp_phaser.ams \ example_ams_demo_scope_spectrum_mcpvcf.ams \ example_barberpole.ams \ example_barberpole_phaser.ams \ example_barberpole_phaser_reverb.ams \ example_barberpole_phaser_up_down.ams \ example_barberpole_up_down.ams \ example_basic.ams \ example_basic_vcf.ams \ example_basic_vcf_gverb_mcpfilter_env.ams \ example_basic_vcf_gverb_mcpfilter_env_filtmod.ams \ example_basic_vcf_reverb.ams \ example_basic_vcf_reverb_filter_env.ams \ example_basic_vcf_reverb_mcpfilter_env.ams \ example_bode.ams \ example_bode_wail.ams \ example_burst_noise.ams \ example_capture.ams \ example_chorus.ams \ example_chorus_modwheel.ams \ example_cvs.ams \ example_dual_env.ams \ example_dynamicwaves_8.ams \ example_dynamicwaves_8_chorus.ams \ example_dynamicwaves_8_retrigger.ams \ example_dynamicwaves_8_seq.ams \ example_env_vcf.ams \ example_fm.ams \ example_full.ams \ example_full_midi.ams \ example_function.ams \ example_midiout_birds.ams \ example_midiout_controller.ams \ example_midiout_junglebirds.ams \ example_midiout_note.ams \ example_midiout_note_velocity.ams \ example_midiout_random.ams \ example_mvclpf_phaser_2poles.ams \ example_mvclpf_phaser.ams \ example_phaser.ams \ example_phaser_bassclang.ams \ example_phaser_basspad.ams \ example_portamento.ams \ example_random_major.ams \ example_random_major_chords.ams \ example_random_minor_chords.ams \ example_rectangle_pw.ams \ example_ringmod.ams \ example_simple_cembalo.ams \ example_strings.ams \ example_strings_high_reso.ams \ example_vcdoubledecay.ams \ example_vcEnvelope.ams \ example_vcEnvelope_exp.ams \ example_vcEnvelope_lin.ams \ example_vco_add.ams \ example_vcorgan_4.ams \ example_vcorgan_6.ams \ example_vcorgan_8.ams \ example_vc_panning.ams \ example_vc_panning_lfo.ams \ example_vcswitch.ams \ example_wind.ams \ JungleBird.ams \ living_phaser.ams \ organ01.ams \ organ02.ams \ organ03.ams \ phaser_wail.ams \ sequence01.ams \ sequence01b.ams \ sequence02.ams \ sequence02b.ams \ sequence02c.ams \ sequence03.ams \ sequence03b.ams \ SineSolo.ams all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu demos/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu demos/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh install-dist_demosdataDATA: $(dist_demosdata_DATA) @$(NORMAL_INSTALL) test -z "$(demosdatadir)" || $(MKDIR_P) "$(DESTDIR)$(demosdatadir)" @list='$(dist_demosdata_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(dist_demosdataDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(demosdatadir)/$$f'"; \ $(dist_demosdataDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(demosdatadir)/$$f"; \ done uninstall-dist_demosdataDATA: @$(NORMAL_UNINSTALL) @list='$(dist_demosdata_DATA)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(demosdatadir)/$$f'"; \ rm -f "$(DESTDIR)$(demosdatadir)/$$f"; \ done tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(demosdatadir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dist_demosdataDATA install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-dist_demosdataDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am \ install-dist_demosdataDATA install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am \ uninstall-dist_demosdataDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ams-2.0.1/demos/example_fm.ams0000664000076400007640000000337007770061731013166 00000000000000Module 7 1 620 140 0 0 Port 0 0 1 4 Port 1 0 1 4 FSlider 1 0 12253 0 0 16384 1 FSlider 1 1 8192 0 0 16384 1 FSlider 1 2 8192 0 0 16384 1 ComboBox 1 0 1 1 Module 11 3 188 15 0 0 Port 0 0 3 11 FSlider 3 0 0 0 0 16384 1 FSlider 3 1 197 0 0 16384 1 FSlider 3 2 98 0 0 16384 1 FSlider 3 3 4133 0 0 16384 1 FSlider 3 4 6052 0 0 16384 1 FSlider 3 5 819 0 0 16384 1 FSlider 3 6 16384 0 1638 163840 1 Module 2 4 481 96 0 0 Port 0 0 4 3 Port 2 0 4 5 FSlider 4 0 0 0 0 163840 1 FSlider 4 1 0 0 0 163840 1 FSlider 4 2 8192 0 0 16384 1 FSlider 4 3 8192 0 0 16384 1 FSlider 4 4 8192 0 0 16384 1 Module 1 5 339 158 0 0 Port 1 1 5 11 Port 3 0 5 9 FSlider 5 0 0 0 0 16384 1 FSlider 5 1 -37725 1 -113176 37725 1 FSlider 5 2 0 1 -113176 31834 1 FSMIDI 5 2 10 0 1 FSlider 5 3 8192 0 163 16220 1 FSlider 5 4 0 0 0 16384 1 FSlider 5 5 26749 0 0 163840 1 ISlider 5 0 1 1 ISlider 5 1 1 1 ISlider 5 2 1 1 ComboBox 5 0 0 1 Module 1 9 192 214 0 0 Port 1 1 9 11 FSlider 9 0 0 0 0 16384 1 FSlider 9 1 1638 0 0 163840 1 FSlider 9 2 0 0 0 163840 1 FSlider 9 3 8192 0 1638 14745 1 FSlider 9 4 0 0 0 163840 1 FSlider 9 5 0 0 0 163840 1 ISlider 9 0 1 1 ISlider 9 1 3 1 ISlider 9 2 1 1 ComboBox 9 0 0 1 Module 10 11 22 26 0 0 FSlider 11 0 129 0 -16384 16384 1 FSMIDI 11 0 13 0 0 ISlider 11 0 24 1 ComboBox 11 0 0 1 Comment 0 0 372 288 319 213 #PARA# 0 0 0 This patch demonstrates frequency modulation (FM) synthesis which is very flexible and powerful. Most important parameters are the ratio of the frequencies involved and the strength of the modulation. You can experiment with the "Harmonic" parameter of the modulating VCO and the "Lin. FM Gain" parameter of the modulated VCO. The latter parameter has been bound to the modulation wheel. #ARAP# #PARA# 0 0 1 #ARAP# #PARA# 0 0 2 #ARAP# #PARA# 0 0 3 #ARAP# ams-2.0.1/demos/example_capture.ams0000664000076400007640000000303107770061731014221 00000000000000Module 17 1 6 139 0 0 FSlider 1 0 18027 0 0 32768 1 FSlider 1 1 16384 0 0 32768 1 FSlider 1 2 16384 0 0 32768 1 Module 7 2 631 144 0 0 Port 0 0 2 5 Port 1 1 2 5 FSlider 2 0 8192 0 0 16384 1 FSlider 2 1 8192 0 0 16384 1 FSlider 2 2 8192 0 0 16384 1 ComboBox 2 0 1 1 Module 6 3 461 144 0 cmt Canyon Delay Port 0 0 3 6 Port 1 0 3 6 FSlider 3 0 10515 0 163 16220 1 FSlider 3 1 6619 0 -16384 16384 1 FSlider 3 2 13183 0 163 16220 1 FSlider 3 3 6619 0 -16384 16384 1 FSlider 3 4 81920000 0 16384 81920000 1 Module 6 5 432 257 0 cmt Freeverb (Version 3) Port 0 0 5 3 Port 1 1 5 3 FSlider 5 0 12065 0 0 16384 1 FSlider 5 1 -86907 1 -113176 0 1 FSlider 5 2 -1699 1 -113176 0 1 FSlider 5 3 0 1 -113176 0 1 FSlider 5 4 16384 0 0 16384 1 CheckBox 5 0 0 1 Module 9 6 250 116 0 0 Port 0 0 6 7 FSlider 6 0 16384 0 0 163840 1 FSlider 6 1 163840 0 41047 163840 1 FSlider 6 2 0 0 0 163840 1 FSlider 6 3 0 0 0 163840 1 FSlider 6 4 11464 0 163 16384 1 FSlider 6 5 0 0 0 16384 1 ComboBox 6 0 6 1 Module 8 7 127 134 2 0 Port 0 0 7 1 Port 1 1 7 1 FSlider 7 0 16384 0 0 32768 1 FSlider 7 1 16384 0 0 32768 1 FSlider 7 2 16384 0 0 32768 1 Comment 0 0 41 290 362 191 #PARA# 0 0 0 This patch demonstrates the PCM In module. You can use this module to capture sound either from the "Line In" , "Mic In" or any other capture inputs of your soundcard. #ARAP# #PARA# 0 0 1 #ARAP# #PARA# 0 0 2 Please check your mixer settings and make sure that you selected the desired capture device. You might also have to adjust the capture level. #ARAP# #PARA# 0 0 3 #ARAP# #PARA# 0 0 4 #ARAP# ams-2.0.1/demos/example_simple_cembalo.ams0000664000076400007640000000352707770061731015543 00000000000000Module 7 1 609 67 0 0 Port 0 0 1 9 Port 1 1 1 9 FSlider 1 0 3820 0 0 16384 1 FSlider 1 1 3820 0 0 16384 1 FSlider 1 2 3735 0 0 16384 1 ComboBox 1 0 1 1 Module 1 2 319 197 0 0 Port 1 1 2 5 Port 3 0 2 6 FSlider 2 0 0 0 0 16384 1 FSlider 2 1 1638 0 0 163840 1 FSlider 2 2 16384 0 0 163840 1 FSlider 2 3 1638 0 1638 14745 1 FSlider 2 4 0 0 0 163840 1 FSlider 2 5 100515 0 0 163840 1 ISlider 2 0 0 1 ISlider 2 1 2 1 ISlider 2 2 1 1 ComboBox 2 0 0 1 Module 2 3 316 9 0 0 Port 0 0 3 11 Port 2 0 3 2 FSlider 3 0 0 0 0 163840 1 FSlider 3 1 0 0 0 163840 1 FSlider 3 2 16384 0 0 32768 1 FSlider 3 3 16384 0 0 32768 1 FSlider 3 4 16384 0 0 32768 1 Module 10 5 5 7 0 0 FSlider 5 0 0 0 -16384 16384 1 ISlider 5 0 24 1 ComboBox 5 0 0 1 Module 1 6 141 194 0 0 Port 1 1 6 5 FSlider 6 0 0 0 0 16384 1 FSlider 6 1 1638 0 0 163840 1 FSlider 6 2 0 0 0 163840 1 FSlider 6 3 8192 0 1638 14745 1 FSlider 6 4 0 0 0 163840 1 FSlider 6 5 0 0 0 163840 1 ISlider 6 0 2 1 ISlider 6 1 3 1 ISlider 6 2 2 1 ComboBox 6 0 0 1 Module 6 9 429 64 0 cmt Freeverb (Version 3) Port 0 0 9 3 Port 1 0 9 3 FSlider 9 0 6622 0 0 16384 1 FSlider 9 1 -72420 1 -113176 0 1 FSlider 9 2 -18472 1 -113176 0 1 FSlider 9 3 -18472 1 -113176 0 1 FSlider 9 4 16384 0 0 16384 1 CheckBox 9 0 0 1 Module 22 11 142 7 0 0 Port 0 0 11 5 FSlider 11 0 8516 0 1638 163840 1 FSlider 11 1 0 0 0 16384 1 FSlider 11 2 0 0 0 16384 1 FSlider 11 3 116 0 0 16384 1 FSlider 11 4 16384 0 0 16384 1 FSlider 11 5 1505 0 0 16384 1 FSlider 11 6 10884 0 0 16384 1 FSlider 11 7 16384 0 0 16384 1 FSlider 11 8 3445 0 0 16384 1 FSlider 11 9 16384 0 0 16384 1 FSlider 11 10 0 0 0 16384 1 FSlider 11 11 8192 0 0 16384 1 FSlider 11 12 0 0 0 16384 1 FSlider 11 13 3276 0 0 16384 1 FSlider 11 14 0 0 0 16384 1 Comment 0 0 466 248 200 170 #PARA# 0 0 0 This is a simple FM cembalo by Jörg Anders #ARAP# #PARA# 0 0 1 and Matthias Nagorni #ARAP# #PARA# 0 0 2 #ARAP# ams-2.0.1/demos/example_phaser_basspad.ams0000664000076400007640000000453507770061731015547 00000000000000Module 7 1 797 190 0 0 Port 0 0 1 18 Port 1 1 1 18 FSlider 1 0 16384 0 0 16384 1 FSlider 1 1 16384 0 0 16384 1 FSlider 1 2 16384 0 0 16384 1 ComboBox 1 0 1 1 Module 25 3 795 101 0 0 Port 0 0 3 19 FSlider 3 0 16384 0 1638 163840 1 FSlider 3 1 0 0 0 327680000 1 FSlider 3 2 327680000 0 0 327680000 1 ComboBox 3 0 0 1 ComboBox 3 1 0 1 ComboBox 3 2 0 1 ComboBox 3 3 2 1 ComboBox 3 4 2 1 ComboBox 3 5 4 1 CheckBox 3 0 1 1 Module 1 7 146 226 0 0 Port 1 1 7 13 FSlider 7 0 0 0 0 16384 1 FSlider 7 1 8507 0 1638 14745 1 FSlider 7 2 0 0 0 16384 1 FSlider 7 3 0 0 0 102940 1 FSlider 7 4 0 0 0 163840 1 FSlider 7 5 0 0 0 163840 1 ISlider 7 0 1 1 ISlider 7 1 1 1 ISlider 7 2 1 1 ComboBox 7 0 0 1 Module 6 12 493 60 0 cs_chorus Chorus2 Port 0 0 12 16 FSlider 12 0 199332 0 0 491520 1 FSlider 12 1 -17349 1 -95176 17999 1 FSlider 12 2 25174 0 0 163840 1 FSlider 12 3 21475 1 -75451 37725 1 FSlider 12 4 3343 0 0 49152 1 Module 10 13 7 167 0 0 FSlider 13 0 0 0 -16384 16384 1 ISlider 13 0 12 1 ComboBox 13 0 0 1 Module 11 15 140 84 0 0 Port 0 0 15 13 FSlider 15 0 0 0 0 16384 1 FSlider 15 1 16384 0 0 16384 1 FSlider 15 2 327 0 0 16384 1 FSlider 15 3 10755 0 0 16384 1 FSlider 15 4 7478 0 0 16384 1 FSlider 15 5 10124 0 0 16384 1 FSlider 15 6 16384 0 1638 163840 1 Module 2 16 308 102 0 0 Port 0 0 16 15 Port 2 2 16 7 FSlider 16 0 0 0 0 16384 1 FSlider 16 1 0 0 0 16384 1 FSlider 16 2 16384 0 0 32768 1 FSlider 16 3 16384 0 0 32768 1 FSlider 16 4 16384 0 0 32768 1 Module 6 18 488 342 0 gverb_1216 GVerb Port 0 0 18 19 FSlider 18 0 497628 0 16384 4915200 1 FSlider 18 1 120461 0 1638 5898240 1 FSlider 18 2 6933 0 0 16384 1 FSlider 18 3 14898 0 0 16384 1 FSlider 18 4 -149211 0 -1146880 0 1 FSlider 18 5 -245760 0 -1146880 0 1 FSlider 18 6 -231131 0 -1146880 0 1 Module 6 19 492 168 0 cs_phaser Phaser1 Port 0 0 19 12 Port 1 1 19 22 Port 3 0 19 20 FSlider 19 0 -205522 0 -655360 163840 1 FSlider 19 1 35109 0 -81920 81920 1 FSlider 19 2 0 0 0 163840 1 FSlider 19 3 70733 0 0 163840 1 FSlider 19 4 15283 0 -16384 16384 1 FSlider 19 5 8213 0 -16384 16384 1 LSlider 19 0 30 1 Module 3 20 312 306 0 0 FSlider 20 0 -38183 1 -75451 75451 1 FSlider 20 1 0 0 0 102940 1 Module 11 22 264 19 0 0 Port 0 0 22 13 FSlider 22 0 0 0 0 16384 1 FSlider 22 1 819 0 0 16384 1 FSlider 22 2 327 0 0 16384 1 FSlider 22 3 1638 0 0 16384 1 FSlider 22 4 11468 0 0 16384 1 FSlider 22 5 2689 0 0 16384 1 FSlider 22 6 16384 0 1638 163840 1 ams-2.0.1/demos/example_basic_vcf_reverb_mcpfilter_env.ams0000664000076400007640000000436207770061731020767 00000000000000Module 7 1 596 180 0 0 Port 0 0 1 10 Port 1 1 1 10 FSlider 1 0 13849 0 0 16384 1 FSlider 1 1 16384 0 0 16384 1 FSlider 1 2 16384 0 0 16384 1 ComboBox 1 0 1 1 Module 11 3 145 13 0 0 Port 0 0 3 12 Port 1 3 3 12 FSlider 3 0 0 0 0 16384 1 FSlider 3 1 -72548 1 -113176 0 1 FSlider 3 2 98 0 0 16384 1 FSlider 3 3 7688 0 0 16384 1 FSlider 3 4 9746 0 0 16384 1 FSlider 3 5 -17120 1 -113176 0 1 FSlider 3 6 16384 0 1638 163840 1 Module 2 4 432 23 0 0 Port 0 0 4 3 Port 2 0 4 18 FSlider 4 0 0 0 0 163840 1 FSlider 4 1 0 0 0 163840 1 FSlider 4 2 19529 0 0 32768 1 FSlider 4 3 8192 0 0 32768 1 FSlider 4 4 8192 0 0 32768 1 Module 1 5 145 267 0 0 Port 1 1 5 12 Port 2 0 5 16 FSlider 5 0 0 0 0 16384 1 FSlider 5 1 1638 0 0 163840 1 FSlider 5 2 0 0 0 163840 1 FSlider 5 3 8192 0 1638 14745 1 FSlider 5 4 198 0 0 2972 1 FSlider 5 5 0 0 0 163840 1 ISlider 5 0 0 1 ISlider 5 1 1 1 ISlider 5 2 1 1 ComboBox 5 0 0 1 Module 15 9 145 158 0 0 Port 0 1 9 12 FSlider 9 0 1672 0 0 163840 1 FSlider 9 1 1672 0 0 163840 1 Module 6 10 564 45 0 cmt Freeverb (Version 3) Port 0 0 10 4 Port 1 0 10 4 FSlider 10 0 5057 0 0 16384 1 FSlider 10 1 -89825 1 -113176 0 1 FSlider 10 2 -16168 1 -113176 0 1 FSlider 10 3 -5338 1 -113176 0 1 FSlider 10 4 16384 0 0 16384 1 CheckBox 10 0 0 1 Module 10 12 13 120 0 0 FSlider 12 0 129 0 -16384 16384 1 FSMIDI 12 0 13 0 0 ISlider 12 0 24 1 ComboBox 12 0 0 1 Module 11 14 258 350 0 0 Port 0 0 14 12 Port 1 3 14 12 FSlider 14 0 0 0 0 16384 1 FSlider 14 1 1386 0 0 16384 1 FSlider 14 2 0 0 0 16384 1 FSlider 14 3 9788 0 0 16384 1 FSlider 14 4 0 0 0 16384 1 FSlider 14 5 2353 0 0 16384 1 FSlider 14 6 1638 0 1638 163840 1 Module 3 16 17 267 0 0 FSlider 16 0 104490 0 0 1638400 1 FSlider 16 1 0 0 0 102940 1 Module 6 18 285 190 0 mvclpf24 Mvclpf-3 Port 0 2 18 5 Port 1 0 18 9 Port 2 0 18 14 FSlider 18 0 -231131 0 -983040 163840 1 FSlider 18 1 -33152 0 -49412 33192 1 FSMIDI 18 1 10 0 1 FSlider 18 2 49737 0 0 163840 1 FSlider 18 3 0 0 0 16384 1 FSlider 18 4 0 0 0 16384 1 FSlider 18 5 184320 0 -245760 245760 1 Comment 0 0 257 327 302 193 #PARA# 0 0 0 This patch demonstrates the excellent low pass filter by Fons Adriaensen. #ARAP# #PARA# 0 0 1 ModWheel is bound to filter cutoff. Try what happens when you modify #ARAP# #PARA# 0 0 2 the filter resonance. #ARAP# #PARA# 0 0 3 #ARAP# ams-2.0.1/demos/example_rectangle_pw.ams0000664000076400007640000000452207770061731015236 00000000000000Module 7 1 1123 165 0 0 Port 0 0 1 13 Port 1 1 1 13 FSlider 1 0 6385 0 0 16384 1 FSlider 1 1 8192 0 0 16384 1 FSlider 1 2 8192 0 0 16384 1 ComboBox 1 0 1 1 Module 9 3 673 207 0 0 Port 0 0 3 12 Port 1 0 3 14 FSlider 3 0 6888 0 0 163840 1 FSlider 3 1 131859 0 53989 131859 1 FSMIDI 3 1 10 0 1 FSlider 3 2 984 0 0 163840 1 FSlider 3 3 0 0 0 163840 1 FSlider 3 4 13107 0 163 16384 1 FSlider 3 5 0 0 0 16384 1 ComboBox 3 0 6 1 Module 1 4 254 343 0 0 Port 1 1 4 16 Port 4 0 4 8 FSlider 4 0 0 0 0 16384 1 FSlider 4 1 1638 0 0 163840 1 FSlider 4 2 0 0 0 163840 1 FSlider 4 3 8959 0 1638 14745 1 FSlider 4 4 6052 0 0 16384 1 FSlider 4 5 0 0 0 102940 1 ISlider 4 0 2 1 ISlider 4 1 1 1 ISlider 4 2 1 1 ComboBox 4 0 0 1 Module 8 5 373 312 2 0 Port 0 3 5 6 Port 1 3 5 4 FSlider 5 0 16384 0 0 32768 1 FSlider 5 1 16384 0 0 32768 1 FSlider 5 2 16384 0 0 32768 1 Module 1 6 253 105 0 0 Port 1 1 6 16 Port 4 0 6 8 FSlider 6 0 0 0 0 16384 1 FSlider 6 1 1638 0 0 163840 1 FSlider 6 2 0 0 0 163840 1 FSlider 6 3 10022 0 1638 14745 1 FSlider 6 4 4969 0 0 16384 1 FSlider 6 5 0 0 0 102940 1 ISlider 6 0 1 1 ISlider 6 1 1 1 ISlider 6 2 1 1 ComboBox 6 0 0 1 Module 3 8 42 304 0 0 FSlider 8 0 93891 0 0 1638400 1 FSlider 8 1 0 0 0 102940 1 Module 2 9 798 109 0 0 Port 0 0 9 10 Port 2 0 9 3 FSlider 9 0 0 0 0 163840 1 FSlider 9 1 0 0 0 163840 1 FSlider 9 2 16384 0 0 32768 1 FSlider 9 3 16384 0 0 32768 1 FSlider 9 4 16384 0 0 32768 1 Module 11 10 390 16 0 0 Port 0 0 10 16 FSlider 10 0 0 0 0 16384 1 FSlider 10 1 819 0 0 16384 1 FSlider 10 2 327 0 0 16384 1 FSlider 10 3 1638 0 0 16384 1 FSlider 10 4 11468 0 0 16384 1 FSlider 10 5 819 0 0 16384 1 FSlider 10 6 16384 0 1638 163840 1 Module 6 12 398 178 0 multivoice_chorus_1201 Multivoice Chorus Port 0 0 12 5 FSlider 12 0 346928 0 163840 655360 1 FSlider 12 1 4601 0 0 32768 1 FSlider 12 2 76287 0 0 81920 1 FSlider 12 3 123467 0 32768 491520 1 FSlider 12 4 -159615 0 -327680 0 1 LSlider 12 0 8 1 Module 6 13 938 164 0 cmt Freeverb (Version 3) Port 0 0 13 9 Port 1 0 13 9 FSlider 13 0 14898 0 0 16384 1 FSlider 13 1 -44273 1 -113175 0 1 FSlider 13 2 5051 0 0 16384 1 FSlider 13 3 2080 0 0 16384 1 FSlider 13 4 16384 0 0 16384 1 CheckBox 13 0 0 1 Module 15 14 540 289 0 0 Port 0 1 14 16 FSlider 14 0 3286 0 0 163840 1 FSlider 14 1 3286 0 0 163840 1 Module 10 16 41 49 0 0 FSlider 16 0 129 0 -16384 16384 1 FSMIDI 16 0 13 0 0 ISlider 16 0 24 1 ComboBox 16 0 0 1 ams-2.0.1/demos/example_bode_wail.ams0000664000076400007640000000405507770061731014512 00000000000000Module 6 1 274 229 0 bode_shifter_cv_1432 Bode frequency shifter (CV) Port 0 0 1 20 Port 1 0 1 4 FSlider 1 0 10874336 0 0 81920000 1 FSlider 1 1 -2658 0 -16384 16384 1 FSlider 1 2 3963 0 0 16384 1 Module 7 2 878 335 0 0 Port 0 0 2 10 Port 1 1 2 10 FSlider 2 0 8192 0 0 16384 1 FSlider 2 1 8192 0 0 16384 1 FSlider 2 2 8192 0 0 16384 1 ComboBox 2 0 1 1 Module 1 3 154 27 0 0 Port 1 0 3 11 FSlider 3 0 659 0 0 16384 1 FSlider 3 1 1638 0 0 163840 1 FSlider 3 2 0 0 0 163840 1 FSlider 3 3 5818 0 1638 14745 1 FSlider 3 4 0 0 0 16384 1 FSlider 3 5 0 0 0 102940 1 ISlider 3 0 5 1 ISlider 3 1 1 1 ISlider 3 2 2 1 ComboBox 3 0 0 1 Module 3 4 151 316 0 0 FSlider 4 0 1638400 0 0 1638400 1 FSlider 4 1 0 0 0 102940 1 Module 6 5 444 355 0 bode_shifter_cv_1432 Bode frequency shifter (CV) Port 0 1 5 1 Port 1 1 5 6 FSlider 5 0 1642378 0 0 8699469 1 FSlider 5 1 14354 0 -16384 16384 1 FSlider 5 2 16384 0 0 16384 0 Module 3 6 299 364 0 0 FSlider 6 0 1536906 0 0 1638400 1 FSlider 6 1 0 0 0 102940 1 Module 8 7 605 296 2 0 Port 0 0 7 1 Port 1 2 7 5 FSlider 7 0 16384 0 0 32768 1 FSlider 7 1 16384 0 0 32768 1 FSlider 7 2 16384 0 0 32768 1 Module 6 10 707 334 0 gverb_1216 GVerb Port 0 0 10 7 FSlider 10 0 1335879 0 16384 4915200 1 FSlider 10 1 804890 0 1638 5898240 1 FSlider 10 2 10297 0 0 16384 1 FSlider 10 3 964 0 0 16384 1 FSlider 10 4 -305361 0 -1146880 0 1 FSlider 10 5 -426085 0 -1146880 0 1 FSlider 10 6 -379926 0 -1146880 0 1 Module 3 11 17 3 0 0 FSlider 11 0 136 0 0 4206 1 FSlider 11 1 68627 0 0 102940 1 Module 6 17 826 223 0 fad_delay_1192 Fractionally Addressed Delay Line Port 0 0 17 10 FSlider 17 0 10305 0 1638 163840 1 FSlider 17 1 -443577 0 -1146880 0 1 Module 17 19 19 194 0 0 FSlider 19 0 8192 0 0 16384 1 FSlider 19 1 8192 0 0 16384 1 FSlider 19 2 8192 0 0 16384 1 Module 8 20 499 25 4 0 Port 0 0 20 17 Port 1 1 20 3 Port 2 0 20 19 FSlider 20 0 16384 0 0 32768 1 FSlider 20 1 16259 0 0 32768 1 FSlider 20 2 16176 0 0 32768 1 FSlider 20 3 16384 0 0 32768 1 FSlider 20 4 16384 0 0 32768 1 Comment 0 0 267 22 200 170 #PARA# 0 0 0 This patch has been contributed by Steve Harris. #ARAP# ams-2.0.1/demos/example_env_vcf.ams0000644000076400007640000000400211146403161014166 00000000000000Module 7 1 634 76 0 0 Port 0 0 1 4 Port 1 0 1 4 FSlider 1 0 8192 0 0 16384 1 FSlider 1 1 16384 0 0 16384 1 FSlider 1 2 16384 0 0 16384 1 ComboBox 1 0 1 1 Module 11 3 188 48 0 0 Port 0 0 3 9 FSlider 3 0 0 0 0 16384 1 FSlider 3 1 935 0 0 16384 1 FSlider 3 2 98 0 0 16384 1 FSlider 3 3 640 0 0 16384 1 FSlider 3 4 7479 0 0 16384 1 FSlider 3 5 819 0 0 16384 1 FSlider 3 6 16384 0 1638 163840 1 Module 2 4 516 40 0 0 Port 0 0 4 3 Port 2 0 4 6 FSlider 4 0 0 0 0 163840 1 FSlider 4 1 0 0 0 163840 1 FSlider 4 2 8192 0 0 32768 1 FSlider 4 3 8192 0 0 32768 1 FSlider 4 4 26759 0 0 32768 1 Module 1 5 257 225 0 0 Port 1 1 5 9 Port 2 0 5 7 Port 4 1 5 7 FSlider 5 0 0 0 0 16384 1 FSlider 5 1 -37725 1 -113176 37725 1 FSlider 5 2 0 0 0 163840 1 FSlider 5 3 8192 0 163 16220 1 FSlider 5 4 1574 0 0 163840 1 FSlider 5 5 0 0 0 163840 1 ISlider 5 0 1 1 ISlider 5 1 1 1 ISlider 5 2 1 1 ComboBox 5 0 0 1 Module 9 6 401 152 0 0 Port 0 3 6 5 Port 1 1 6 9 Port 2 1 6 3 FSlider 6 0 7380 0 0 163840 1 FSlider 6 1 59626 0 37393 91693 1 FSMIDI 6 1 10 0 1 FSlider 6 2 23617 0 0 163840 1 FSlider 6 3 0 0 0 163840 1 FSlider 6 4 15117 0 163 16384 1 FSlider 6 5 0 0 0 16384 1 ComboBox 6 0 6 1 Module 3 7 128 251 0 0 Port 0 0 7 9 FSlider 7 0 30915 1 -75451 75451 1 FSlider 7 1 0 0 0 102940 1 Module 10 9 6 23 0 0 FSlider 9 0 129 0 -16384 16384 1 FSMIDI 9 0 13 0 0 ISlider 9 0 24 1 ComboBox 9 0 0 1 Comment 0 0 386 318 306 182 #PARA# 0 0 0 Here, both the pulse width and the frequency of the VCO wave are modulated by a LFO. The inverse envelope modifies the cutoff frequency of the VCF. You can reduce (or stop) this effect with the "Exp. FM Gain" slider of the VCF. #ARAP# #PARA# 0 0 1 #ARAP# #PARA# 0 0 2 Try out the pitchbender and modulation wheels! #ARAP# #PARA# 0 0 3 #ARAP# #PARA# 0 0 4 #ARAP# #PARA# 0 0 5 #ARAP# #PARA# 0 0 6 #ARAP# #PARA# 0 0 7 #ARAP# #PARA# 0 0 8 #ARAP# #PARA# 0 0 9 #ARAP# #PARA# 0 0 10 #ARAP# #PARA# 0 0 11 #ARAP# #PARA# 0 0 12 #ARAP# #PARA# 0 0 13 #ARAP# #PARA# 0 0 14 #ARAP# #PARA# 0 0 15 #ARAP# #PARA# 0 0 16 #ARAP# ams-2.0.1/demos/chorus_drops.ams0000664000076400007640000000504710047700633013556 00000000000000Module 1 1 185 44 0 0 ColorP 1 1 1 4 250 200 50 180 180 180 FSlider 1 0 0 0 0 16384 1 FSlider 1 1 8192 0 1638 14745 1 FSlider 1 2 0 0 0 16384 1 FSlider 1 3 0 0 0 102940 1 FSlider 1 4 0 0 0 163840 1 FSlider 1 5 0 0 0 163840 1 ISlider 1 0 1 1 ISlider 1 1 1 1 ISlider 1 2 1 1 ComboBox 1 0 0 1 Module 7 2 614 334 0 0 ColorP 0 0 2 5 250 200 50 180 180 180 ColorP 1 1 2 5 250 200 50 180 180 180 FSlider 2 0 2879 0 0 16384 1 FSlider 2 1 8192 0 0 16384 1 FSlider 2 2 8192 0 0 16384 1 ComboBox 2 0 1 1 Module 6 3 437 40 0 cs_chorus Chorus2 ColorP 0 0 3 7 250 200 50 180 180 180 FSlider 3 0 275853 0 0 491520 1 FSlider 3 1 17997 1 -95176 17999 1 FSlider 3 2 11703 0 0 163840 1 FSlider 3 3 35125 1 -75451 37725 1 FSlider 3 4 1881 0 0 49152 1 Module 10 4 7 58 0 0 FSlider 4 0 0 0 -16384 16384 1 ISlider 4 0 12 1 ComboBox 4 0 0 1 Module 6 5 294 386 0 gverb_1216 gverb ColorP 0 0 5 9 250 200 50 180 180 180 FSlider 5 0 1978410 0 16384 4915200 1 FSlider 5 1 106934 0 1638 5898240 1 FSlider 5 2 0 0 0 16384 1 FSlider 5 3 9279 0 0 16384 1 FSlider 5 4 0 0 -1146880 0 1 FSlider 5 5 -140434 0 -1146880 0 1 FSlider 5 6 -157989 0 -1146880 0 1 Module 11 6 68 346 0 0 ColorP 0 0 6 4 250 200 50 180 180 180 FSlider 6 0 0 0 0 16384 1 FSlider 6 1 819 0 0 16384 1 FSlider 6 2 327 0 0 16384 1 FSlider 6 3 1638 0 0 16384 1 FSlider 6 4 11468 0 0 16384 1 FSlider 6 5 819 0 0 16384 1 FSlider 6 6 16384 0 1638 163840 1 Module 2 7 307 36 1 0 ColorP 0 0 7 6 250 200 50 180 180 180 ColorP 2 3 7 1 250 200 50 180 180 180 FSlider 7 0 -113175 1 -113176 37725 1 FSlider 7 1 -113175 1 -113176 37725 1 FSlider 7 2 0 1 -113176 11356 1 FSlider 7 3 0 1 -113176 11356 1 FSlider 7 4 0 1 -113176 11356 1 Module 6 9 302 236 0 mvclpf24 Mvclpf-3 ColorP 0 0 9 3 250 200 50 180 180 180 ColorP 1 1 9 4 250 200 50 180 180 180 ColorP 2 0 9 10 250 200 50 180 180 180 ColorP 3 1 9 10 250 200 50 180 180 180 FSlider 9 0 63081 0 -983040 163840 1 FSlider 9 1 -31130 0 -81920 81920 1 FSlider 9 2 90931 0 0 163840 1 FSlider 9 3 13844 0 0 16384 1 FSlider 9 4 1651 0 0 16384 1 FSlider 9 5 131453 0 -245760 245760 1 Module 22 10 148 294 0 0 ColorP 0 0 10 4 250 200 50 180 180 180 ColorP 1 3 10 4 250 200 50 180 180 180 FSlider 10 0 16384 0 1638 163840 1 FSlider 10 1 0 0 0 16384 1 FSlider 10 2 0 0 0 16384 1 FSlider 10 3 53 0 0 16384 1 FSlider 10 4 8192 0 0 16384 1 FSlider 10 5 1458 0 0 16384 1 FSlider 10 6 0 0 0 16384 1 FSlider 10 7 239 0 0 16384 1 FSlider 10 8 14745 0 0 16384 1 FSlider 10 9 1638 0 0 16384 1 FSlider 10 10 2810 0 0 16384 1 FSlider 10 11 8192 0 0 16384 1 FSlider 10 12 819 0 0 16384 1 FSlider 10 13 3276 0 0 16384 1 FSlider 10 14 819 0 0 16384 1 ams-2.0.1/demos/example_dynamicwaves_8_seq.ams0000664000076400007640000001361507770061731016360 00000000000000Module 21 1 174 40 8 0 Port 0 1 1 6 Port 3 0 1 6 FSlider 1 0 0 0 0 16384 1 FSlider 1 1 0 0 0 163840 1 FSlider 1 2 0 0 0 163840 1 FSlider 1 3 1638 0 1638 163840 1 FSlider 1 4 16384 0 0 16384 1 FSlider 1 5 16384 0 0 16384 1 FSlider 1 6 16384 0 0 16384 1 FSlider 1 7 16384 0 0 16384 1 FSlider 1 8 16384 0 0 16384 1 FSlider 1 9 16384 0 0 16384 1 FSlider 1 10 16384 0 0 16384 1 FSlider 1 11 16384 0 0 16384 1 FSlider 1 12 154 0 0 16384 1 FSlider 1 13 0 0 0 102940 1 FSlider 1 14 0 0 0 16384 1 FSlider 1 15 0 0 0 102940 1 FSlider 1 16 116 0 0 16384 1 FSlider 1 17 0 0 0 102940 1 FSlider 1 18 77 0 0 16384 1 FSlider 1 19 0 0 0 102940 1 FSlider 1 20 39 0 0 16384 1 FSlider 1 21 0 0 0 102940 1 FSlider 1 22 116 0 0 16384 1 FSlider 1 23 0 0 0 102940 1 FSlider 1 24 39 0 0 16384 1 FSlider 1 25 0 0 0 102940 1 FSlider 1 26 0 0 0 16384 1 FSlider 1 27 0 0 0 102940 1 FSlider 1 28 3082 0 0 16384 1 FSlider 1 29 2636 0 0 16384 1 FSlider 1 30 11112 0 0 16384 1 FSlider 1 31 4826 0 0 16384 1 FSlider 1 32 1987 0 0 16384 1 FSlider 1 33 5150 0 0 16384 1 FSlider 1 34 14745 0 0 16384 1 FSlider 1 35 1638 0 0 16384 1 FSlider 1 36 13107 0 0 16384 1 FSlider 1 37 163 0 0 16384 1 FSlider 1 38 11468 0 0 16384 1 FSlider 1 39 163 0 0 16384 1 FSlider 1 40 8192 0 0 16384 1 FSlider 1 41 163 0 0 16384 1 FSlider 1 42 0 0 0 16384 1 FSlider 1 43 11013 0 0 16384 1 FSlider 1 44 8192 0 0 16384 1 FSlider 1 45 163 0 0 16384 1 FSlider 1 46 16384 0 0 16384 1 FSlider 1 47 1638 0 0 16384 1 FSlider 1 48 14745 0 0 16384 1 FSlider 1 49 1638 0 0 16384 1 FSlider 1 50 12029 0 0 16384 1 FSlider 1 51 163 0 0 16384 1 FSlider 1 52 11468 0 0 16384 1 FSlider 1 53 163 0 0 16384 1 FSlider 1 54 8192 0 0 16384 1 FSlider 1 55 163 0 0 16384 1 FSlider 1 56 0 0 0 16384 1 FSlider 1 57 2798 0 0 16384 1 FSlider 1 58 8192 0 0 16384 1 FSlider 1 59 1906 0 0 16384 1 FSlider 1 60 10869 0 0 16384 1 FSlider 1 61 1638 0 0 16384 1 FSlider 1 62 14745 0 0 16384 1 FSlider 1 63 4704 0 0 16384 1 FSlider 1 64 11095 0 0 16384 1 FSlider 1 65 2879 0 0 16384 1 FSlider 1 66 7543 0 0 16384 1 FSlider 1 67 4015 0 0 16384 1 FSlider 1 68 13140 0 0 16384 1 FSlider 1 69 3569 0 0 16384 1 FSlider 1 70 0 0 0 16384 1 FSlider 1 71 163 0 0 16384 1 FSlider 1 72 8192 0 0 16384 1 FSlider 1 73 163 0 0 16384 1 FSlider 1 74 16384 0 0 16384 1 FSlider 1 75 1638 0 0 16384 1 FSlider 1 76 14745 0 0 16384 1 FSlider 1 77 1638 0 0 16384 1 FSlider 1 78 13107 0 0 16384 1 FSlider 1 79 163 0 0 16384 1 FSlider 1 80 11468 0 0 16384 1 FSlider 1 81 163 0 0 16384 1 FSlider 1 82 8192 0 0 16384 1 FSlider 1 83 163 0 0 16384 1 FSlider 1 84 0 0 0 16384 1 FSlider 1 85 163 0 0 16384 1 FSlider 1 86 8192 0 0 16384 1 FSlider 1 87 163 0 0 16384 1 FSlider 1 88 16384 0 0 16384 1 FSlider 1 89 1638 0 0 16384 1 FSlider 1 90 14745 0 0 16384 1 FSlider 1 91 1638 0 0 16384 1 FSlider 1 92 13107 0 0 16384 1 FSlider 1 93 163 0 0 16384 1 FSlider 1 94 11468 0 0 16384 1 FSlider 1 95 163 0 0 16384 1 FSlider 1 96 8192 0 0 16384 1 FSlider 1 97 163 0 0 16384 1 FSlider 1 98 0 0 0 16384 1 FSlider 1 99 163 0 0 16384 1 FSlider 1 100 8192 0 0 16384 1 FSlider 1 101 163 0 0 16384 1 FSlider 1 102 16384 0 0 16384 1 FSlider 1 103 1638 0 0 16384 1 FSlider 1 104 14745 0 0 16384 1 FSlider 1 105 1638 0 0 16384 1 FSlider 1 106 10722 0 0 16384 1 FSlider 1 107 163 0 0 16384 1 FSlider 1 108 11468 0 0 16384 1 FSlider 1 109 163 0 0 16384 1 FSlider 1 110 8192 0 0 16384 1 FSlider 1 111 163 0 0 16384 1 FSlider 1 112 4742 0 0 16384 1 FSlider 1 113 2352 0 0 16384 1 FSlider 1 114 8192 0 0 16384 1 FSlider 1 115 5359 0 0 16384 1 FSlider 1 116 16384 0 0 16384 1 FSlider 1 117 1638 0 0 16384 1 FSlider 1 118 14745 0 0 16384 1 FSlider 1 119 2544 0 0 16384 1 FSlider 1 120 13107 0 0 16384 1 FSlider 1 121 3855 0 0 16384 1 FSlider 1 122 14688 0 0 16384 1 FSlider 1 123 7633 0 0 16384 1 FSlider 1 124 10023 0 0 16384 1 FSlider 1 125 2159 0 0 16384 1 FSlider 1 126 771 0 0 16384 1 FSlider 1 127 3238 0 0 16384 1 FSlider 1 128 8192 0 0 16384 1 FSlider 1 129 3855 0 0 16384 1 FSlider 1 130 8790 0 0 16384 1 FSlider 1 131 4934 0 0 16384 1 FSlider 1 132 14745 0 0 16384 1 FSlider 1 133 5590 0 0 16384 1 FSlider 1 134 4915 0 0 16384 1 FSlider 1 135 5474 0 0 16384 1 FSlider 1 136 7903 0 0 16384 1 FSlider 1 137 3277 0 0 16384 1 FSlider 1 138 8192 0 0 16384 1 FSlider 1 139 163 0 0 16384 1 ISlider 1 0 1 1 ISlider 1 1 0 1 ISlider 1 2 1 1 ISlider 1 3 1 1 ISlider 1 4 0 1 ISlider 1 5 2 1 ISlider 1 6 1 1 ISlider 1 7 0 1 ISlider 1 8 3 1 ISlider 1 9 1 1 ISlider 1 10 0 1 ISlider 1 11 4 1 ISlider 1 12 1 1 ISlider 1 13 0 1 ISlider 1 14 5 1 ISlider 1 15 1 1 ISlider 1 16 0 1 ISlider 1 17 6 1 ISlider 1 18 1 1 ISlider 1 19 0 1 ISlider 1 20 7 1 ISlider 1 21 1 1 ISlider 1 22 0 1 ISlider 1 23 8 1 ISlider 1 24 1 1 ComboBox 1 0 3 1 CMIDI 1 0 10 0 1 ComboBox 1 1 0 1 ComboBox 1 2 0 1 ComboBox 1 3 0 1 ComboBox 1 4 0 1 ComboBox 1 5 0 1 ComboBox 1 6 0 1 ComboBox 1 7 0 1 Module 7 3 607 42 0 0 Port 0 0 3 4 Port 1 1 3 4 FSlider 3 0 8192 0 0 16384 1 FSlider 3 1 8192 0 0 16384 1 FSlider 3 2 8192 0 0 16384 1 ComboBox 3 0 1 1 Module 6 4 329 43 0 gverb_1216 GVerb Port 0 0 4 7 FSlider 4 0 2634717 0 16384 4915200 1 FSlider 4 1 59733 0 1638 5898240 1 FSlider 4 2 6174 0 0 16384 1 FSlider 4 3 13075 0 0 16384 1 FSlider 4 4 0 0 -1146880 0 1 FSlider 4 5 -81920 0 -1146880 0 1 FSlider 4 6 -206212 0 -1146880 0 1 Module 12 6 23 40 8 0 ISlider 6 0 24 1 ISlider 6 1 100 1 ISlider 6 2 0 1 ISlider 6 3 63 1 ISlider 6 4 3 1 ISlider 6 5 63 1 ISlider 6 6 0 1 ISlider 6 7 63 1 ISlider 6 8 7 1 ISlider 6 9 63 1 ISlider 6 10 9 1 ISlider 6 11 63 1 ISlider 6 12 0 1 ISlider 6 13 63 1 ISlider 6 14 2 1 ISlider 6 15 63 1 ISlider 6 16 6 1 ISlider 6 17 63 1 ComboBox 6 0 2 1 CheckBox 6 0 1 1 CheckBox 6 1 1 1 CheckBox 6 2 1 1 CheckBox 6 3 1 1 CheckBox 6 4 1 1 CheckBox 6 5 1 1 CheckBox 6 6 1 1 CheckBox 6 7 1 1 Module 6 7 330 230 1 cs_chorus Chorus2 Port 0 0 7 1 Port 3 1 7 8 FSlider 7 0 20581 0 0 491520 1 FSlider 7 1 37725 1 -95176 37725 1 FSlider 7 2 4439 0 0 163840 1 FSlider 7 3 48294 1 -75451 55725 1 FSlider 7 4 847 0 0 49152 1 Module 3 8 176 228 0 0 FSlider 8 0 766 0 0 31109 1 FSlider 8 1 0 0 0 102940 1 ams-2.0.1/demos/Makefile.am0000664000076400007640000000506011051107137012365 00000000000000# Makefile.am for ams demosdatadir = $(pkgdatadir)/demos dist_demosdata_DATA = \ bass_advenv.ams \ bass.ams \ bass_reverb.ams \ chorus_drops2.ams \ chorus_drops.ams \ classical.ams \ classical_reverb.ams \ example_2vco.ams \ example_3vco.ams \ example_3vco_bode.ams \ example_advmcv.ams \ example_ams_demo.ams \ example_ams_demo_bode.ams \ example_ams_demo_scala.ams \ example_ams_demo_scope_spectrum.ams \ example_ams_demo_scope_spectrum_drums.ams \ example_ams_demo_scope_spectrum_mcp_phaser.ams \ example_ams_demo_scope_spectrum_mcpvcf.ams \ example_barberpole.ams \ example_barberpole_phaser.ams \ example_barberpole_phaser_reverb.ams \ example_barberpole_phaser_up_down.ams \ example_barberpole_up_down.ams \ example_basic.ams \ example_basic_vcf.ams \ example_basic_vcf_gverb_mcpfilter_env.ams \ example_basic_vcf_gverb_mcpfilter_env_filtmod.ams \ example_basic_vcf_reverb.ams \ example_basic_vcf_reverb_filter_env.ams \ example_basic_vcf_reverb_mcpfilter_env.ams \ example_bode.ams \ example_bode_wail.ams \ example_burst_noise.ams \ example_capture.ams \ example_chorus.ams \ example_chorus_modwheel.ams \ example_cvs.ams \ example_dual_env.ams \ example_dynamicwaves_8.ams \ example_dynamicwaves_8_chorus.ams \ example_dynamicwaves_8_retrigger.ams \ example_dynamicwaves_8_seq.ams \ example_env_vcf.ams \ example_fm.ams \ example_full.ams \ example_full_midi.ams \ example_function.ams \ example_midiout_birds.ams \ example_midiout_controller.ams \ example_midiout_junglebirds.ams \ example_midiout_note.ams \ example_midiout_note_velocity.ams \ example_midiout_random.ams \ example_mvclpf_phaser_2poles.ams \ example_mvclpf_phaser.ams \ example_phaser.ams \ example_phaser_bassclang.ams \ example_phaser_basspad.ams \ example_portamento.ams \ example_random_major.ams \ example_random_major_chords.ams \ example_random_minor_chords.ams \ example_rectangle_pw.ams \ example_ringmod.ams \ example_simple_cembalo.ams \ example_strings.ams \ example_strings_high_reso.ams \ example_vcdoubledecay.ams \ example_vcEnvelope.ams \ example_vcEnvelope_exp.ams \ example_vcEnvelope_lin.ams \ example_vco_add.ams \ example_vcorgan_4.ams \ example_vcorgan_6.ams \ example_vcorgan_8.ams \ example_vc_panning.ams \ example_vc_panning_lfo.ams \ example_vcswitch.ams \ example_wind.ams \ JungleBird.ams \ living_phaser.ams \ organ01.ams \ organ02.ams \ organ03.ams \ phaser_wail.ams \ sequence01.ams \ sequence01b.ams \ sequence02.ams \ sequence02b.ams \ sequence02c.ams \ sequence03.ams \ sequence03b.ams \ SineSolo.ams ams-2.0.1/demos/example_midiout_controller.ams0000664000076400007640000001004507770061731016476 00000000000000Module 12 1 1 93 32 0 ISlider 1 0 2 1 ISlider 1 1 110 1 ISlider 1 2 20 1 ISlider 1 3 63 1 ISlider 1 4 24 1 ISlider 1 5 63 1 ISlider 1 6 27 1 ISlider 1 7 63 1 ISlider 1 8 32 1 ISlider 1 9 63 1 ISlider 1 10 32 1 ISlider 1 11 63 1 ISlider 1 12 27 1 ISlider 1 13 63 1 ISlider 1 14 24 1 ISlider 1 15 63 1 ISlider 1 16 20 1 ISlider 1 17 63 1 ISlider 1 18 19 1 ISlider 1 19 63 1 ISlider 1 20 22 1 ISlider 1 21 63 1 ISlider 1 22 27 1 ISlider 1 23 63 1 ISlider 1 24 34 1 ISlider 1 25 63 1 ISlider 1 26 34 1 ISlider 1 27 63 1 ISlider 1 28 27 1 ISlider 1 29 63 1 ISlider 1 30 22 1 ISlider 1 31 63 1 ISlider 1 32 19 1 ISlider 1 33 63 1 ISlider 1 34 20 1 ISlider 1 35 63 1 ISlider 1 36 24 1 ISlider 1 37 63 1 ISlider 1 38 27 1 ISlider 1 39 63 1 ISlider 1 40 32 1 ISlider 1 41 63 1 ISlider 1 42 32 1 ISlider 1 43 63 1 ISlider 1 44 27 1 ISlider 1 45 63 1 ISlider 1 46 24 1 ISlider 1 47 63 1 ISlider 1 48 20 1 ISlider 1 49 63 1 ISlider 1 50 15 1 ISlider 1 51 63 1 ISlider 1 52 22 1 ISlider 1 53 63 1 ISlider 1 54 27 1 ISlider 1 55 63 1 ISlider 1 56 39 1 ISlider 1 57 63 1 ISlider 1 58 39 1 ISlider 1 59 63 1 ISlider 1 60 27 1 ISlider 1 61 63 1 ISlider 1 62 22 1 ISlider 1 63 63 1 ISlider 1 64 15 1 ISlider 1 65 63 1 ComboBox 1 0 2 1 CheckBox 1 0 1 1 CheckBox 1 1 1 1 CheckBox 1 2 1 1 CheckBox 1 3 1 1 CheckBox 1 4 1 1 CheckBox 1 5 1 1 CheckBox 1 6 1 1 CheckBox 1 7 1 1 CheckBox 1 8 1 1 CheckBox 1 9 1 1 CheckBox 1 10 1 1 CheckBox 1 11 1 1 CheckBox 1 12 1 1 CheckBox 1 13 1 1 CheckBox 1 14 1 1 CheckBox 1 15 1 1 CheckBox 1 16 1 1 CheckBox 1 17 1 1 CheckBox 1 18 1 1 CheckBox 1 19 1 1 CheckBox 1 20 1 1 CheckBox 1 21 1 1 CheckBox 1 22 1 1 CheckBox 1 23 1 1 CheckBox 1 24 1 1 CheckBox 1 25 1 1 CheckBox 1 26 1 1 CheckBox 1 27 1 1 CheckBox 1 28 1 1 CheckBox 1 29 1 1 CheckBox 1 30 1 1 CheckBox 1 31 1 1 Module 7 2 331 411 0 0 Port 0 0 2 8 Port 1 1 2 8 FSlider 2 0 8192 0 0 16384 1 FSlider 2 1 8192 0 0 16384 1 FSlider 2 2 8192 0 0 16384 1 ComboBox 2 0 1 1 Module 1 3 105 272 0 0 Port 1 1 3 1 FSlider 3 0 0 0 0 16384 1 FSlider 3 1 1638 0 0 163840 1 FSlider 3 2 0 0 0 163840 1 FSlider 3 3 8192 0 1638 14745 1 FSlider 3 4 0 0 0 16384 1 FSlider 3 5 0 0 0 102940 1 ISlider 3 0 3 1 ISlider 3 1 1 1 ISlider 3 2 1 1 ComboBox 3 0 0 1 Module 9 4 227 219 0 0 Port 0 3 4 3 Port 1 1 4 1 Port 2 1 4 5 FSlider 4 0 12792 0 0 163840 1 FSlider 4 1 81182 0 0 163840 1 FSlider 4 2 49201 0 0 163840 1 FSlider 4 3 0 0 0 163840 1 FSlider 4 4 4206 0 163 16384 1 FSlider 4 5 0 0 0 16384 1 ComboBox 4 0 1 1 Module 11 5 206 73 0 0 Port 0 0 5 1 FSlider 5 0 0 0 0 16384 1 FSlider 5 1 -68618 1 -113175 0 1 FSMIDI 5 1 10 0 24 FSlider 5 2 295 0 0 16384 1 FSlider 5 3 -77529 1 -113175 0 1 FSMIDI 5 3 10 0 25 FSlider 5 4 0 0 0 16384 1 FSlider 5 5 815 0 0 16384 1 FSlider 5 6 16384 0 1638 163840 1 Module 2 6 347 140 0 0 Port 0 0 6 5 Port 2 0 6 4 FSlider 6 0 0 0 0 163840 1 FSlider 6 1 0 0 0 163840 1 FSlider 6 2 8192 0 0 16384 1 FSlider 6 3 8192 0 0 16384 1 FSlider 6 4 8192 0 0 16384 1 Module 6 8 337 317 0 cmt Freeverb (Version 3) Port 0 0 8 6 Port 1 0 8 6 FSlider 8 0 4601 0 0 16384 1 FSlider 8 1 -48967 1 -113176 0 1 FSlider 8 2 -25943 1 -113176 0 1 FSlider 8 3 -19781 1 -113176 0 1 FSlider 8 4 16384 0 0 16384 1 CheckBox 8 0 0 1 Module 3 10 492 20 0 0 FSlider 10 0 -43784 1 -75451 75451 1 FSlider 10 1 0 0 0 102940 1 Module 29 11 629 61 0 0 Port 0 1 11 10 Port 1 1 11 12 FSlider 11 0 67337 0 0 163840 1 FSlider 11 1 73771 0 0 163840 1 FSlider 11 2 8192 0 0 163840 1 ISlider 11 0 55 1 ISlider 11 1 70 1 ISlider 11 2 24 1 ISlider 11 3 25 1 ComboBox 11 0 0 1 ComboBox 11 1 0 1 Module 3 12 491 189 0 0 FSlider 12 0 -35966 1 -75451 75451 1 FSlider 12 1 0 0 0 102940 1 Comment 0 0 62 133 396 216 #PARA# 0 0 0 This patch demonstrates the MIDI controller mode of the MIDI Out module. If the Trigger input is not connected, controller events are emitted whenever the input signal of In 0 or In 1 changes. #ARAP# #PARA# 0 0 1 In this patch the controller events sent by the midiout module are bound to the Attack and Decay parameters of the envelope. If you connect the two readable MIDI ports of AlsaModularSynth using e.g. the kaconnect patchbay, you can see the envelope moving. #ARAP# ams-2.0.1/demos/example_mvclpf_phaser.ams0000664000076400007640000000316407770061731015416 00000000000000Module 6 1 344 314 0 mvclpf24 Mvclpf-4 Port 0 2 1 3 FSlider 1 0 5650 0 -983040 163840 1 FSlider 1 1 35109 0 -81920 81920 1 FSlider 1 2 0 0 0 163840 1 FSlider 1 3 7425 0 0 16384 1 FSlider 1 4 0 0 0 16384 1 FSlider 1 5 223968 0 -245760 245760 1 LSlider 1 0 4 1 LSMIDI 1 0 10 0 1 Module 6 2 343 162 0 cs_phaser Phaser1 Port 0 0 2 1 Port 1 0 2 8 Port 2 1 2 6 FSlider 2 0 -98465 0 -655360 163840 1 FSlider 2 1 -7264 0 -81920 81920 1 FSlider 2 2 24213 0 0 163840 1 FSlider 2 3 0 0 0 163840 1 FSlider 2 4 11784 0 -16384 16384 1 FSlider 2 5 8232 0 -16384 16384 1 LSlider 2 0 16 1 LSMIDI 2 0 13 0 0 Module 1 3 170 115 0 0 Port 1 1 3 7 FSlider 3 0 0 0 0 16384 1 FSlider 3 1 8192 0 1638 14745 1 FSlider 3 2 0 0 0 16384 1 FSlider 3 3 0 0 0 102940 1 FSlider 3 4 0 0 0 163840 1 FSlider 3 5 0 0 0 163840 1 ISlider 3 0 1 1 ISlider 3 1 1 1 ISlider 3 2 1 1 ComboBox 3 0 0 1 Module 7 4 592 251 0 0 Port 0 0 4 5 Port 1 0 4 5 FSlider 4 0 8192 0 0 16384 1 FSlider 4 1 8192 0 0 16384 1 FSlider 4 2 8192 0 0 16384 1 ComboBox 4 0 1 1 Module 2 5 628 77 1 0 Port 0 0 5 6 Port 2 0 5 2 FSlider 5 0 -113175 1 -113176 37725 1 FSlider 5 1 -113175 1 -113176 37725 1 FSlider 5 2 0 1 -113176 11356 1 FSlider 5 3 0 1 -113176 11356 1 FSlider 5 4 0 1 -113176 11356 1 Module 11 6 349 7 0 0 Port 0 0 6 7 FSlider 6 0 0 0 0 16384 1 FSlider 6 1 162 0 0 16384 1 FSlider 6 2 327 0 0 16384 1 FSlider 6 3 11234 0 0 16384 1 FSlider 6 4 6773 0 0 16384 1 FSlider 6 5 3650 0 0 16384 1 FSlider 6 6 16384 0 1638 163840 1 Module 10 7 7 41 0 0 FSlider 7 0 0 0 -16384 16384 1 ISlider 7 0 24 1 ComboBox 7 0 0 1 Module 15 8 45 234 0 0 Port 0 1 8 7 FSlider 8 0 23002 0 0 163840 1 FSlider 8 1 20581 0 0 163840 1 ams-2.0.1/demos/example_barberpole_phaser.ams0000664000076400007640000001755610075726624016257 00000000000000Module 6 1 399 4 2 blvco Saw-VCO ColorP 0 0 1 4 250 200 50 180 180 180 FSlider 1 0 0 0 0 16384 1 FSlider 1 1 0 0 0 65536 1 FSlider 1 2 0 0 0 65536 1 FSlider 1 3 12055 0 0 16384 1 LSlider 1 0 -1 1 Module 43 3 38 278 0 0 FSlider 3 0 -31443 1 -75451 49082 1 FSlider 3 1 26369 1 -75451 26369 1 FSlider 3 2 0 1 -75451 26369 1 ComboBox 3 0 0 1 Module 42 4 201 52 2 0 ColorP 0 1 4 6 250 200 50 180 180 180 FSlider 4 0 -86807 1 -150902 -40582 1 FSlider 4 1 -75451 1 -75451 0 1 FSlider 4 2 0 1 -75451 37725 1 FSlider 4 3 -86807 1 -150902 -40582 1 FSlider 4 4 -75451 1 -75451 0 1 FSlider 4 5 17999 1 -75451 37725 1 ComboBox 4 0 0 1 ComboBox 4 1 0 1 CheckBox 4 0 0 1 Module 35 6 11 18 0 0 FSlider 6 0 0 0 -16384 16384 1 ISlider 6 0 0 1 ISlider 6 1 0 1 ISlider 6 2 0 1 ISlider 6 3 0 1 ISlider 6 4 0 1 Module 2 7 1075 41 0 0 ColorP 0 0 7 32 250 200 50 180 180 180 ColorP 2 0 7 16 250 200 50 180 180 180 FSlider 7 0 0 0 0 16384 1 FSlider 7 1 0 0 0 16384 1 FSlider 7 2 16384 0 0 32768 1 FSlider 7 3 16384 0 0 32768 1 FSlider 7 4 16384 0 0 32768 1 Module 6 8 1232 9 0 cs_phaser Phaser1 ColorP 0 0 8 7 250 200 50 180 180 180 ColorP 1 0 8 3 250 200 50 180 180 180 FSlider 8 0 0 0 -655360 163840 1 FSlider 8 1 -38637 0 -98304 98304 1 FSlider 8 2 0 0 0 163840 1 FSlider 8 3 0 0 0 163840 1 FSlider 8 4 14319 0 -16384 16384 1 FSlider 8 5 8070 0 -16384 16384 1 LSlider 8 0 6 1 FSMIDI 8 4 13 0 0 LSMIDI 8 0 10 0 1 Module 6 9 1232 132 0 cs_phaser Phaser1 ColorP 0 0 9 7 250 200 50 180 180 180 ColorP 1 1 9 3 250 200 50 180 180 180 FSlider 9 0 0 0 -655360 163840 1 FSlider 9 1 -38637 0 -98304 98304 1 FSlider 9 2 0 0 0 163840 1 FSlider 9 3 0 0 0 163840 1 FSlider 9 4 14319 0 -16384 16384 1 FSlider 9 5 8233 0 -16384 16384 1 LSlider 9 0 6 1 FSMIDI 9 4 13 0 0 LSMIDI 9 0 10 0 1 Module 6 10 1231 255 0 cs_phaser Phaser1 ColorP 0 0 10 7 250 200 50 180 180 180 ColorP 1 2 10 3 250 200 50 180 180 180 FSlider 10 0 0 0 -655360 163840 1 FSlider 10 1 -38637 0 -98304 98304 1 FSlider 10 2 0 0 0 163840 1 FSlider 10 3 0 0 0 163840 1 FSlider 10 4 14319 0 -16384 16384 1 FSlider 10 5 8233 0 -16384 16384 1 LSlider 10 0 6 1 FSMIDI 10 4 13 0 0 LSMIDI 10 0 10 0 1 Module 6 11 1232 379 0 cs_phaser Phaser1 ColorP 0 0 11 7 250 200 50 180 180 180 ColorP 1 3 11 3 250 200 50 180 180 180 FSlider 11 0 0 0 -655360 163840 1 FSlider 11 1 -38637 0 -98304 98304 1 FSlider 11 2 0 0 0 163840 1 FSlider 11 3 0 0 0 163840 1 FSlider 11 4 14319 0 -16384 16384 1 FSlider 11 5 8233 0 -16384 16384 1 LSlider 11 0 6 1 FSMIDI 11 4 13 0 0 LSMIDI 11 0 10 0 1 Module 6 12 1232 503 0 cs_phaser Phaser1 ColorP 0 0 12 7 250 200 50 180 180 180 ColorP 1 4 12 3 250 200 50 180 180 180 FSlider 12 0 0 0 -655360 163840 1 FSlider 12 1 -38637 0 -98304 98304 1 FSlider 12 2 0 0 0 163840 1 FSlider 12 3 0 0 0 163840 1 FSlider 12 4 14319 0 -16384 16384 1 FSlider 12 5 8233 0 -16384 16384 1 LSlider 12 0 6 1 FSMIDI 12 4 13 0 0 LSMIDI 12 0 10 0 1 Module 6 13 1232 626 0 cs_phaser Phaser1 ColorP 0 0 13 7 250 200 50 180 180 180 ColorP 1 5 13 3 250 200 50 180 180 180 FSlider 13 0 0 0 -655360 163840 1 FSlider 13 1 -38637 0 -98304 98304 1 FSlider 13 2 0 0 0 163840 1 FSlider 13 3 0 0 0 163840 1 FSlider 13 4 14319 0 -16384 16384 1 FSlider 13 5 8233 0 -16384 16384 1 LSlider 13 0 6 1 FSMIDI 13 4 13 0 0 LSMIDI 13 0 10 0 1 Module 6 14 1232 750 0 cs_phaser Phaser1 ColorP 0 0 14 7 250 200 50 180 180 180 ColorP 1 6 14 3 250 200 50 180 180 180 FSlider 14 0 0 0 -655360 163840 1 FSlider 14 1 -38637 0 -98304 98304 1 FSlider 14 2 0 0 0 163840 1 FSlider 14 3 0 0 0 163840 1 FSlider 14 4 14319 0 -16384 16384 1 FSlider 14 5 8233 0 -16384 16384 1 LSlider 14 0 6 1 FSMIDI 14 4 13 0 0 LSMIDI 14 0 10 0 1 Module 6 15 1232 873 0 cs_phaser Phaser1 ColorP 0 0 15 7 250 200 50 180 180 180 ColorP 1 7 15 3 250 200 50 180 180 180 FSlider 15 0 0 0 -655360 163840 1 FSlider 15 1 -38637 0 -98304 98304 1 FSlider 15 2 0 0 0 163840 1 FSlider 15 3 0 0 0 163840 1 FSlider 15 4 14319 0 -16384 16384 1 FSlider 15 5 8233 0 -16384 16384 1 LSlider 15 0 6 1 FSMIDI 15 4 13 0 0 LSMIDI 15 0 10 0 1 Module 6 16 813 137 2 mvclpf24 Mvclpf-4 ColorP 0 0 16 18 250 200 50 180 180 180 ColorP 1 1 16 4 250 200 50 180 180 180 ColorP 2 0 16 32 250 200 50 180 180 180 FSlider 16 0 0 0 -983040 163840 1 FSlider 16 1 49397 0 -98304 98304 1 FSlider 16 2 56244 0 0 163840 1 FSlider 16 3 0 0 0 16384 1 FSlider 16 4 0 0 0 16384 1 FSlider 16 5 -8559 0 -245760 245760 1 LSlider 16 0 4 1 Module 6 17 399 134 2 blvco Saw-VCO ColorP 0 1 17 4 250 200 50 180 180 180 FSlider 17 0 73 0 0 16384 1 FSlider 17 1 0 0 0 65536 1 FSlider 17 2 0 0 0 65536 1 FSlider 17 3 9847 0 0 16384 1 LSlider 17 0 0 1 Module 8 18 673 55 2 0 ColorP 0 0 18 1 250 200 50 180 180 180 ColorP 1 0 18 17 250 200 50 180 180 180 FSlider 18 0 16469 0 0 32768 1 FSlider 18 1 16384 0 0 32768 1 FSlider 18 2 16384 0 0 32768 1 Module 8 19 1729 404 8 0 ColorP 0 0 19 21 250 200 50 180 180 180 ColorP 1 0 19 22 250 200 50 180 180 180 ColorP 2 0 19 23 250 200 50 180 180 180 ColorP 3 0 19 24 250 200 50 180 180 180 ColorP 4 0 19 25 250 200 50 180 180 180 ColorP 5 0 19 26 250 200 50 180 180 180 ColorP 6 0 19 27 250 200 50 180 180 180 ColorP 7 0 19 28 250 200 50 180 180 180 FSlider 19 0 2037 0 0 32768 1 FSlider 19 1 16384 0 0 32768 1 FSlider 19 2 16384 0 0 32768 1 FSlider 19 3 16384 0 0 32768 1 FSlider 19 4 16384 0 0 32768 1 FSlider 19 5 16384 0 0 32768 1 FSlider 19 6 16384 0 0 32768 1 FSlider 19 7 16384 0 0 32768 1 FSlider 19 8 16384 0 0 32768 1 Module 7 20 1914 534 0 0 ColorP 0 0 20 19 250 200 50 180 180 180 ColorP 1 0 20 19 250 200 50 180 180 180 FSlider 20 0 8192 0 0 16384 1 FSlider 20 1 8192 0 0 16384 1 FSlider 20 2 8192 0 0 16384 1 ComboBox 20 0 0 1 Module 2 21 1556 4 0 0 ColorP 0 8 21 3 250 200 50 180 180 180 ColorP 2 0 21 8 250 200 50 180 180 180 FSlider 21 0 0 0 0 16384 1 FSlider 21 1 0 0 0 16384 1 FSlider 21 2 16384 0 0 32768 1 FSlider 21 3 16384 0 0 32768 1 FSlider 21 4 16384 0 0 32768 1 Module 2 22 1557 150 0 0 ColorP 0 9 22 3 250 200 50 180 180 180 ColorP 2 0 22 9 250 200 50 180 180 180 FSlider 22 0 0 0 0 16384 1 FSlider 22 1 0 0 0 16384 1 FSlider 22 2 16384 0 0 32768 1 FSlider 22 3 16384 0 0 32768 1 FSlider 22 4 16384 0 0 32768 1 Module 2 23 1558 294 0 0 ColorP 0 10 23 3 250 200 50 180 180 180 ColorP 2 0 23 10 250 200 50 180 180 180 FSlider 23 0 0 0 0 16384 1 FSlider 23 1 0 0 0 16384 1 FSlider 23 2 16384 0 0 32768 1 FSlider 23 3 16384 0 0 32768 1 FSlider 23 4 16384 0 0 32768 1 Module 2 24 1560 438 0 0 ColorP 0 11 24 3 250 200 50 180 180 180 ColorP 2 0 24 11 250 200 50 180 180 180 FSlider 24 0 0 0 0 16384 1 FSlider 24 1 0 0 0 16384 1 FSlider 24 2 16384 0 0 32768 1 FSlider 24 3 16384 0 0 32768 1 FSlider 24 4 16384 0 0 32768 1 Module 2 25 1559 583 0 0 ColorP 0 12 25 3 250 200 50 180 180 180 ColorP 2 0 25 12 250 200 50 180 180 180 FSlider 25 0 0 0 0 16384 1 FSlider 25 1 0 0 0 16384 1 FSlider 25 2 16384 0 0 32768 1 FSlider 25 3 16384 0 0 32768 1 FSlider 25 4 16384 0 0 32768 1 Module 2 26 1557 731 0 0 ColorP 0 13 26 3 250 200 50 180 180 180 ColorP 2 0 26 13 250 200 50 180 180 180 FSlider 26 0 0 0 0 16384 1 FSlider 26 1 0 0 0 16384 1 FSlider 26 2 16384 0 0 32768 1 FSlider 26 3 16384 0 0 32768 1 FSlider 26 4 16384 0 0 32768 1 Module 2 27 1557 885 0 0 ColorP 0 14 27 3 250 200 50 180 180 180 ColorP 2 0 27 14 250 200 50 180 180 180 FSlider 27 0 0 0 0 16384 1 FSlider 27 1 0 0 0 16384 1 FSlider 27 2 16384 0 0 32768 1 FSlider 27 3 16384 0 0 32768 1 FSlider 27 4 16384 0 0 32768 1 Module 2 28 1556 1035 0 0 ColorP 0 15 28 3 250 200 50 180 180 180 ColorP 2 0 28 15 250 200 50 180 180 180 FSlider 28 0 0 0 0 16384 1 FSlider 28 1 0 0 0 16384 1 FSlider 28 2 16384 0 0 32768 1 FSlider 28 3 16384 0 0 32768 1 FSlider 28 4 16384 0 0 32768 1 Module 39 32 400 264 0 0 ColorP 0 0 32 6 250 200 50 180 180 180 ColorP 1 3 32 6 250 200 50 180 180 180 FSlider 32 0 -118973 0 -131072 131072 1 FSlider 32 1 58478 0 -131072 131072 1 FSlider 32 2 0 0 0 16384 1 FSlider 32 3 8192 0 0 16384 1 FSlider 32 4 0 0 -131072 131072 1 FSlider 32 5 16384 0 -131072 131072 1 FSlider 32 6 16384 0 -131072 131072 1 FSlider 32 7 16384 0 0 16384 1 FSlider 32 8 16384 0 0 16384 1 FSlider 32 9 16384 0 -131072 131072 1 ams-2.0.1/demos/example_basic_vcf.ams0000664000076400007640000000443607770061731014507 00000000000000Module 7 1 630 36 0 0 Port 0 0 1 4 Port 1 0 1 4 FSlider 1 0 11642 0 0 16384 1 FSlider 1 1 16384 0 0 16384 1 FSlider 1 2 16384 0 0 16384 1 ComboBox 1 0 1 1 Module 11 3 188 8 0 0 Port 0 0 3 9 FSlider 3 0 0 0 0 16384 1 FSlider 3 1 -72732 1 -113176 0 1 FSlider 3 2 98 0 0 16384 1 FSlider 3 3 12448 0 0 16384 1 FSlider 3 4 4969 0 0 16384 1 FSlider 3 5 7380 0 0 16384 1 FSlider 3 6 16384 0 1638 163840 1 Module 2 4 507 9 0 0 Port 0 0 4 3 Port 2 0 4 7 FSlider 4 0 0 0 0 163840 1 FSlider 4 1 0 0 0 163840 1 FSlider 4 2 19529 0 0 32768 1 FSlider 4 3 8192 0 0 32768 1 FSlider 4 4 8192 0 0 32768 1 Module 1 5 184 199 0 0 Port 1 1 5 9 FSlider 5 0 0 0 0 16384 1 FSlider 5 1 1638 0 0 163840 1 FSlider 5 2 0 0 0 163840 1 FSlider 5 3 8192 0 1638 14745 1 FSlider 5 4 0 0 0 163840 1 FSlider 5 5 0 0 0 163840 1 ISlider 5 0 0 1 ISlider 5 1 1 1 ISlider 5 2 1 1 ComboBox 5 0 0 1 Module 9 7 355 106 0 0 Port 0 2 7 5 Port 1 1 7 9 FSlider 7 0 21157 0 0 163840 1 FSlider 7 1 38621 0 10449 133827 1 FSMIDI 7 1 10 0 1 FSlider 7 2 0 0 0 163840 1 FSlider 7 3 0 0 0 163840 1 FSlider 7 4 13107 0 163 16384 1 FSlider 7 5 0 0 0 16384 1 ComboBox 7 0 6 1 Module 10 9 22 81 0 0 FSlider 9 0 129 0 -16384 16384 1 FSMIDI 9 0 13 0 0 ISlider 9 0 24 1 ComboBox 9 0 0 1 Comment 0 0 309 300 414 187 #PARA# 0 0 0 In this patch a VCF filter module has been added to the basic patch. The cutoff frequency of the filter is shifted according to the frequency voltage supplied by the MCV ("VCF tracking"). #ARAP# #PARA# 0 0 1 #ARAP# #PARA# 0 0 2 The pitchbender is connected to the "Pitch" parameter of the MCV. The modulation wheel has been bound to the "Frequency" parameter of the VCF. #ARAP# #PARA# 0 0 3 #ARAP# #PARA# 0 0 4 #ARAP# #PARA# 0 0 5 #ARAP# #PARA# 0 0 6 #ARAP# #PARA# 0 0 7 #ARAP# #PARA# 0 0 8 #ARAP# #PARA# 0 0 9 #ARAP# #PARA# 0 0 10 #ARAP# #PARA# 0 0 11 #ARAP# #PARA# 0 0 12 #ARAP# #PARA# 0 0 13 #ARAP# #PARA# 0 0 14 #ARAP# #PARA# 0 0 15 #ARAP# #PARA# 0 0 16 #ARAP# #PARA# 0 0 17 #ARAP# #PARA# 0 0 18 #ARAP# #PARA# 0 0 19 #ARAP# #PARA# 0 0 20 #ARAP# #PARA# 0 0 21 #ARAP# #PARA# 0 0 22 #ARAP# #PARA# 0 0 23 #ARAP# #PARA# 0 0 24 #ARAP# #PARA# 0 0 25 #ARAP# #PARA# 0 0 26 #ARAP# #PARA# 0 0 27 #ARAP# #PARA# 0 0 28 #ARAP# #PARA# 0 0 29 #ARAP# #PARA# 0 0 30 #ARAP# #PARA# 0 0 31 #ARAP# #PARA# 0 0 32 #ARAP# ams-2.0.1/demos/example_vc_panning.ams0000664000076400007640000000310310047700633014670 00000000000000Module 7 1 637 93 0 0 ColorP 0 0 1 2 250 200 50 180 180 180 ColorP 1 1 1 2 250 200 50 180 180 180 FSlider 1 0 8192 0 0 16384 1 FSlider 1 1 8192 0 0 16384 1 FSlider 1 2 8192 0 0 16384 1 ComboBox 1 0 0 1 Module 37 2 480 53 0 0 ColorP 0 0 2 6 250 200 50 180 180 180 FSlider 2 0 0 0 -16384 16384 1 FSlider 2 1 0 0 0 32768 1 ComboBox 2 0 1 1 Module 34 3 207 59 0 0 ColorP 0 0 3 7 250 200 50 180 180 180 ColorP 1 3 3 7 250 200 50 180 180 180 FSlider 3 0 163 0 0 16384 1 FSlider 3 1 16384 0 0 16384 1 FSlider 3 2 11468 0 0 16384 1 FSlider 3 3 16384 0 0 16384 1 FSlider 3 4 0 0 -16384 16384 1 FSlider 3 5 0 0 -16384 16384 1 FSlider 3 6 0 0 -16384 16384 1 FSlider 3 7 0 0 -16384 16384 1 ComboBox 3 0 1 1 ComboBox 3 1 1 1 Module 6 4 22 338 2 blvco Saw-VCO ColorP 0 1 4 7 250 200 50 180 180 180 FSlider 4 0 0 0 0 16384 1 FSlider 4 1 0 0 0 65536 1 FSlider 4 2 0 0 0 65536 1 FSlider 4 3 16384 0 0 16384 1 LSlider 4 0 -4 1 Module 6 5 307 337 2 mvclpf24 Mvclpf-4 ColorP 0 0 5 4 250 200 50 180 180 180 ColorP 2 0 5 3 250 200 50 180 180 180 FSlider 5 0 0 0 -983040 163840 1 FSlider 5 1 -19351 0 -81920 81920 1 FSlider 5 2 99981 0 0 163840 1 FSlider 5 3 0 0 0 16384 1 FSlider 5 4 0 0 0 16384 1 FSlider 5 5 205907 0 -245760 245760 1 LSlider 5 0 4 1 Module 2 6 357 64 0 0 ColorP 0 0 6 3 250 200 50 180 180 180 ColorP 2 0 6 5 250 200 50 180 180 180 FSlider 6 0 0 0 0 16384 1 FSlider 6 1 0 0 0 16384 1 FSlider 6 2 16384 0 0 32768 1 FSlider 6 3 16384 0 0 32768 1 FSlider 6 4 16384 0 0 32768 1 Module 35 7 6 50 0 0 FSlider 7 0 0 0 -16384 16384 1 ISlider 7 0 24 1 ISlider 7 1 0 1 ISlider 7 2 0 1 ISlider 7 3 0 1 ISlider 7 4 0 1 ams-2.0.1/demos/example_midiout_birds.ams0000664000076400007640000000475307770061731015427 00000000000000Module 7 1 652 42 0 0 Port 0 0 1 10 Port 1 1 1 10 FSlider 1 0 13849 0 0 16384 1 FSlider 1 1 16384 0 0 16384 1 FSlider 1 2 16384 0 0 16384 1 ComboBox 1 0 1 1 Module 2 4 323 8 0 0 Port 0 0 4 23 Port 2 0 4 14 FSlider 4 0 0 0 0 163840 1 FSlider 4 1 418 0 0 163840 1 FSlider 4 2 1254 0 0 32768 1 FSlider 4 3 4681 0 0 32768 1 FSlider 4 4 8192 0 0 32768 1 Module 6 10 462 40 0 cmt Freeverb (Version 3) Port 0 0 10 4 Port 1 0 10 4 FSlider 10 0 11536 0 0 16384 1 FSlider 10 1 -19337 1 -113176 0 1 FSlider 10 2 -8372 1 -113175 0 1 FSMIDI 10 2 10 0 02 FSlider 10 3 0 1 -113176 0 1 FSlider 10 4 16342 0 0 16384 1 CheckBox 10 0 0 1 Module 1 14 548 169 0 0 Port 1 0 14 22 Port 2 1 14 23 FSlider 14 0 0 0 0 16384 1 FSlider 14 1 8192 0 1638 14745 1 FSlider 14 2 0 0 0 16384 1 FSlider 14 3 0 0 0 102940 1 FSlider 14 4 26139 0 988 51689 0 FSMIDI 14 4 13 0 0 FSlider 14 5 1260 0 0 163840 1 ISlider 14 0 6 1 ISlider 14 1 1 1 ISlider 14 2 1 1 ComboBox 14 0 0 1 Module 18 22 30 19 0 0 FSlider 22 0 34187 0 0 81920 1 FSMIDI 22 0 10 0 24 FSlider 22 1 0 0 -8192 8192 1 FSlider 22 2 0 0 0 81920 1 FSlider 22 3 0 0 -8192 8192 1 FSlider 22 4 0 0 0 81920 1 FSlider 22 5 0 0 -8192 8192 1 FSlider 22 6 0 0 0 81920 1 FSlider 22 7 0 0 -8192 8192 1 Module 22 23 104 175 0 0 Port 0 2 23 26 FSlider 23 0 16036 0 1638 163840 1 FSlider 23 1 0 0 0 10191 1 FSlider 23 2 0 0 0 16384 1 FSlider 23 3 326 0 0 16384 1 FSlider 23 4 8400 0 0 16384 1 FSlider 23 5 2048 0 0 16384 1 FSlider 23 6 9030 0 0 16384 1 FSMIDI 23 6 10 0 1 FSMIDI 23 6 10 0 25 FSlider 23 7 1187 0 0 16384 1 FSlider 23 8 16087 0 0 16384 1 FSlider 23 9 3740 0 0 16384 1 FSlider 23 10 1276 0 0 16384 1 FSlider 23 11 0 0 0 16384 1 FSlider 23 12 1306 0 0 16384 1 FSlider 23 13 0 0 0 16384 1 FSlider 23 14 1187 0 0 16384 1 Module 29 25 572 429 0 0 Port 0 0 25 26 Port 1 0 25 28 Port 2 2 25 26 FSlider 25 0 16384 0 0 163840 1 FSlider 25 1 114688 0 0 163840 1 FSlider 25 2 8192 0 0 163840 1 ISlider 25 0 50 1 ISlider 25 1 10 1 ISlider 25 2 24 1 ISlider 25 3 25 1 ComboBox 25 0 0 1 ComboBox 25 1 0 1 Module 14 26 364 430 0 0 FSlider 26 0 6687 0 0 163840 1 FSlider 26 1 16384 0 0 16384 1 Module 14 28 364 300 0 0 FSlider 28 0 81920 0 0 163840 1 FSlider 28 1 8192 0 0 16384 1 Comment 0 0 15 326 317 180 #PARA# 0 0 0 This patch is based on the JungleBirds. It uses random voltages to automatically play the sound. #ARAP# #PARA# 0 0 1 If you connect the readable MIDI ports of AlsaModularSynth with its writeable port (using e.g. Kaconnect), pitch and envelope will change. #ARAP# #PARA# 0 0 2 #ARAP# #PARA# 0 0 3 #ARAP# ams-2.0.1/demos/classical_reverb.ams0000664000076400007640000000464007770061731014355 00000000000000Module 7 1 555 153 0 0 Port 0 0 1 23 Port 1 1 1 23 FSlider 1 0 6618 0 0 16384 1 FSlider 1 1 8192 0 0 16384 1 FSlider 1 2 8192 0 0 16384 1 ComboBox 1 0 1 1 Module 11 3 145 13 0 0 Port 0 0 3 12 Port 1 3 3 12 FSlider 3 0 0 0 0 16384 1 FSlider 3 1 -72548 1 -113176 0 1 FSlider 3 2 98 0 0 16384 1 FSlider 3 3 7688 0 0 16384 1 FSlider 3 4 9746 0 0 16384 1 FSlider 3 5 -17120 1 -113176 0 1 FSlider 3 6 16384 0 1638 163840 1 Module 2 4 401 21 0 0 Port 0 0 4 3 Port 2 0 4 18 FSlider 4 0 0 0 0 163840 1 FSlider 4 1 0 0 0 163840 1 FSlider 4 2 19529 0 0 32768 1 FSlider 4 3 8192 0 0 32768 1 FSlider 4 4 8192 0 0 32768 1 Module 1 5 145 267 0 0 Port 1 1 5 12 Port 2 0 5 16 FSlider 5 0 0 0 0 16384 1 FSlider 5 1 1638 0 0 163840 1 FSlider 5 2 0 0 0 163840 1 FSlider 5 3 8192 0 1638 14745 1 FSlider 5 4 198 0 0 2972 1 FSlider 5 5 0 0 0 163840 1 ISlider 5 0 0 1 ISlider 5 1 1 1 ISlider 5 2 1 1 ComboBox 5 0 0 1 Module 15 9 145 158 0 0 Port 0 1 9 12 FSlider 9 0 1672 0 0 163840 1 FSlider 9 1 1672 0 0 163840 1 Module 10 12 13 120 0 0 FSlider 12 0 129 0 -16384 16384 1 FSMIDI 12 0 13 0 0 ISlider 12 0 24 1 ComboBox 12 0 0 1 Module 11 14 258 350 0 0 Port 0 0 14 12 Port 1 3 14 12 FSlider 14 0 0 0 0 16384 1 FSlider 14 1 252 0 0 16384 1 FSlider 14 2 0 0 0 16384 1 FSlider 14 3 15124 0 0 16384 1 FSlider 14 4 0 0 0 16384 1 FSlider 14 5 3319 0 0 16384 1 FSlider 14 6 1638 0 1638 163840 1 Module 3 16 17 267 0 0 FSlider 16 0 104490 0 0 1638400 1 FSlider 16 1 0 0 0 102940 1 Module 6 18 259 175 0 mvclpf24 Mvclpf-3 Port 0 0 18 21 Port 1 0 18 9 Port 2 0 18 14 FSlider 18 0 -231131 0 -983040 163840 1 FSlider 18 1 -49412 0 -49412 33192 1 FSMIDI 18 1 10 0 1 FSlider 18 2 76904 0 0 163840 1 FSlider 18 3 0 0 0 16384 1 FSlider 18 4 0 0 0 16384 1 FSlider 18 5 184320 0 -245760 245760 1 Module 1 20 493 258 0 0 Port 1 1 20 12 FSlider 20 0 84 0 0 16384 1 FSlider 20 1 8192 0 1638 14745 1 FSlider 20 2 0 0 0 16384 1 FSlider 20 3 0 0 0 102940 1 FSlider 20 4 0 0 0 163840 1 FSlider 20 5 0 0 0 163840 1 ISlider 20 0 3 1 ISlider 20 1 1 1 ISlider 20 2 1 1 ComboBox 20 0 0 1 Module 8 21 610 314 2 0 Port 0 2 21 5 Port 1 3 21 20 FSlider 21 0 16384 0 0 32768 1 FSlider 21 1 16384 0 0 32768 1 FSlider 21 2 16384 0 0 32768 1 Module 6 23 520 65 0 gverb_1216 GVerb Port 0 0 23 4 FSlider 23 0 1790955 0 16384 4915200 1 FSlider 23 1 16680 0 1638 5898240 1 FSlider 23 2 7064 0 0 16384 1 FSlider 23 3 12121 0 0 16384 1 FSlider 23 4 0 0 -1146880 0 1 FSlider 23 5 -181394 0 -1146880 0 1 FSlider 23 6 0 0 -1146880 0 1 ams-2.0.1/demos/example_dynamicwaves_8_retrigger.ams0000664000076400007640000001236607770061731017564 00000000000000Module 21 1 174 40 8 0 Port 0 1 1 2 Port 3 0 1 2 Port 4 3 1 2 FSlider 1 0 0 0 0 16384 1 FSlider 1 1 0 0 0 163840 1 FSlider 1 2 0 0 0 163840 1 FSlider 1 3 1638 0 1638 163840 1 FSlider 1 4 16384 0 0 16384 1 FSlider 1 5 16384 0 0 16384 1 FSlider 1 6 16384 0 0 16384 1 FSlider 1 7 16384 0 0 16384 1 FSlider 1 8 16384 0 0 16384 1 FSlider 1 9 16384 0 0 16384 1 FSlider 1 10 16384 0 0 16384 1 FSlider 1 11 16384 0 0 16384 1 FSlider 1 12 154 0 0 16384 1 FSlider 1 13 0 0 0 102940 1 FSlider 1 14 0 0 0 16384 1 FSlider 1 15 0 0 0 102940 1 FSlider 1 16 116 0 0 16384 1 FSlider 1 17 0 0 0 102940 1 FSlider 1 18 77 0 0 16384 1 FSlider 1 19 0 0 0 102940 1 FSlider 1 20 39 0 0 16384 1 FSlider 1 21 0 0 0 102940 1 FSlider 1 22 116 0 0 16384 1 FSlider 1 23 0 0 0 102940 1 FSlider 1 24 39 0 0 16384 1 FSlider 1 25 0 0 0 102940 1 FSlider 1 26 0 0 0 16384 1 FSlider 1 27 0 0 0 102940 1 FSlider 1 28 3082 0 0 16384 1 FSlider 1 29 2636 0 0 16384 1 FSlider 1 30 11112 0 0 16384 1 FSlider 1 31 4826 0 0 16384 1 FSlider 1 32 1987 0 0 16384 1 FSlider 1 33 5150 0 0 16384 1 FSlider 1 34 14745 0 0 16384 1 FSlider 1 35 1638 0 0 16384 1 FSlider 1 36 13107 0 0 16384 1 FSlider 1 37 163 0 0 16384 1 FSlider 1 38 11468 0 0 16384 1 FSlider 1 39 163 0 0 16384 1 FSlider 1 40 8192 0 0 16384 1 FSlider 1 41 163 0 0 16384 1 FSlider 1 42 0 0 0 16384 1 FSlider 1 43 11013 0 0 16384 1 FSlider 1 44 8192 0 0 16384 1 FSlider 1 45 163 0 0 16384 1 FSlider 1 46 16384 0 0 16384 1 FSlider 1 47 1638 0 0 16384 1 FSlider 1 48 14745 0 0 16384 1 FSlider 1 49 1638 0 0 16384 1 FSlider 1 50 12029 0 0 16384 1 FSlider 1 51 163 0 0 16384 1 FSlider 1 52 11468 0 0 16384 1 FSlider 1 53 163 0 0 16384 1 FSlider 1 54 8192 0 0 16384 1 FSlider 1 55 163 0 0 16384 1 FSlider 1 56 0 0 0 16384 1 FSlider 1 57 2798 0 0 16384 1 FSlider 1 58 8192 0 0 16384 1 FSlider 1 59 1906 0 0 16384 1 FSlider 1 60 10869 0 0 16384 1 FSlider 1 61 1638 0 0 16384 1 FSlider 1 62 14745 0 0 16384 1 FSlider 1 63 4704 0 0 16384 1 FSlider 1 64 11095 0 0 16384 1 FSlider 1 65 2879 0 0 16384 1 FSlider 1 66 7543 0 0 16384 1 FSlider 1 67 4015 0 0 16384 1 FSlider 1 68 13140 0 0 16384 1 FSlider 1 69 3569 0 0 16384 1 FSlider 1 70 0 0 0 16384 1 FSlider 1 71 163 0 0 16384 1 FSlider 1 72 8192 0 0 16384 1 FSlider 1 73 163 0 0 16384 1 FSlider 1 74 16384 0 0 16384 1 FSlider 1 75 1638 0 0 16384 1 FSlider 1 76 14745 0 0 16384 1 FSlider 1 77 1638 0 0 16384 1 FSlider 1 78 13107 0 0 16384 1 FSlider 1 79 163 0 0 16384 1 FSlider 1 80 11468 0 0 16384 1 FSlider 1 81 163 0 0 16384 1 FSlider 1 82 8192 0 0 16384 1 FSlider 1 83 163 0 0 16384 1 FSlider 1 84 0 0 0 16384 1 FSlider 1 85 163 0 0 16384 1 FSlider 1 86 8192 0 0 16384 1 FSlider 1 87 163 0 0 16384 1 FSlider 1 88 16384 0 0 16384 1 FSlider 1 89 1638 0 0 16384 1 FSlider 1 90 14745 0 0 16384 1 FSlider 1 91 1638 0 0 16384 1 FSlider 1 92 13107 0 0 16384 1 FSlider 1 93 163 0 0 16384 1 FSlider 1 94 11468 0 0 16384 1 FSlider 1 95 163 0 0 16384 1 FSlider 1 96 8192 0 0 16384 1 FSlider 1 97 163 0 0 16384 1 FSlider 1 98 0 0 0 16384 1 FSlider 1 99 163 0 0 16384 1 FSlider 1 100 8192 0 0 16384 1 FSlider 1 101 163 0 0 16384 1 FSlider 1 102 16384 0 0 16384 1 FSlider 1 103 1638 0 0 16384 1 FSlider 1 104 14745 0 0 16384 1 FSlider 1 105 1638 0 0 16384 1 FSlider 1 106 10722 0 0 16384 1 FSlider 1 107 163 0 0 16384 1 FSlider 1 108 11468 0 0 16384 1 FSlider 1 109 163 0 0 16384 1 FSlider 1 110 8192 0 0 16384 1 FSlider 1 111 163 0 0 16384 1 FSlider 1 112 4742 0 0 16384 1 FSlider 1 113 2352 0 0 16384 1 FSlider 1 114 8192 0 0 16384 1 FSlider 1 115 5359 0 0 16384 1 FSlider 1 116 16384 0 0 16384 1 FSlider 1 117 1638 0 0 16384 1 FSlider 1 118 14745 0 0 16384 1 FSlider 1 119 2544 0 0 16384 1 FSlider 1 120 13107 0 0 16384 1 FSlider 1 121 3855 0 0 16384 1 FSlider 1 122 14688 0 0 16384 1 FSlider 1 123 7633 0 0 16384 1 FSlider 1 124 10023 0 0 16384 1 FSlider 1 125 2159 0 0 16384 1 FSlider 1 126 771 0 0 16384 1 FSlider 1 127 3238 0 0 16384 1 FSlider 1 128 8192 0 0 16384 1 FSlider 1 129 3855 0 0 16384 1 FSlider 1 130 8790 0 0 16384 1 FSlider 1 131 4934 0 0 16384 1 FSlider 1 132 14745 0 0 16384 1 FSlider 1 133 5590 0 0 16384 1 FSlider 1 134 4915 0 0 16384 1 FSlider 1 135 5474 0 0 16384 1 FSlider 1 136 7903 0 0 16384 1 FSlider 1 137 3277 0 0 16384 1 FSlider 1 138 8192 0 0 16384 1 FSlider 1 139 163 0 0 16384 1 ISlider 1 0 1 1 ISlider 1 1 0 1 ISlider 1 2 1 1 ISlider 1 3 1 1 ISlider 1 4 0 1 ISlider 1 5 2 1 ISlider 1 6 1 1 ISlider 1 7 0 1 ISlider 1 8 3 1 ISlider 1 9 1 1 ISlider 1 10 0 1 ISlider 1 11 4 1 ISlider 1 12 1 1 ISlider 1 13 0 1 ISlider 1 14 5 1 ISlider 1 15 1 1 ISlider 1 16 0 1 ISlider 1 17 6 1 ISlider 1 18 1 1 ISlider 1 19 0 1 ISlider 1 20 7 1 ISlider 1 21 1 1 ISlider 1 22 0 1 ISlider 1 23 8 1 ISlider 1 24 1 1 ComboBox 1 0 4 1 CMIDI 1 0 10 0 1 ComboBox 1 1 0 1 ComboBox 1 2 0 1 ComboBox 1 3 0 1 ComboBox 1 4 0 1 ComboBox 1 5 0 1 ComboBox 1 6 0 1 ComboBox 1 7 0 1 Module 10 2 25 40 0 0 FSlider 2 0 129 0 -16384 16384 1 FSMIDI 2 0 13 0 0 ISlider 2 0 24 1 ComboBox 2 0 0 1 Module 7 3 607 42 0 0 Port 0 0 3 4 Port 1 1 3 4 FSlider 3 0 8192 0 0 16384 1 FSlider 3 1 8192 0 0 16384 1 FSlider 3 2 8192 0 0 16384 1 ComboBox 3 0 1 1 Module 6 4 329 43 0 gverb_1216 GVerb Port 0 0 4 1 FSlider 4 0 2634717 0 16384 4915200 1 FSlider 4 1 59733 0 1638 5898240 1 FSlider 4 2 6174 0 0 16384 1 FSlider 4 3 13075 0 0 16384 1 FSlider 4 4 0 0 -1146880 0 1 FSlider 4 5 -189263 0 -1146880 0 1 FSlider 4 6 -124292 0 -1146880 0 1 ams-2.0.1/demos/example_barberpole.ams0000664000076400007640000001114010076763737014703 00000000000000Module 43 1 72 53 0 0 FSlider 1 0 -47361 1 -75451 49081 1 FSlider 1 1 79 1 -75451 26368 1 FSlider 1 2 1257 1 -75451 26369 1 ComboBox 1 0 0 1 FSMIDI 1 1 10 0 1 Module 7 3 1125 532 0 0 ColorP 0 0 3 26 250 200 50 180 180 180 ColorP 1 0 3 26 250 200 50 180 180 180 FSlider 3 0 8192 0 0 16384 1 FSlider 3 1 8192 0 0 16384 1 FSlider 3 2 8192 0 0 16384 1 ComboBox 3 0 0 1 Module 2 5 711 13 0 0 ColorP 0 8 5 1 250 200 50 180 180 180 ColorP 2 0 5 13 250 200 50 180 180 180 FSlider 5 0 0 0 0 16384 1 FSlider 5 1 0 0 0 16384 1 FSlider 5 2 16384 0 0 32768 1 FSlider 5 3 16384 0 0 32768 1 FSlider 5 4 16384 0 0 32768 1 Module 2 6 712 161 0 0 ColorP 0 9 6 1 250 200 50 180 180 180 ColorP 2 0 6 14 250 200 50 180 180 180 FSlider 6 0 0 0 0 16384 1 FSlider 6 1 0 0 0 16384 1 FSlider 6 2 16384 0 0 32768 1 FSlider 6 3 16384 0 0 32768 1 FSlider 6 4 16384 0 0 32768 1 Module 2 7 712 313 0 0 ColorP 0 10 7 1 250 200 50 180 180 180 ColorP 2 0 7 15 250 200 50 180 180 180 FSlider 7 0 0 0 0 16384 1 FSlider 7 1 0 0 0 16384 1 FSlider 7 2 16384 0 0 32768 1 FSlider 7 3 16384 0 0 32768 1 FSlider 7 4 16384 0 0 32768 1 Module 2 8 713 461 0 0 ColorP 0 11 8 1 250 200 50 180 180 180 ColorP 2 0 8 16 250 200 50 180 180 180 FSlider 8 0 0 0 0 16384 1 FSlider 8 1 0 0 0 16384 1 FSlider 8 2 16384 0 0 32768 1 FSlider 8 3 16384 0 0 32768 1 FSlider 8 4 16384 0 0 32768 1 Module 2 9 712 611 0 0 ColorP 0 12 9 1 250 200 50 180 180 180 ColorP 2 0 9 17 250 200 50 180 180 180 FSlider 9 0 0 0 0 16384 1 FSlider 9 1 0 0 0 16384 1 FSlider 9 2 16384 0 0 32768 1 FSlider 9 3 16384 0 0 32768 1 FSlider 9 4 16384 0 0 32768 1 Module 2 10 716 762 0 0 ColorP 0 13 10 1 250 200 50 180 180 180 ColorP 2 0 10 18 250 200 50 180 180 180 FSlider 10 0 0 0 0 16384 1 FSlider 10 1 0 0 0 16384 1 FSlider 10 2 16384 0 0 32768 1 FSlider 10 3 16384 0 0 32768 1 FSlider 10 4 16384 0 0 32768 1 Module 2 11 717 910 0 0 ColorP 0 14 11 1 250 200 50 180 180 180 ColorP 2 0 11 19 250 200 50 180 180 180 FSlider 11 0 0 0 0 16384 1 FSlider 11 1 0 0 0 16384 1 FSlider 11 2 16384 0 0 32768 1 FSlider 11 3 16384 0 0 32768 1 FSlider 11 4 16384 0 0 32768 1 Module 2 12 717 1064 0 0 ColorP 0 15 12 1 250 200 50 180 180 180 ColorP 2 0 12 20 250 200 50 180 180 180 FSlider 12 0 0 0 0 16384 1 FSlider 12 1 0 0 0 16384 1 FSlider 12 2 16384 0 0 32768 1 FSlider 12 3 16384 0 0 32768 1 FSlider 12 4 16384 0 0 32768 1 Module 6 13 367 7 2 blvco Saw-VCO ColorP 0 0 13 1 250 200 50 180 180 180 FSlider 13 0 0 0 0 16384 1 FSlider 13 1 0 0 0 65536 1 FSlider 13 2 0 0 0 65536 1 FSlider 13 3 0 0 0 16384 1 LSlider 13 0 0 1 LSMIDI 13 0 13 0 0 Module 6 14 365 136 2 blvco Saw-VCO ColorP 0 1 14 1 250 200 50 180 180 180 FSlider 14 0 15 0 0 16384 1 FSlider 14 1 0 0 0 65536 1 FSlider 14 2 0 0 0 65536 1 FSlider 14 3 0 0 0 16384 1 LSlider 14 0 0 1 LSMIDI 14 0 13 0 0 Module 6 15 363 264 2 blvco Saw-VCO ColorP 0 2 15 1 250 200 50 180 180 180 FSlider 15 0 34 0 0 16384 1 FSlider 15 1 0 0 0 65536 1 FSlider 15 2 0 0 0 65536 1 FSlider 15 3 0 0 0 16384 1 LSlider 15 0 0 1 LSMIDI 15 0 13 0 0 Module 6 16 364 395 2 blvco Saw-VCO ColorP 0 3 16 1 250 200 50 180 180 180 FSlider 16 0 44 0 0 16384 1 FSlider 16 1 0 0 0 65536 1 FSlider 16 2 0 0 0 65536 1 FSlider 16 3 0 0 0 16384 1 LSlider 16 0 0 1 LSMIDI 16 0 13 0 0 Module 6 17 366 525 2 blvco Saw-VCO ColorP 0 4 17 1 250 200 50 180 180 180 FSlider 17 0 34 0 0 16384 1 FSlider 17 1 0 0 0 65536 1 FSlider 17 2 0 0 0 65536 1 FSlider 17 3 0 0 0 16384 1 LSlider 17 0 0 1 LSMIDI 17 0 13 0 0 Module 6 18 363 655 2 blvco Saw-VCO ColorP 0 5 18 1 250 200 50 180 180 180 FSlider 18 0 17 0 0 16384 1 FSlider 18 1 0 0 0 65536 1 FSlider 18 2 0 0 0 65536 1 FSlider 18 3 0 0 0 16384 1 LSlider 18 0 0 1 LSMIDI 18 0 13 0 0 Module 6 19 364 784 2 blvco Saw-VCO ColorP 0 6 19 1 250 200 50 180 180 180 FSlider 19 0 0 0 0 16384 1 FSlider 19 1 0 0 0 65536 1 FSlider 19 2 0 0 0 65536 1 FSlider 19 3 0 0 0 16384 1 LSlider 19 0 0 1 LSMIDI 19 0 13 0 0 Module 6 20 365 916 2 blvco Saw-VCO ColorP 0 7 20 1 250 200 50 180 180 180 FSlider 20 0 41 0 0 16384 1 FSlider 20 1 0 0 0 65536 1 FSlider 20 2 0 0 0 65536 1 FSlider 20 3 0 0 0 16384 1 LSlider 20 0 0 1 LSMIDI 20 0 13 0 0 Module 8 26 952 394 8 0 ColorP 0 0 26 5 250 200 50 180 180 180 ColorP 1 0 26 6 250 200 50 180 180 180 ColorP 2 0 26 7 250 200 50 180 180 180 ColorP 3 0 26 8 250 200 50 180 180 180 ColorP 4 0 26 9 250 200 50 180 180 180 ColorP 5 0 26 10 250 200 50 180 180 180 ColorP 6 0 26 11 250 200 50 180 180 180 ColorP 7 0 26 12 250 200 50 180 180 180 FSlider 26 0 6791 0 0 32768 1 FSlider 26 1 16384 0 0 32768 1 FSlider 26 2 16384 0 0 32768 1 FSlider 26 3 16384 0 0 32768 1 FSlider 26 4 16384 0 0 32768 1 FSlider 26 5 16384 0 0 32768 1 FSlider 26 6 16384 0 0 32768 1 FSlider 26 7 16384 0 0 32768 1 FSlider 26 8 16384 0 0 32768 1 ams-2.0.1/demos/SineSolo.ams0000664000076400007640000000742307770061731012607 00000000000000Module 7 1 897 302 0 0 Port 0 0 1 10 Port 1 1 1 10 FSlider 1 0 13849 0 0 16384 1 FSlider 1 1 16384 0 0 16384 1 FSlider 1 2 16384 0 0 16384 1 ComboBox 1 0 1 1 Module 11 3 508 11 0 0 Port 0 0 3 12 FSlider 3 0 0 0 0 16384 1 FSlider 3 1 -112301 1 -113176 0 1 FSlider 3 2 98 0 0 16384 1 FSlider 3 3 2312 0 0 16384 1 FSlider 3 4 11464 0 0 16384 1 FSlider 3 5 -108240 1 -113175 0 1 FSlider 3 6 16384 0 1638 163840 1 Module 2 4 680 139 0 0 Port 0 0 4 3 Port 2 0 4 32 Port 3 0 4 33 FSlider 4 0 0 0 0 163840 1 FSlider 4 1 0 0 0 163840 1 FSlider 4 2 19529 0 0 32768 1 FSlider 4 3 8192 0 0 32768 1 FSlider 4 4 3710 0 1792 9909 0 FSMIDI 4 4 10 0 7 Module 1 5 359 88 0 0 Port 1 0 5 31 Port 2 0 5 19 FSlider 5 0 0 0 0 334 1 FSlider 5 1 1638 0 0 163840 1 FSlider 5 2 0 0 0 163840 1 FSlider 5 3 8192 0 1638 14745 1 FSlider 5 4 22 0 0 578 1 FSMIDI 5 4 10 0 1 FSlider 5 5 0 0 0 163840 1 ISlider 5 0 1 1 ISlider 5 1 1 1 ISlider 5 2 1 1 ComboBox 5 0 1 1 Module 6 10 677 301 0 cmt Freeverb (Version 3) Port 0 0 10 46 Port 1 0 10 46 FSlider 10 0 11502 0 0 16384 1 FSlider 10 1 -89825 1 -113176 0 1 FSlider 10 2 -26735 1 -113175 0 1 FSMIDI 10 2 10 0 7 FSlider 10 3 -5338 1 -113176 0 1 FSlider 10 4 16384 0 0 16384 1 CheckBox 10 0 0 1 Module 10 12 9 8 0 0 FSlider 12 0 14 0 -2743 2729 1 FSMIDI 12 0 13 0 0 ISlider 12 0 24 1 ComboBox 12 0 0 1 Module 3 19 145 277 0 0 FSlider 19 0 179722 0 0 1638400 1 FSlider 19 1 0 0 0 102940 1 Module 1 28 359 318 0 0 Port 1 0 28 30 Port 2 0 28 19 FSlider 28 0 38 0 0 612 1 FSMIDI 28 0 10 0 4 FSlider 28 1 8192 0 1638 14745 1 FSlider 28 2 0 0 0 16384 1 FSlider 28 3 0 0 0 102940 1 FSlider 28 4 22 0 0 578 1 FSMIDI 28 4 10 0 1 FSlider 28 5 163840 0 0 163840 1 ISlider 28 0 1 1 ISlider 28 1 1 1 ISlider 28 2 1 1 ComboBox 28 0 0 1 Module 15 30 145 182 0 0 Port 0 1 30 12 FSlider 30 0 3274 0 0 3274 1 FSMIDI 30 0 10 0 6 FSlider 30 1 3274 0 0 3274 1 FSMIDI 30 1 10 0 6 Module 15 31 145 88 0 0 Port 0 1 31 12 FSlider 31 0 3274 0 0 3274 1 FSMIDI 31 0 10 0 6 FSlider 31 1 3279 0 0 3279 1 FSMIDI 31 1 10 0 6 Module 8 32 509 164 2 0 Port 0 0 32 5 Port 1 1 32 5 FSlider 32 0 16384 0 0 32768 1 FSlider 32 1 7225 0 0 16384 0 FSMIDI 32 1 10 0 5 FSlider 32 2 9159 0 0 16383 1 FSMIDI 32 2 10 0 5 Module 8 33 506 393 2 0 Port 0 0 33 28 Port 1 1 33 28 FSlider 33 0 16384 0 0 32768 1 FSlider 33 1 7225 0 0 16384 0 FSMIDI 33 1 10 0 5 FSlider 33 2 9155 0 0 16376 1 FSMIDI 33 2 10 0 5 Module 6 46 801 212 0 valve_1209 Valve saturation Port 0 0 46 4 FSlider 46 0 14964 0 0 16384 1 FSMIDI 46 0 10 0 2 FSlider 46 1 7611 0 0 16384 1 FSMIDI 46 1 10 0 3 Comment 0 0 198 152 327 239 #PARA# 0 0 0 This patch has been contributed by Christoph Eckert. #ARAP# #PARA# 0 0 1 #ARAP# #PARA# 0 0 2 In addition to Pitchbender and ModWheel, the following MIDI bindings exist: #ARAP# #PARA# 0 0 3 CC02 and CC03 Valve Saturation #ARAP# #PARA# 0 0 4 CC04 Detune #ARAP# #PARA# 0 0 5 CC05 Crossfade between Sine Triangle #ARAP# #PARA# 0 0 6 CC06 Glide on/off (switch) #ARAP# #PARA# 0 0 7 CC07 Reverb #ARAP# #PARA# 0 0 8 #ARAP# #PARA# 0 0 9 #ARAP# #PARA# 0 0 10 #ARAP# #PARA# 0 0 11 #ARAP# #PARA# 0 0 12 #ARAP# #PARA# 0 0 13 #ARAP# #PARA# 0 0 14 #ARAP# #PARA# 0 0 15 #ARAP# #PARA# 0 0 16 #ARAP# #PARA# 0 0 17 #ARAP# #PARA# 0 0 18 #ARAP# #PARA# 0 0 19 #ARAP# #PARA# 0 0 20 #ARAP# #PARA# 0 0 21 #ARAP# #PARA# 0 0 22 #ARAP# #PARA# 0 0 23 #ARAP# #PARA# 0 0 24 #ARAP# #PARA# 0 0 25 #ARAP# #PARA# 0 0 26 #ARAP# #PARA# 0 0 27 #ARAP# #PARA# 0 0 28 #ARAP# #PARA# 0 0 29 #ARAP# #PARA# 0 0 30 #ARAP# #PARA# 0 0 31 #ARAP# #PARA# 0 0 32 #ARAP# #PARA# 0 0 33 #ARAP# #PARA# 0 0 34 #ARAP# #PARA# 0 0 35 #ARAP# #PARA# 0 0 36 #ARAP# #PARA# 0 0 37 #ARAP# #PARA# 0 0 38 #ARAP# #PARA# 0 0 39 #ARAP# #PARA# 0 0 40 #ARAP# #PARA# 0 0 41 #ARAP# #PARA# 0 0 42 #ARAP# #PARA# 0 0 43 #ARAP# #PARA# 0 0 44 #ARAP# #PARA# 0 0 45 #ARAP# ams-2.0.1/demos/sequence02c.ams0000664000076400007640000000574107770061731013172 00000000000000Module 7 2 985 187 0 0 Port 0 0 2 13 Port 1 1 2 13 FSlider 2 0 8192 0 0 16384 1 FSlider 2 1 8192 0 0 16384 1 FSlider 2 2 8192 0 0 16384 1 ComboBox 2 0 1 1 Module 1 3 204 192 0 0 Port 1 1 3 10 Port 3 0 3 6 Port 4 0 3 11 FSlider 3 0 -113175 1 -113176 0 1 FSlider 3 1 1638 0 0 163840 1 FSlider 3 2 -31155 1 -113176 37725 1 FSlider 3 3 8192 0 1638 14745 1 FSlider 3 4 3838 0 0 16384 1 FSlider 3 5 0 0 0 102940 1 ISlider 3 0 2 1 ISlider 3 1 1 1 ISlider 3 2 1 1 ComboBox 3 0 0 1 Module 9 4 503 186 0 0 Port 0 0 4 15 Port 1 1 4 10 Port 2 1 4 12 FSlider 4 0 12539 0 0 163840 1 FSlider 4 1 65930 0 0 163840 1 FSlider 4 2 49693 0 0 163840 1 FSlider 4 3 0 0 0 163840 1 FSlider 4 4 3281 0 163 16384 1 FSlider 4 5 0 0 0 16384 1 ComboBox 4 0 1 1 Module 11 5 215 49 0 0 Port 0 0 5 10 FSlider 5 0 0 0 0 16384 1 FSlider 5 1 -86324 1 -113176 0 1 FSlider 5 2 1968 0 0 16384 1 FSlider 5 3 -24470 1 -113176 0 1 FSlider 5 4 0 0 0 16384 1 FSlider 5 5 819 0 0 16384 1 FSlider 5 6 16384 0 1638 163840 1 Module 2 6 645 112 0 0 Port 0 0 6 5 Port 2 0 6 4 FSlider 6 0 0 0 0 163840 1 FSlider 6 1 0 0 0 163840 1 FSlider 6 2 8192 0 0 16384 1 FSlider 6 3 8192 0 0 16384 1 FSlider 6 4 8192 0 0 16384 1 Module 12 10 16 50 16 0 ISlider 10 0 0 1 ISlider 10 1 111 1 ISlider 10 2 31 1 ISlider 10 3 63 1 ISlider 10 4 12 1 ISlider 10 5 63 1 ISlider 10 6 32 1 ISlider 10 7 63 1 ISlider 10 8 10 1 ISlider 10 9 63 1 ISlider 10 10 31 1 ISlider 10 11 63 1 ISlider 10 12 11 1 ISlider 10 13 63 1 ISlider 10 14 29 1 ISlider 10 15 63 1 ISlider 10 16 12 1 ISlider 10 17 63 1 ISlider 10 18 31 1 ISlider 10 19 63 1 ISlider 10 20 24 1 ISlider 10 21 63 1 ISlider 10 22 27 1 ISlider 10 23 63 1 ISlider 10 24 31 1 ISlider 10 25 63 1 ISlider 10 26 31 1 ISlider 10 27 63 1 ISlider 10 28 7 1 ISlider 10 29 63 1 ISlider 10 30 32 1 ISlider 10 31 63 1 ISlider 10 32 43 1 ISlider 10 33 63 1 ComboBox 10 0 1 1 CheckBox 10 0 1 1 CheckBox 10 1 1 1 CheckBox 10 2 1 1 CheckBox 10 3 1 1 CheckBox 10 4 1 1 CheckBox 10 5 1 1 CheckBox 10 6 1 1 CheckBox 10 7 1 1 CheckBox 10 8 1 1 CheckBox 10 9 1 1 CheckBox 10 10 1 1 CheckBox 10 11 1 1 CheckBox 10 12 1 1 CheckBox 10 13 1 1 CheckBox 10 14 1 1 CheckBox 10 15 1 1 Module 3 11 31 276 0 0 FSlider 11 0 93891 0 0 1638400 1 FSlider 11 1 0 0 0 102940 1 Module 3 12 335 369 0 0 FSlider 12 0 -47346 1 -75451 75451 1 FSlider 12 1 0 0 0 102940 1 Module 6 13 783 186 0 cmt Freeverb (Version 3) Port 0 0 13 6 Port 1 0 13 6 FSlider 13 0 8591 0 0 16384 1 FSlider 13 1 -78802 1 -113176 0 1 FSlider 13 2 -14592 1 -113176 0 1 FSlider 13 3 -11674 1 -113176 0 1 FSlider 13 4 16384 0 0 16384 1 CheckBox 13 0 0 1 Module 1 14 203 427 0 0 Port 1 1 14 10 Port 3 0 14 6 Port 4 1 14 11 FSlider 14 0 -113175 1 -113176 0 1 FSlider 14 1 1638 0 0 163840 1 FSlider 14 2 -26170 1 -113176 37725 1 FSlider 14 3 8192 0 1638 14745 1 FSlider 14 4 0 0 0 16384 1 FSlider 14 5 0 0 0 102940 1 ISlider 14 0 1 1 ISlider 14 1 1 1 ISlider 14 2 1 1 ComboBox 14 0 0 1 Module 8 15 332 251 2 0 Port 0 3 15 3 Port 1 3 15 14 FSlider 15 0 8192 0 0 16384 1 FSlider 15 1 8192 0 0 16384 1 FSlider 15 2 16384 0 0 16384 1 ams-2.0.1/demos/example_basic_vcf_gverb_mcpfilter_env_filtmod.ams0000664000076400007640000000615107770061731022323 00000000000000Module 7 1 678 18 0 0 Port 0 0 1 20 Port 1 1 1 20 FSlider 1 0 8485 0 0 16384 1 FSlider 1 1 16384 0 0 16384 1 FSlider 1 2 16384 0 0 16384 1 ComboBox 1 0 1 1 Module 11 3 145 13 0 0 Port 0 0 3 12 Port 1 3 3 12 FSlider 3 0 0 0 0 16384 1 FSlider 3 1 -72548 1 -113176 0 1 FSlider 3 2 98 0 0 16384 1 FSlider 3 3 8738 0 0 16384 1 FSlider 3 4 12477 0 0 16384 1 FSlider 3 5 -13349 1 -113176 0 1 FSlider 3 6 16384 0 1638 163840 1 Module 2 4 283 13 0 0 Port 0 0 4 3 Port 2 0 4 18 FSlider 4 0 0 0 0 163840 1 FSlider 4 1 0 0 0 163840 1 FSlider 4 2 19529 0 0 32768 1 FSlider 4 3 8192 0 0 32768 1 FSlider 4 4 8192 0 0 32768 1 Module 1 5 150 289 0 0 Port 1 1 5 12 Port 2 0 5 16 FSlider 5 0 19 0 0 16384 1 FSlider 5 1 1638 0 0 163840 1 FSlider 5 2 0 0 0 163840 1 FSlider 5 3 8192 0 1638 14745 1 FSlider 5 4 198 0 0 2972 1 FSlider 5 5 0 0 0 163840 1 ISlider 5 0 0 1 ISlider 5 1 1 1 ISlider 5 2 1 1 ComboBox 5 0 0 1 Module 10 12 13 120 0 0 FSlider 12 0 129 0 -16384 16384 1 FSMIDI 12 0 13 0 0 ISlider 12 0 24 1 ComboBox 12 0 0 1 Module 11 14 339 157 0 0 Port 0 0 14 12 Port 1 3 14 12 FSlider 14 0 0 0 0 16384 1 FSlider 14 1 462 0 0 16384 1 FSlider 14 2 0 0 0 16384 1 FSlider 14 3 9788 0 0 16384 1 FSlider 14 4 0 0 0 16384 1 FSlider 14 5 3445 0 0 16384 1 FSlider 14 6 1638 0 1638 163840 1 Module 3 16 14 289 0 0 FSlider 16 0 104490 0 0 1638400 1 FSlider 16 1 0 0 0 102940 1 Module 6 18 580 123 0 mvclpf24 Mvclpf-3 Port 0 0 18 23 Port 1 1 18 12 Port 2 0 18 26 FSlider 18 0 -345234 0 -983040 163840 1 FSlider 18 1 -20794 0 -49412 33192 1 FSMIDI 18 1 10 0 1 FSlider 18 2 35109 0 0 163840 1 FSlider 18 3 2926 0 0 16384 1 FSlider 18 4 0 0 0 16384 1 FSlider 18 5 175543 0 -245760 245760 1 Module 6 20 400 15 0 gverb_1216 GVerb Port 0 0 20 4 FSlider 20 0 4077902 0 16384 4915200 1 FSlider 20 1 46765 0 1638 5898240 1 FSlider 20 2 8401 0 0 16384 1 FSlider 20 3 16384 0 0 16384 1 FSlider 20 4 0 0 -1146880 0 1 FSlider 20 5 -172617 0 -1146880 0 1 FSlider 20 6 -386194 0 -1146880 0 1 Module 1 22 313 290 0 0 Port 1 1 22 12 FSlider 22 0 0 0 0 16384 1 FSlider 22 1 8192 0 1638 14745 1 FSlider 22 2 0 0 0 16384 1 FSlider 22 3 0 0 0 102940 1 FSlider 22 4 0 0 0 163840 1 FSlider 22 5 0 0 0 163840 1 ISlider 22 0 1 1 ISlider 22 1 1 1 ISlider 22 2 1 1 ComboBox 22 0 0 1 Module 8 23 675 286 4 0 Port 0 2 23 5 Port 1 2 23 22 Port 2 1 23 22 FSlider 23 0 16384 0 0 32768 1 FSlider 23 1 16384 0 0 32768 1 FSlider 23 2 16384 0 0 32768 1 FSlider 23 3 16384 0 0 32768 1 FSlider 23 4 16384 0 0 32768 1 Module 1 24 481 288 0 0 Port 1 1 24 12 Port 2 0 24 16 FSlider 24 0 45 0 0 16384 1 FSlider 24 1 8192 0 1638 14745 1 FSlider 24 2 0 0 0 16384 1 FSlider 24 3 0 0 0 102940 1 FSlider 24 4 151 0 0 163840 1 FSlider 24 5 0 0 0 163840 1 ISlider 24 0 0 1 ISlider 24 1 1 1 ISlider 24 2 1 1 ComboBox 24 0 0 1 Module 8 26 470 175 2 0 Port 0 0 26 14 Port 1 1 26 5 FSlider 26 0 16384 0 0 32768 1 FSlider 26 1 16384 0 0 32768 1 FSlider 26 2 20463 0 0 32768 1 Comment 0 0 211 207 317 181 #PARA# 0 0 0 This patch demonstrates the excellent low pass filter by Fons Adriaensen. #ARAP# #PARA# 0 0 1 ModWheel is bound to filter cutoff. Try what happens when you modify #ARAP# #PARA# 0 0 2 the filter resonance. #ARAP# #PARA# 0 0 3 #ARAP# ams-2.0.1/demos/bass_reverb.ams0000664000076400007640000000542607770061731013352 00000000000000Module 7 1 584 142 0 0 Port 0 0 1 22 Port 1 1 1 22 FSlider 1 0 4180 0 0 16384 1 FSlider 1 1 16384 0 0 16384 1 FSlider 1 2 16384 0 0 16384 1 ComboBox 1 0 1 1 Module 11 3 145 13 0 0 Port 0 0 3 12 Port 1 3 3 12 FSlider 3 0 0 0 0 16384 1 FSlider 3 1 -107579 1 -113176 0 1 FSlider 3 2 98 0 0 16384 1 FSlider 3 3 6797 0 0 16384 1 FSlider 3 4 9902 0 0 16384 1 FSlider 3 5 -2176 1 -113176 0 1 FSlider 3 6 16384 0 1638 163840 1 Module 2 4 432 23 0 0 Port 0 0 4 3 Port 2 0 4 20 FSlider 4 0 0 0 0 163840 1 FSlider 4 1 0 0 0 163840 1 FSlider 4 2 19529 0 0 32768 1 FSlider 4 3 8192 0 0 32768 1 FSlider 4 4 8192 0 0 32768 1 Module 1 5 168 275 0 0 Port 1 1 5 12 FSlider 5 0 0 0 0 16384 1 FSlider 5 1 1638 0 0 163840 1 FSlider 5 2 0 0 0 163840 1 FSlider 5 3 8192 0 1638 14745 1 FSlider 5 4 0 0 0 163840 1 FSlider 5 5 0 0 0 163840 1 ISlider 5 0 0 1 ISlider 5 1 1 1 ISlider 5 2 1 1 ComboBox 5 0 0 1 Module 10 12 13 120 0 0 FSlider 12 0 129 0 -16384 16384 1 ISlider 12 0 24 1 ComboBox 12 0 0 1 Module 1 14 358 292 0 0 Port 1 1 14 12 FSlider 14 0 180 0 0 16384 1 FSlider 14 1 8192 0 1638 14745 1 FSlider 14 2 0 0 0 16384 1 FSlider 14 3 0 0 0 102940 1 FSlider 14 4 0 0 0 163840 1 FSlider 14 5 0 0 0 163840 1 ISlider 14 0 0 1 ISlider 14 1 1 1 ISlider 14 2 1 1 ComboBox 14 0 0 1 Module 1 15 537 291 0 0 Port 1 1 15 12 FSlider 15 0 270 0 0 16384 1 FSlider 15 1 8192 0 1638 14745 1 FSlider 15 2 0 0 0 16384 1 FSlider 15 3 0 0 0 102940 1 FSlider 15 4 0 0 0 163840 1 FSlider 15 5 0 0 0 163840 1 ISlider 15 0 0 1 ISlider 15 1 1 1 ISlider 15 2 1 1 ComboBox 15 0 0 1 Module 8 16 693 319 4 0 Port 0 2 16 5 Port 1 2 16 14 Port 2 2 16 15 FSlider 16 0 16384 0 0 32768 1 FSlider 16 1 16384 0 0 32768 1 FSlider 16 2 16384 0 0 32768 1 FSlider 16 3 16384 0 0 32768 1 FSlider 16 4 16384 0 0 32768 1 Module 11 18 23 270 0 0 Port 0 0 18 12 Port 1 3 18 12 FSlider 18 0 0 0 0 16384 1 FSlider 18 1 360 0 0 16384 1 FSlider 18 2 0 0 0 16384 1 FSlider 18 3 12648 0 0 16384 1 FSlider 18 4 0 0 0 16384 1 FSlider 18 5 16384 0 0 16384 1 FSlider 18 6 23918 0 1638 163840 1 Module 6 20 195 144 0 mvclpf24 Mvclpf-3 Port 0 0 20 16 Port 1 1 20 12 Port 2 0 20 18 FSlider 20 0 163840 0 -983040 163840 1 FSlider 20 1 -54829 0 -81920 81920 1 FSMIDI 20 1 13 0 0 FSlider 20 2 52981 0 0 163840 1 FSlider 20 3 7482 0 0 16384 1 FSMIDI 20 3 10 0 1 FSlider 20 4 0 0 0 16384 1 FSlider 20 5 -9350 0 -245760 245760 1 Module 6 22 533 35 0 gverb_1216 GVerb Port 0 0 22 4 FSlider 22 0 1828446 0 16384 4915200 1 FSlider 22 1 16680 0 1638 5898240 1 FSlider 22 2 3803 0 0 16384 1 FSlider 22 3 11536 0 0 16384 1 FSlider 22 4 0 0 -1146880 0 1 FSlider 22 5 -204800 0 -1146880 0 1 FSlider 22 6 0 0 -1146880 0 1 Comment 0 0 266 165 258 177 #PARA# 0 0 0 In this powerful bass patch the cutoff frequency has been bound to the Pitchbend parameter and the resonance is bound to the ModWheel. #ARAP# #PARA# 0 0 1 #ARAP# ams-2.0.1/demos/example_ams_demo_scope_spectrum.ams0000664000076400007640000000615107770061731017463 00000000000000Module 7 1 1019 238 0 0 Port 0 0 1 16 Port 1 1 1 16 FSlider 1 0 8192 0 0 16384 1 FSlider 1 1 8192 0 0 16384 1 FSlider 1 2 8192 0 0 16384 1 ComboBox 1 0 1 1 Module 11 3 318 33 0 0 Port 0 1 3 7 Port 1 1 3 7 FSlider 3 0 0 0 0 16384 1 FSlider 3 1 -106718 1 -113176 0 1 FSlider 3 2 0 0 0 16384 1 FSlider 3 3 3887 0 0 16384 1 FSlider 3 4 9742 0 0 16384 1 FSlider 3 5 6298 0 0 16384 1 FSlider 3 6 12354 0 1638 163840 1 Module 2 4 612 130 0 0 Port 0 0 4 3 Port 2 0 4 10 FSlider 4 0 7042 0 0 163840 1 FSlider 4 1 0 0 0 163840 1 FSlider 4 2 8192 0 0 16384 1 FSlider 4 3 8192 0 0 16384 1 FSlider 4 4 8192 0 0 16384 1 Module 1 5 386 177 0 0 Port 1 0 5 7 FSlider 5 0 0 0 0 16384 1 FSlider 5 1 1638 0 0 163840 1 FSlider 5 2 0 0 0 163840 1 FSlider 5 3 8192 0 1638 14745 1 FSlider 5 4 0 0 0 16384 1 FSlider 5 5 0 0 0 102940 1 ISlider 5 0 3 1 ISlider 5 1 1 1 ISlider 5 2 1 1 ComboBox 5 0 0 1 Module 16 7 184 104 0 0 Port 0 1 7 12 Port 1 1 7 21 ComboBox 7 0 10 1 Module 9 10 498 228 0 0 Port 0 2 10 5 Port 1 0 10 13 Port 2 0 10 18 FSlider 10 0 43297 0 0 163840 1 FSlider 10 1 111687 0 0 163840 1 FSlider 10 2 48709 0 0 163840 1 FSlider 10 3 0 0 0 163840 1 FSlider 10 4 13107 0 163 16384 1 FSlider 10 5 0 0 0 16384 1 ComboBox 10 0 6 1 Module 14 12 14 148 0 0 FSlider 12 0 27228 0 0 163840 1 FSlider 12 1 6572 0 0 16384 1 Module 15 13 278 272 0 0 Port 0 0 13 7 FSlider 13 0 8192 0 0 163840 1 FSlider 13 1 8192 0 0 163840 1 Module 6 15 715 206 0 cmt Canyon Delay Port 0 0 15 4 Port 1 0 15 4 FSlider 15 0 9273 0 163 16220 1 FSlider 15 1 12347 0 -16384 16384 1 FSlider 15 2 6788 0 163 16220 1 FSlider 15 3 13661 0 -16384 16384 1 FSlider 15 4 81920000 0 16384 81920000 1 Module 6 16 868 232 0 cmt Freeverb (Version 3) Port 0 0 16 15 Port 1 1 16 15 FSlider 16 0 8215 0 0 16384 1 FSlider 16 1 -83988 1 -113176 0 1 FSlider 16 2 -9404 1 -113176 0 1 FSlider 16 3 0 1 -113176 0 1 FSlider 16 4 16384 0 0 16384 1 CheckBox 16 0 0 1 Module 15 18 381 411 0 0 Port 0 2 18 19 FSlider 18 0 98116 0 0 163840 1 FSlider 18 1 70418 0 0 163840 1 Module 14 19 240 422 0 0 FSlider 19 0 133325 0 0 163840 1 FSlider 19 1 16384 0 0 16384 1 Module 16 21 71 302 0 0 Port 0 2 21 12 ComboBox 21 0 0 1 Module 24 23 217 4 0 0 Port 0 0 23 4 FSlider 23 0 418607 0 163840 16384000 1 FSlider 23 1 49195 0 1638 163840 1 FSlider 23 2 -686 0 -16384 16384 1 ComboBox 23 0 1 1 ComboBox 23 1 0 1 Module 25 24 113 4 0 0 Port 0 0 24 4 FSlider 24 0 16384 0 1638 163840 1 FSlider 24 1 0 0 0 327680000 1 FSlider 24 2 163840000 0 0 327680000 1 ComboBox 24 0 1 1 ComboBox 24 1 0 1 ComboBox 24 2 0 1 ComboBox 24 3 1 1 ComboBox 24 4 2 1 ComboBox 24 5 4 1 CheckBox 24 0 1 1 Module 25 25 9 4 0 0 Port 0 0 25 4 FSlider 25 0 16384 0 1638 163840 1 FSlider 25 1 0 0 0 327680000 1 FSlider 25 2 163840000 0 0 327680000 1 ComboBox 25 0 0 1 ComboBox 25 1 0 1 ComboBox 25 2 0 1 ComboBox 25 3 1 1 ComboBox 25 4 2 1 ComboBox 25 5 4 1 CheckBox 25 0 1 1 Comment 0 0 262 175 315 174 #PARA# 0 0 0 This patch has been contributed by Bill Allen. #ARAP# #PARA# 0 0 1 #ARAP# #PARA# 0 0 2 Here, a scope and two spectrum modules have been added. Just right-click on the modules to open the scope and spectrum views. #ARAP# #PARA# 0 0 3 #ARAP# #PARA# 0 0 4 #ARAP# ams-2.0.1/demos/example_burst_noise.ams0000664000076400007640000000352707770061731015124 00000000000000Module 7 1 630 137 0 0 Port 0 0 1 7 Port 1 0 1 7 FSlider 1 0 8192 0 0 16384 1 FSlider 1 1 8192 0 0 16384 1 FSlider 1 2 8192 0 0 16384 1 ComboBox 1 0 1 1 Module 19 2 194 58 0 0 Port 0 0 2 4 Port 1 3 2 3 FSlider 2 0 1553 0 0 163840 1 Module 1 3 365 59 0 0 Port 1 1 3 5 Port 2 0 3 2 FSlider 3 0 16384 0 0 16384 1 FSlider 3 1 14745 0 0 163840 1 FSlider 3 2 0 0 0 163840 1 FSlider 3 3 8192 0 1638 14745 1 FSlider 3 4 65536 0 0 163840 1 FSlider 3 5 0 0 0 163840 1 ISlider 3 0 2 1 ISlider 3 1 1 1 ISlider 3 2 1 1 ComboBox 3 0 0 1 Module 14 4 40 56 0 0 FSlider 4 0 81920 0 0 163840 1 FSlider 4 1 8192 0 0 16384 1 Module 10 5 193 205 0 0 FSlider 5 0 0 0 -16384 16384 1 ISlider 5 0 48 1 ComboBox 5 0 0 1 Module 11 6 315 316 0 0 Port 0 0 6 5 FSlider 6 0 0 0 0 16384 1 FSlider 6 1 121 0 0 16384 1 FSlider 6 2 888 0 0 16384 1 FSlider 6 3 2704 0 0 16384 1 FSlider 6 4 0 0 0 16384 1 FSlider 6 5 819 0 0 16384 1 FSlider 6 6 16384 0 1638 163840 1 Module 9 7 497 59 0 0 Port 0 0 7 8 Port 1 1 7 5 FSlider 7 0 16384 0 0 163840 1 FSlider 7 1 149312 0 0 163840 1 FSlider 7 2 0 0 0 163840 1 FSlider 7 3 0 0 0 163840 1 FSlider 7 4 13107 0 163 16384 1 FSlider 7 5 0 0 0 16384 1 ComboBox 7 0 6 1 Module 2 8 491 300 0 0 Port 0 0 8 6 Port 2 0 8 2 Port 3 3 8 3 FSlider 8 0 0 0 0 163840 1 FSlider 8 1 0 0 0 163840 1 FSlider 8 2 9396 0 0 32768 1 FSlider 8 3 9163 0 0 32768 1 FSlider 8 4 16384 0 0 32768 1 Comment 0 0 6 319 263 179 #PARA# 0 0 0 The sample & hold module is used as in a patch found in the book "Vintage Synthesizers" by Mark Vail. #ARAP# #PARA# 0 0 1 The best burst noise sounds are produced at high pitches on the keyboard. You can experiment with the parameters "In1" and "In2" of the VCA. Try what happens if you connect the output of the Sample & Hold to the Exp. FM input of the VCF and turn the Exp. FM Gain up. #ARAP# #PARA# 0 0 2 #ARAP# #PARA# 0 0 3 #ARAP# #PARA# 0 0 4 #ARAP# ams-2.0.1/demos/example_3vco.ams0000664000076400007640000000512107770061731013432 00000000000000Module 7 1 589 170 0 0 Port 0 0 1 10 Port 1 1 1 10 FSlider 1 0 4180 0 0 16384 1 FSlider 1 1 16384 0 0 16384 1 FSlider 1 2 16384 0 0 16384 1 ComboBox 1 0 1 1 Module 11 3 145 13 0 0 Port 0 0 3 12 FSlider 3 0 0 0 0 16384 1 FSlider 3 1 -64235 1 -113176 0 1 FSlider 3 2 98 0 0 16384 1 FSlider 3 3 2312 0 0 16384 1 FSlider 3 4 11464 0 0 16384 1 FSlider 3 5 -18572 1 -113176 0 1 FSlider 3 6 16384 0 1638 163840 1 Module 2 4 432 23 0 0 Port 0 0 4 3 Port 2 0 4 7 FSlider 4 0 0 0 0 163840 1 FSlider 4 1 0 0 0 163840 1 FSlider 4 2 19529 0 0 32768 1 FSlider 4 3 8192 0 0 32768 1 FSlider 4 4 8192 0 0 32768 1 Module 1 5 145 267 0 0 Port 1 1 5 12 FSlider 5 0 0 0 0 16384 1 FSlider 5 1 1638 0 0 163840 1 FSlider 5 2 0 0 0 163840 1 FSlider 5 3 8192 0 1638 14745 1 FSlider 5 4 0 0 0 163840 1 FSlider 5 5 0 0 0 163840 1 ISlider 5 0 0 1 ISlider 5 1 1 1 ISlider 5 2 1 1 ComboBox 5 0 0 1 Module 9 7 319 118 0 0 Port 0 0 7 16 Port 1 0 7 9 Port 2 0 7 18 FSlider 7 0 6687 0 0 163840 1 FSlider 7 1 64851 0 10449 133827 1 FSMIDI 7 1 10 0 1 FSlider 7 2 39288 0 0 163840 1 FSlider 7 3 0 0 0 163840 1 FSlider 7 4 1653 0 163 16384 1 FSlider 7 5 0 0 0 16384 1 ComboBox 7 0 6 1 Module 15 9 145 158 0 0 Port 0 1 9 12 FSlider 9 0 2090 0 0 163840 1 FSlider 9 1 2090 0 0 163840 1 Module 6 10 563 46 0 cmt Freeverb (Version 3) Port 0 0 10 4 Port 1 0 10 4 FSlider 10 0 11502 0 0 16384 1 FSlider 10 1 -89825 1 -113176 0 1 FSlider 10 2 -5338 1 -113176 0 1 FSlider 10 3 -5338 1 -113176 0 1 FSlider 10 4 16384 0 0 16384 1 CheckBox 10 0 0 1 Module 10 12 13 120 0 0 FSlider 12 0 129 0 -16384 16384 1 FSMIDI 12 0 13 0 0 ISlider 12 0 24 1 ComboBox 12 0 0 1 Module 1 14 298 276 0 0 Port 1 1 14 12 FSlider 14 0 84 0 0 16384 1 FSlider 14 1 8192 0 1638 14745 1 FSlider 14 2 0 0 0 16384 1 FSlider 14 3 0 0 0 102940 1 FSlider 14 4 0 0 0 163840 1 FSlider 14 5 0 0 0 163840 1 ISlider 14 0 1 1 ISlider 14 1 1 1 ISlider 14 2 1 1 ComboBox 14 0 0 1 Module 1 15 430 273 0 0 Port 1 1 15 12 FSlider 15 0 168 0 0 16384 1 FSlider 15 1 8192 0 1638 14745 1 FSlider 15 2 0 0 0 16384 1 FSlider 15 3 0 0 0 102940 1 FSlider 15 4 0 0 0 163840 1 FSlider 15 5 0 0 0 163840 1 ISlider 15 0 2 1 ISlider 15 1 1 1 ISlider 15 2 1 1 ComboBox 15 0 0 1 Module 8 16 589 300 4 0 Port 0 2 16 5 Port 1 2 16 14 Port 2 2 16 15 FSlider 16 0 16384 0 0 32768 1 FSlider 16 1 16384 0 0 32768 1 FSlider 16 2 16384 0 0 32768 1 FSlider 16 3 16384 0 0 32768 1 FSlider 16 4 16384 0 0 32768 1 Module 11 18 23 270 0 0 Port 0 0 18 12 FSlider 18 0 0 0 0 16384 1 FSlider 18 1 1134 0 0 16384 1 FSlider 18 2 327 0 0 16384 1 FSlider 18 3 5587 0 0 16384 1 FSlider 18 4 0 0 0 16384 1 FSlider 18 5 819 0 0 16384 1 FSlider 18 6 16384 0 1638 163840 1 ams-2.0.1/demos/example_strings.ams0000664000076400007640000000526607770061731014263 00000000000000Module 7 1 590 33 0 0 Port 0 0 1 21 Port 1 1 1 21 FSlider 1 0 8192 0 0 16384 1 FSlider 1 1 8192 0 0 16384 1 FSlider 1 2 8192 0 0 16384 1 ComboBox 1 0 1 1 Module 11 3 188 15 0 0 Port 0 0 3 7 FSlider 3 0 0 0 0 16384 1 FSlider 3 1 -22691 1 -113176 0 1 FSlider 3 2 98 0 0 16384 1 FSlider 3 3 0 0 0 16384 1 FSlider 3 4 16384 0 0 16384 1 FSlider 3 5 7380 0 0 16384 1 FSlider 3 6 16384 0 1638 163840 1 Module 2 4 425 19 0 0 Port 0 0 4 3 Port 2 0 4 22 FSlider 4 0 0 0 0 163840 1 FSlider 4 1 0 0 0 163840 1 FSlider 4 2 8192 0 0 16384 1 FSlider 4 3 8192 0 0 16384 1 FSlider 4 4 8192 0 0 16384 1 Module 1 5 237 153 0 0 Port 1 1 5 7 Port 4 1 5 10 FSlider 5 0 94 0 0 669 1 FSlider 5 1 1638 0 0 163840 1 FSlider 5 2 2101 0 0 163840 1 FSlider 5 3 8192 0 1638 14745 1 FSlider 5 4 0 0 0 163840 1 FSlider 5 5 0 0 0 163840 1 ISlider 5 0 2 1 ISlider 5 1 1 1 ISlider 5 2 1 1 ComboBox 5 0 0 1 Module 10 7 10 24 0 0 FSlider 7 0 129 0 -16384 16384 1 FSMIDI 7 0 13 0 0 ISlider 7 0 24 1 ComboBox 7 0 0 1 Module 1 9 137 208 0 0 Port 1 1 9 7 Port 2 2 9 11 Port 4 1 9 10 FSlider 9 0 0 0 0 16384 1 FSlider 9 1 8259 0 1638 14745 1 FSlider 9 2 630 0 0 16384 1 FSlider 9 3 0 0 0 102940 1 FSlider 9 4 267 0 0 1486 1 FSlider 9 5 0 0 0 163840 1 ISlider 9 0 2 1 ISlider 9 1 1 1 ISlider 9 2 1 1 ComboBox 9 0 0 1 Module 3 10 9 277 0 0 FSlider 10 0 188082 0 0 1638400 1 FSlider 10 1 0 0 0 102940 1 Module 14 11 5 148 0 0 FSlider 11 0 418 0 0 163840 1 FSlider 11 1 14169 0 0 16384 1 Module 8 16 365 277 4 0 Port 0 2 16 5 Port 1 2 16 9 Port 2 3 16 5 Port 3 3 16 9 FSlider 16 0 16384 0 0 32768 1 FSlider 16 1 16384 0 0 32768 1 FSlider 16 2 16384 0 0 32768 1 FSlider 16 3 16384 0 0 32768 1 FSlider 16 4 16384 0 0 32768 1 Module 6 20 351 183 0 cs_chorus Chorus2 Port 0 0 20 4 FSlider 20 0 31477 0 0 491520 1 FSlider 20 1 32815 1 -95176 37725 1 FSlider 20 2 2825 0 0 163840 1 FSlider 20 3 13723 1 -75451 55725 1 FSlider 20 4 3027 0 0 49152 1 Module 6 21 490 359 0 g2reverb Stereo reverb Port 0 0 21 20 Port 1 0 21 20 FSlider 21 0 1067785 0 163840 2457600 1 FSlider 21 1 31719 0 16384 327680 1 FSlider 21 2 13317 0 0 16384 1 FSlider 21 3 3309 0 0 16384 1 FSlider 21 4 0 0 -1310720 0 1 FSlider 21 5 -142048 0 -1310720 0 1 FSlider 21 6 -248585 0 -1310720 0 1 Module 6 22 472 220 0 mvclpf24 Mvclpf-4 Port 0 0 22 16 FSlider 22 0 0 0 -983040 163840 1 FSlider 22 1 54765 0 -190 81920 1 FSMIDI 22 1 10 0 1 FSlider 22 2 0 0 0 163840 1 FSlider 22 3 686 0 0 16384 1 FSlider 22 4 0 0 0 16384 1 FSlider 22 5 0 0 -245760 245760 1 LSlider 22 0 3 1 Comment 0 0 31 290 200 170 #PARA# 0 0 0 This patch is based on the article "Synth Secrets, Synthesizing Strings" by Gordon Reid, published in Sound on Sound, Vol. 18(4), Feb. 2003 #ARAP# #PARA# 0 0 1 #ARAP# #PARA# 0 0 2 #ARAP# #PARA# 0 0 3 #ARAP# ams-2.0.1/demos/example_full.ams0000664000076400007640000000553007770061731013526 00000000000000Module 7 1 680 387 0 0 Port 0 0 1 10 Port 1 1 1 10 FSlider 1 0 13849 0 0 16384 1 FSlider 1 1 16384 0 0 16384 1 FSlider 1 2 16384 0 0 16384 1 ComboBox 1 0 1 1 Module 11 3 145 13 0 0 Port 0 0 3 12 FSlider 3 0 0 0 0 16384 1 FSlider 3 1 -64235 1 -113176 0 1 FSlider 3 2 98 0 0 16384 1 FSlider 3 3 2312 0 0 16384 1 FSlider 3 4 11464 0 0 16384 1 FSlider 3 5 -64235 1 -113176 0 1 FSlider 3 6 16384 0 1638 163840 1 Module 2 4 638 180 0 0 Port 0 0 4 3 Port 2 0 4 7 FSlider 4 0 0 0 0 163840 1 FSlider 4 1 0 0 0 163840 1 FSlider 4 2 19529 0 0 32768 1 FSlider 4 3 8192 0 0 32768 1 FSlider 4 4 8192 0 0 32768 1 Module 1 5 189 262 0 0 Port 1 1 5 12 Port 2 0 5 14 FSlider 5 0 0 0 0 16384 1 FSlider 5 1 -37725 1 -113176 37725 1 FSlider 5 2 0 0 0 163840 1 FSlider 5 3 8192 0 1638 14745 1 FSlider 5 4 420 0 0 163840 1 FSlider 5 5 0 0 0 163840 1 ISlider 5 0 0 1 ISlider 5 1 1 1 ISlider 5 2 1 1 ComboBox 5 0 0 1 Module 9 7 507 172 0 0 Port 0 0 7 16 Port 1 0 7 9 Port 2 0 7 14 Port 3 0 7 18 FSlider 7 0 2508 0 0 163840 1 FSlider 7 1 29620 0 0 139328 1 FSMIDI 7 1 10 0 1 FSlider 7 2 2952 0 0 163840 1 FSlider 7 3 39853 0 0 163840 1 FSlider 7 4 11464 0 163 16384 1 FSlider 7 5 0 0 0 16384 1 ComboBox 7 0 6 1 Module 15 9 225 158 0 0 Port 0 1 9 12 FSlider 9 0 1408 0 0 163840 1 FSlider 9 1 1408 0 0 163840 1 Module 6 10 505 386 0 cmt Freeverb (Version 3) Port 0 0 10 4 Port 1 0 10 4 FSlider 10 0 11502 0 0 16384 1 FSlider 10 1 -89825 1 -113176 0 1 FSlider 10 2 -5764 1 -113176 0 1 FSlider 10 3 -5764 1 -113176 0 1 FSlider 10 4 16384 0 0 16384 1 CheckBox 10 0 0 1 Module 10 12 13 120 0 0 FSlider 12 0 129 0 -16384 16384 1 FSMIDI 12 0 13 0 0 ISlider 12 0 24 1 ComboBox 12 0 0 1 Module 3 14 12 346 0 0 FSlider 14 0 112669 0 0 1638400 1 FSlider 14 1 0 0 0 102940 1 Module 14 15 11 606 0 0 FSlider 15 0 81920 0 0 163840 1 FSlider 15 1 8192 0 0 16384 1 Module 8 16 348 356 4 0 Port 0 2 16 5 Port 1 2 16 17 Port 2 2 16 20 Port 3 0 16 15 FSlider 16 0 16431 0 0 32768 1 FSlider 16 1 16431 0 0 32768 1 FSlider 16 2 16431 0 0 32768 1 FSlider 16 3 16431 0 0 32768 1 FSlider 16 4 3474 0 0 32768 1 Module 1 17 189 507 0 0 Port 1 1 17 12 Port 2 0 17 14 FSlider 17 0 49 0 0 16384 1 FSlider 17 1 -37725 1 -113176 37725 1 FSlider 17 2 0 0 0 163840 1 FSlider 17 3 8192 0 1638 14745 1 FSlider 17 4 0 0 0 163840 1 FSlider 17 5 0 0 0 163840 1 ISlider 17 0 1 1 ISlider 17 1 1 1 ISlider 17 2 1 1 ComboBox 17 0 0 1 Module 11 18 310 15 0 0 Port 0 0 18 12 FSlider 18 0 0 0 0 16384 1 FSlider 18 1 394 0 0 16384 1 FSlider 18 2 246 0 0 16384 1 FSlider 18 3 2903 0 0 16384 1 FSlider 18 4 5511 0 0 16384 1 FSlider 18 5 819 0 0 16384 1 FSlider 18 6 16384 0 1638 163840 1 Module 1 20 190 752 0 0 Port 1 1 20 12 FSlider 20 0 98 0 0 16384 1 FSlider 20 1 -37725 1 -113176 37725 1 FSlider 20 2 0 0 0 163840 1 FSlider 20 3 8192 0 1638 14745 1 FSlider 20 4 0 0 0 163840 1 FSlider 20 5 0 0 0 163840 1 ISlider 20 0 2 1 ISlider 20 1 1 1 ISlider 20 2 1 1 ComboBox 20 0 0 1 ams-2.0.1/demos/living_phaser.ams0000664000076400007640000000562707770061731013712 00000000000000Module 7 1 1019 238 0 0 Port 0 0 1 16 Port 1 1 1 16 FSlider 1 0 16384 0 0 16384 1 FSlider 1 1 8192 0 0 16384 1 FSlider 1 2 8192 0 0 16384 1 ComboBox 1 0 1 1 Module 11 3 318 33 0 0 Port 0 1 3 7 Port 1 1 3 7 FSlider 3 0 0 0 0 16384 1 FSlider 3 1 -106718 1 -113176 0 1 FSlider 3 2 0 0 0 16384 1 FSlider 3 3 3887 0 0 16384 1 FSlider 3 4 9742 0 0 16384 1 FSlider 3 5 6298 0 0 16384 1 FSlider 3 6 12354 0 1638 163840 1 Module 2 4 528 36 0 0 Port 0 0 4 3 Port 2 0 4 10 FSlider 4 0 7042 0 0 163840 1 FSlider 4 1 0 0 0 163840 1 FSlider 4 2 8192 0 0 16384 1 FSlider 4 3 8192 0 0 16384 1 FSlider 4 4 8192 0 0 16384 1 Module 1 5 386 177 0 0 Port 1 0 5 7 FSlider 5 0 0 0 0 16384 1 FSlider 5 1 1638 0 0 163840 1 FSlider 5 2 0 0 0 163840 1 FSlider 5 3 8192 0 1638 14745 1 FSlider 5 4 0 0 0 16384 1 FSlider 5 5 0 0 0 102940 1 ISlider 5 0 3 1 ISlider 5 1 1 1 ISlider 5 2 1 1 ComboBox 5 0 0 1 Module 16 7 184 104 0 0 Port 0 1 7 12 Port 1 1 7 21 ComboBox 7 0 10 1 Module 9 10 497 233 0 0 Port 0 2 10 5 Port 1 0 10 13 Port 2 0 10 18 FSlider 10 0 17554 0 0 163840 1 FSlider 10 1 111687 0 0 163840 1 FSlider 10 2 48709 0 0 163840 1 FSlider 10 3 0 0 0 163840 1 FSlider 10 4 13107 0 163 16384 1 FSlider 10 5 0 0 0 16384 1 ComboBox 10 0 6 1 Module 14 12 14 148 0 0 FSlider 12 0 27228 0 0 163840 1 FSlider 12 1 6572 0 0 16384 1 Module 15 13 278 272 0 0 Port 0 0 13 7 FSlider 13 0 8192 0 0 163840 1 FSlider 13 1 8192 0 0 163840 1 Module 6 15 715 206 0 cmt Canyon Delay Port 0 0 15 24 Port 1 0 15 25 FSlider 15 0 9273 0 163 16220 1 FSlider 15 1 12347 0 -16384 16384 1 FSlider 15 2 6788 0 163 16220 1 FSlider 15 3 13661 0 -16384 16384 1 FSlider 15 4 81920000 0 16384 81920000 1 Module 6 16 975 136 0 cmt Freeverb (Version 3) Port 0 0 16 15 Port 1 1 16 15 FSlider 16 0 8215 0 0 16384 1 FSlider 16 1 -83988 1 -113176 0 1 FSlider 16 2 -9404 1 -113176 0 1 FSlider 16 3 0 1 -113176 0 1 FSlider 16 4 16384 0 0 16384 1 CheckBox 16 0 0 1 Module 15 18 381 411 0 0 Port 0 2 18 19 FSlider 18 0 98116 0 0 163840 1 FSlider 18 1 70418 0 0 163840 1 Module 14 19 240 422 0 0 FSlider 19 0 133325 0 0 163840 1 FSlider 19 1 16384 0 0 16384 1 Module 16 21 71 302 0 0 Port 0 2 21 12 ComboBox 21 0 0 1 Module 6 23 754 26 0 bode_shifter_cv_1432 Bode frequency shifter (CV) Port 0 0 23 4 FSlider 23 0 14419592 0 0 81920000 1 FSlider 23 1 -16384 0 -16384 16384 1 FSlider 23 2 0 0 0 16384 1 Module 8 24 902 327 2 0 Port 0 0 24 27 Port 1 0 24 23 FSlider 24 0 16384 0 0 32768 1 FSlider 24 1 16384 0 0 32768 1 FSlider 24 2 4932 0 0 32768 1 Module 8 25 747 367 2 0 Port 0 0 25 4 Port 1 1 25 23 FSlider 25 0 16384 0 0 32768 1 FSlider 25 1 16384 0 0 32768 1 FSlider 25 2 4932 0 0 32768 1 Module 6 27 744 481 1 cs_phaser Phaser1 Port 0 0 27 4 Port 1 0 27 18 Port 2 0 27 5 Port 3 0 27 13 Port 5 0 27 13 FSlider 27 0 -99474 0 -655360 163840 1 FSlider 27 1 18390 0 -81920 81920 1 FSlider 27 2 5851 0 0 163840 1 FSlider 27 3 60604 0 0 163840 1 FSlider 27 4 16296 0 -16384 16384 1 FSlider 27 5 16384 0 -16384 16384 1 LSlider 27 0 30 1ams-2.0.1/demos/example_3vco_bode.ams0000664000076400007640000000500407770061731014423 00000000000000Module 7 1 589 170 0 0 Port 0 0 1 10 Port 1 1 1 10 FSlider 1 0 4180 0 0 16384 1 FSlider 1 1 16384 0 0 16384 1 FSlider 1 2 16384 0 0 16384 1 ComboBox 1 0 1 1 Module 11 3 145 13 0 0 Port 0 0 3 12 FSlider 3 0 0 0 0 16384 1 FSlider 3 1 -64235 1 -113176 0 1 FSlider 3 2 98 0 0 16384 1 FSlider 3 3 2312 0 0 16384 1 FSlider 3 4 11464 0 0 16384 1 FSlider 3 5 -18572 1 -113176 0 1 FSlider 3 6 16384 0 1638 163840 1 Module 2 4 432 23 0 0 Port 0 0 4 3 Port 2 0 4 7 FSlider 4 0 0 0 0 163840 1 FSlider 4 1 0 0 0 163840 1 FSlider 4 2 19529 0 0 32768 1 FSlider 4 3 8192 0 0 32768 1 FSlider 4 4 8192 0 0 32768 1 Module 1 5 145 267 0 0 Port 1 1 5 12 FSlider 5 0 0 0 0 16384 1 FSlider 5 1 1638 0 0 163840 1 FSlider 5 2 0 0 0 163840 1 FSlider 5 3 8192 0 1638 14745 1 FSlider 5 4 0 0 0 163840 1 FSlider 5 5 0 0 0 163840 1 ISlider 5 0 0 1 ISlider 5 1 1 1 ISlider 5 2 1 1 ComboBox 5 0 0 1 Module 9 7 319 118 0 0 Port 0 0 7 16 Port 1 0 7 9 FSlider 7 0 8364 0 0 163840 1 FSlider 7 1 97882 0 10449 133827 1 FSMIDI 7 1 10 0 1 FSlider 7 2 0 0 0 163840 1 FSlider 7 3 0 0 0 163840 1 FSlider 7 4 1653 0 163 16384 1 FSlider 7 5 0 0 0 16384 1 ComboBox 7 0 6 1 Module 15 9 145 158 0 0 Port 0 1 9 12 FSlider 9 0 8192 0 0 163840 1 FSlider 9 1 8192 0 0 163840 1 Module 6 10 563 46 0 cmt Freeverb (Version 3) Port 0 0 10 18 Port 1 1 10 18 FSlider 10 0 11502 0 0 16384 1 FSlider 10 1 -89825 1 -113176 0 1 FSlider 10 2 -5338 1 -113176 0 1 FSlider 10 3 -5338 1 -113176 0 1 FSlider 10 4 16384 0 0 16384 1 CheckBox 10 0 0 1 Module 10 12 13 120 0 0 FSlider 12 0 129 0 -16384 16384 1 FSMIDI 12 0 13 0 0 ISlider 12 0 24 1 ComboBox 12 0 0 1 Module 1 14 298 276 0 0 Port 1 1 14 12 FSlider 14 0 84 0 0 16384 1 FSlider 14 1 8192 0 1638 14745 1 FSlider 14 2 0 0 0 16384 1 FSlider 14 3 0 0 0 102940 1 FSlider 14 4 0 0 0 163840 1 FSlider 14 5 0 0 0 163840 1 ISlider 14 0 1 1 ISlider 14 1 1 1 ISlider 14 2 1 1 ComboBox 14 0 0 1 Module 1 15 430 273 0 0 Port 1 1 15 12 FSlider 15 0 168 0 0 16384 1 FSlider 15 1 8192 0 1638 14745 1 FSlider 15 2 0 0 0 16384 1 FSlider 15 3 0 0 0 102940 1 FSlider 15 4 0 0 0 163840 1 FSlider 15 5 0 0 0 163840 1 ISlider 15 0 2 1 ISlider 15 1 1 1 ISlider 15 2 1 1 ComboBox 15 0 0 1 Module 8 16 589 300 4 0 Port 0 2 16 5 Port 1 2 16 14 Port 2 2 16 15 FSlider 16 0 16384 0 0 32768 1 FSlider 16 1 16384 0 0 32768 1 FSlider 16 2 16384 0 0 32768 1 FSlider 16 3 16384 0 0 32768 1 FSlider 16 4 16384 0 0 32768 1 Module 6 18 439 164 0 bode_shifter_cv_1432 Bode frequency shifter (CV) Port 0 0 18 4 FSlider 18 0 3200532 0 0 81920000 1 FSlider 18 1 -16384 0 -16384 16384 1 FSlider 18 2 0 0 0 16384 1 ams-2.0.1/demos/example_midiout_random.ams0000664000076400007640000000245007770061731015574 00000000000000Module 16 1 377 19 0 0 Port 0 2 1 3 ComboBox 1 0 10 1 Module 29 2 557 122 0 0 Port 0 0 2 1 Port 1 0 2 8 Port 2 1 2 1 FSlider 2 0 16384 0 0 163840 1 FSlider 2 1 16384 0 0 163840 1 FSlider 2 2 9007 0 0 163840 1 ISlider 2 0 69 1 ISlider 2 1 57 1 ISlider 2 2 24 1 ISlider 2 3 25 1 ComboBox 2 0 0 1 ComboBox 2 1 2 1 Module 14 3 144 18 0 0 FSlider 3 0 25467 0 0 163840 1 FSlider 3 1 7980 0 0 16384 1 Module 28 4 546 277 0 0 FSlider 4 0 8192 0 0 16384 1 FSlider 4 1 8192 0 0 16384 1 FSlider 4 2 8192 0 0 16384 1 ComboBox 4 0 1 1 Module 14 5 142 177 0 0 FSlider 5 0 19101 0 0 163840 1 FSlider 5 1 8192 0 0 16384 1 Module 14 6 150 368 0 0 FSlider 6 0 25467 0 0 163840 1 FSlider 6 1 8192 0 0 16384 1 Module 29 7 373 370 0 0 Port 0 2 7 6 Port 2 1 7 1 FSlider 7 0 16384 0 0 163840 1 FSlider 7 1 16384 0 0 163840 1 FSlider 7 2 8192 0 0 163840 1 ISlider 7 0 51 1 ISlider 7 1 42 1 ISlider 7 2 24 1 ISlider 7 3 25 1 ComboBox 7 0 9 1 ComboBox 7 1 2 1 Module 16 8 374 188 0 0 Port 0 2 8 5 ComboBox 8 0 6 1 Comment 0 0 253 156 311 192 #PARA# 0 0 0 Just connect the two readable MIDI ports of AlsaModularSynth with a GM compatible MIDI sound source and listen :-) #ARAP# #PARA# 0 0 1 To make this sound more interesting, it is recommended to select two different MIDI instruments for the two instruments played on MIDI channel 0. #ARAP# ams-2.0.1/demos/example_ams_demo.ams0000664000076400007640000000443311154456617014353 00000000000000Module 7 1 1019 238 0 0 Port 0 0 1 16 Port 1 1 1 16 FSlider 1 0 8192 0 0 16384 1 FSlider 1 1 8192 0 0 16384 1 FSlider 1 2 8192 0 0 16384 1 ComboBox 1 0 1 1 Module 11 3 318 33 0 0 Port 0 1 3 7 Port 1 1 3 7 FSlider 3 0 0 0 0 16384 1 FSlider 3 1 -106718 1 -113176 0 1 FSlider 3 2 0 0 0 16384 1 FSlider 3 3 3887 0 0 16384 1 FSlider 3 4 9742 0 0 16384 1 FSlider 3 5 6298 0 0 16384 1 FSlider 3 6 12354 0 1638 163840 1 Module 2 4 612 130 0 0 Port 0 0 4 3 Port 2 0 4 10 FSlider 4 0 7042 0 0 163840 1 FSlider 4 1 0 0 0 163840 1 FSlider 4 2 8192 0 0 16384 1 FSlider 4 3 8192 0 0 16384 1 FSlider 4 4 8192 0 0 16384 1 Module 1 5 386 177 0 0 Port 1 0 5 7 FSlider 5 0 0 0 0 16384 1 FSlider 5 1 0 0 0 163840 1 FSlider 5 2 0 0 0 163840 1 FSlider 5 3 8192 0 1638 14745 1 FSlider 5 4 0 0 0 16384 1 FSlider 5 5 0 0 0 102940 1 ISlider 5 0 3 1 ISlider 5 1 1 1 ISlider 5 2 1 1 ComboBox 5 0 0 1 Module 16 7 184 104 0 0 Port 0 1 7 12 Port 1 1 7 21 ComboBox 7 0 10 1 Module 9 10 498 228 0 0 Port 0 2 10 5 Port 1 0 10 13 Port 2 0 10 18 FSlider 10 0 43297 0 0 163840 1 FSlider 10 1 111687 0 0 163840 1 FSlider 10 2 48709 0 0 163840 1 FSlider 10 3 0 0 0 163840 1 FSlider 10 4 13107 0 163 16384 1 FSlider 10 5 0 0 0 16384 1 ComboBox 10 0 6 1 Module 14 12 14 148 0 0 FSlider 12 0 27228 0 0 163840 1 FSlider 12 1 6572 0 0 16384 1 Module 15 13 278 272 0 0 Port 0 0 13 7 FSlider 13 0 8192 0 0 163840 1 FSlider 13 1 8192 0 0 163840 1 Module 6 15 715 206 0 cmt Canyon Delay Port 0 0 15 4 Port 1 0 15 4 FSlider 15 0 9273 0 163 16220 1 FSlider 15 1 12347 0 -16384 16384 1 FSlider 15 2 6788 0 163 16220 1 FSlider 15 3 13661 0 -16384 16384 1 FSlider 15 4 81920000 0 16384 81920000 1 Module 6 16 868 232 0 cmt Freeverb (Version 3) Port 0 0 16 15 Port 1 1 16 15 FSlider 16 0 8215 0 0 16384 1 FSlider 16 1 -83988 1 -113176 0 1 FSlider 16 2 -9404 1 -113176 0 1 FSlider 16 3 0 1 -113176 0 1 FSlider 16 4 16384 0 0 16384 1 CheckBox 16 0 0 1 Module 15 18 381 411 0 0 Port 0 2 18 19 FSlider 18 0 98116 0 0 163840 1 FSlider 18 1 70418 0 0 163840 1 Module 14 19 240 422 0 0 FSlider 19 0 133325 0 0 163840 1 FSlider 19 1 16384 0 0 16384 1 Module 16 21 71 302 0 0 Port 0 2 21 12 ComboBox 21 0 0 1 Comment 0 0 262 175 221 174 #PARA# 0 0 0 #ARAP# #PARA# 0 0 1 This patch has been contributed by Bill Allen. #ARAP# #PARA# 0 0 2 #ARAP# #PARA# 0 0 3 Just relax and enjoy! #ARAP# ams-2.0.1/demos/sequence01.ams0000664000076400007640000000551607770061731013026 00000000000000Module 12 1 23 89 32 0 ISlider 1 0 2 1 ISlider 1 1 140 1 ISlider 1 2 20 1 ISlider 1 3 63 1 ISlider 1 4 24 1 ISlider 1 5 63 1 ISlider 1 6 27 1 ISlider 1 7 63 1 ISlider 1 8 32 1 ISlider 1 9 63 1 ISlider 1 10 32 1 ISlider 1 11 63 1 ISlider 1 12 27 1 ISlider 1 13 63 1 ISlider 1 14 24 1 ISlider 1 15 63 1 ISlider 1 16 20 1 ISlider 1 17 63 1 ISlider 1 18 19 1 ISlider 1 19 63 1 ISlider 1 20 22 1 ISlider 1 21 63 1 ISlider 1 22 27 1 ISlider 1 23 63 1 ISlider 1 24 34 1 ISlider 1 25 63 1 ISlider 1 26 34 1 ISlider 1 27 63 1 ISlider 1 28 27 1 ISlider 1 29 63 1 ISlider 1 30 22 1 ISlider 1 31 63 1 ISlider 1 32 19 1 ISlider 1 33 63 1 ISlider 1 34 20 1 ISlider 1 35 63 1 ISlider 1 36 24 1 ISlider 1 37 63 1 ISlider 1 38 27 1 ISlider 1 39 63 1 ISlider 1 40 32 1 ISlider 1 41 63 1 ISlider 1 42 32 1 ISlider 1 43 63 1 ISlider 1 44 27 1 ISlider 1 45 63 1 ISlider 1 46 24 1 ISlider 1 47 63 1 ISlider 1 48 20 1 ISlider 1 49 63 1 ISlider 1 50 15 1 ISlider 1 51 63 1 ISlider 1 52 22 1 ISlider 1 53 63 1 ISlider 1 54 27 1 ISlider 1 55 63 1 ISlider 1 56 39 1 ISlider 1 57 63 1 ISlider 1 58 39 1 ISlider 1 59 63 1 ISlider 1 60 27 1 ISlider 1 61 63 1 ISlider 1 62 22 1 ISlider 1 63 63 1 ISlider 1 64 15 1 ISlider 1 65 63 1 ComboBox 1 0 2 1 CheckBox 1 0 1 1 CheckBox 1 1 1 1 CheckBox 1 2 1 1 CheckBox 1 3 1 1 CheckBox 1 4 1 1 CheckBox 1 5 1 1 CheckBox 1 6 1 1 CheckBox 1 7 1 1 CheckBox 1 8 1 1 CheckBox 1 9 1 1 CheckBox 1 10 1 1 CheckBox 1 11 1 1 CheckBox 1 12 1 1 CheckBox 1 13 1 1 CheckBox 1 14 1 1 CheckBox 1 15 1 1 CheckBox 1 16 1 1 CheckBox 1 17 1 1 CheckBox 1 18 1 1 CheckBox 1 19 1 1 CheckBox 1 20 1 1 CheckBox 1 21 1 1 CheckBox 1 22 1 1 CheckBox 1 23 1 1 CheckBox 1 24 1 1 CheckBox 1 25 1 1 CheckBox 1 26 1 1 CheckBox 1 27 1 1 CheckBox 1 28 1 1 CheckBox 1 29 1 1 CheckBox 1 30 1 1 CheckBox 1 31 1 1 Module 7 2 627 234 0 0 Port 0 0 2 6 Port 1 0 2 6 FSlider 2 0 8192 0 0 16384 1 FSlider 2 1 8192 0 0 16384 1 FSlider 2 2 8192 0 0 16384 1 ComboBox 2 0 1 1 Module 1 3 159 267 0 0 Port 1 1 3 1 FSlider 3 0 0 0 0 16384 1 FSlider 3 1 0 0 0 163840 1 FSlider 3 2 0 0 0 163840 1 FSlider 3 3 8192 0 1638 14745 1 FSlider 3 4 0 0 0 16384 1 FSlider 3 5 0 0 0 102940 1 ISlider 3 0 3 1 ISlider 3 1 1 1 ISlider 3 2 1 1 ComboBox 3 0 0 1 Module 9 4 375 247 0 0 Port 0 3 4 3 Port 1 1 4 1 Port 2 1 4 5 FSlider 4 0 12792 0 0 163840 1 FSlider 4 1 100370 0 0 163840 1 FSlider 4 2 68882 0 0 163840 1 FSlider 4 3 0 0 0 163840 1 FSlider 4 4 4206 0 163 16384 1 FSlider 4 5 0 0 0 16384 1 ComboBox 4 0 1 1 Module 11 5 250 84 0 0 Port 0 0 5 1 FSlider 5 0 0 0 0 16384 1 FSlider 5 1 -64235 1 -113176 0 1 FSlider 5 2 295 0 0 16384 1 FSlider 5 3 -43503 1 -113176 0 1 FSlider 5 4 0 0 0 16384 1 FSlider 5 5 819 0 0 16384 1 FSlider 5 6 16384 0 1638 163840 1 Module 2 6 514 186 0 0 Port 0 0 6 5 Port 2 0 6 4 FSlider 6 0 0 0 0 163840 1 FSlider 6 1 0 0 0 163840 1 FSlider 6 2 8192 0 0 16384 1 FSlider 6 3 8192 0 0 16384 1 FSlider 6 4 8192 0 0 16384 1 ams-2.0.1/demos/example_basic_vcf_reverb.ams0000664000076400007640000000351607770061731016052 00000000000000Module 7 1 483 181 0 0 Port 0 0 1 10 Port 1 1 1 10 FSlider 1 0 13849 0 0 16384 1 FSlider 1 1 16384 0 0 16384 1 FSlider 1 2 16384 0 0 16384 1 ComboBox 1 0 1 1 Module 11 3 145 13 0 0 Port 0 0 3 12 FSlider 3 0 0 0 0 16384 1 FSlider 3 1 -64235 1 -113176 0 1 FSlider 3 2 98 0 0 16384 1 FSlider 3 3 2312 0 0 16384 1 FSlider 3 4 11464 0 0 16384 1 FSlider 3 5 -64235 1 -113176 0 1 FSlider 3 6 16384 0 1638 163840 1 Module 2 4 432 23 0 0 Port 0 0 4 3 Port 2 0 4 7 FSlider 4 0 0 0 0 163840 1 FSlider 4 1 0 0 0 163840 1 FSlider 4 2 19529 0 0 32768 1 FSlider 4 3 8192 0 0 32768 1 FSlider 4 4 8192 0 0 32768 1 Module 1 5 145 267 0 0 Port 1 1 5 12 FSlider 5 0 0 0 0 16384 1 FSlider 5 1 1638 0 0 163840 1 FSlider 5 2 0 0 0 163840 1 FSlider 5 3 8192 0 1638 14745 1 FSlider 5 4 0 0 0 163840 1 FSlider 5 5 0 0 0 163840 1 ISlider 5 0 0 1 ISlider 5 1 1 1 ISlider 5 2 1 1 ComboBox 5 0 0 1 Module 9 7 319 118 0 0 Port 0 2 7 5 Port 1 0 7 9 FSlider 7 0 8364 0 0 163840 1 FSlider 7 1 89138 0 10449 133827 1 FSMIDI 7 1 10 0 1 FSlider 7 2 0 0 0 163840 1 FSlider 7 3 0 0 0 163840 1 FSlider 7 4 13107 0 163 16384 1 FSlider 7 5 0 0 0 16384 1 ComboBox 7 0 6 1 Module 15 9 145 158 0 0 Port 0 1 9 12 FSlider 9 0 8192 0 0 163840 1 FSlider 9 1 8192 0 0 163840 1 Module 6 10 564 45 0 cmt Freeverb (Version 3) Port 0 0 10 4 Port 1 0 10 4 FSlider 10 0 11502 0 0 16384 1 FSlider 10 1 -89825 1 -113176 0 1 FSlider 10 2 -5338 1 -113176 0 1 FSlider 10 3 -5338 1 -113176 0 1 FSlider 10 4 16384 0 0 16384 1 CheckBox 10 0 0 1 Module 10 12 13 120 0 0 FSlider 12 0 129 0 -16384 16384 1 FSMIDI 12 0 13 0 0 ISlider 12 0 24 1 ComboBox 12 0 0 1 Comment 0 0 387 305 200 170 #PARA# 0 0 0 The slew limiter features a portamento of the filter cutoff frequency. #ARAP# #PARA# 0 0 1 The modulation wheel has been bound to the filter cutoff frequency #ARAP# #PARA# 0 0 2 #ARAP# #PARA# 0 0 3 #ARAP# #PARA# 0 0 4 #ARAP# ams-2.0.1/demos/example_cvs.ams0000664000076400007640000000505307770061731013357 00000000000000Module 7 1 749 186 0 0 Port 0 0 1 10 Port 1 1 1 10 FSlider 1 0 3608 0 0 16384 1 FSlider 1 1 16384 0 0 16384 1 FSlider 1 2 16384 0 0 16384 1 ComboBox 1 0 1 1 Module 11 3 145 13 0 0 Port 0 0 3 12 FSlider 3 0 0 0 0 16384 1 FSlider 3 1 -64235 1 -113176 0 1 FSlider 3 2 98 0 0 16384 1 FSlider 3 3 2312 0 0 16384 1 FSlider 3 4 11464 0 0 16384 1 FSlider 3 5 -64235 1 -113176 0 1 FSlider 3 6 16384 0 1638 163840 1 Module 2 4 638 17 0 0 Port 0 0 4 3 Port 2 0 4 7 FSlider 4 0 0 0 0 163840 1 FSlider 4 1 0 0 0 163840 1 FSlider 4 2 19529 0 0 32768 1 FSlider 4 3 8192 0 0 32768 1 FSlider 4 4 8192 0 0 32768 1 Module 1 5 340 236 0 0 Port 1 1 5 12 Port 4 0 5 16 FSlider 5 0 0 0 0 16384 1 FSlider 5 1 1638 0 0 163840 1 FSlider 5 2 0 0 0 163840 1 FSlider 5 3 1638 0 1638 14745 1 FSlider 5 4 3296 0 0 163840 1 FSlider 5 5 0 0 0 163840 1 ISlider 5 0 0 1 ISlider 5 1 1 1 ISlider 5 2 1 1 ComboBox 5 0 0 1 Module 9 7 495 83 0 0 Port 0 3 7 5 Port 1 0 7 9 Port 2 0 7 15 FSlider 7 0 8364 0 0 163840 1 FSlider 7 1 24899 0 10449 133827 1 FSlider 7 2 16395 0 0 19710 1 FSlider 7 3 0 0 0 163840 1 FSlider 7 4 13107 0 163 16384 1 FSlider 7 5 0 0 0 16384 1 ComboBox 7 0 6 1 Module 15 9 252 141 0 0 Port 0 1 9 12 FSlider 9 0 8192 0 0 163840 1 FSlider 9 1 8192 0 0 163840 1 Module 6 10 753 80 0 cmt Freeverb (Version 3) Port 0 0 10 4 Port 1 0 10 4 FSlider 10 0 11502 0 0 16384 1 FSlider 10 1 -89825 1 -113176 0 1 FSlider 10 2 -5338 1 -113176 0 1 FSlider 10 3 -5338 1 -113176 0 1 FSlider 10 4 16384 0 0 16384 1 CheckBox 10 0 0 1 Module 10 12 13 120 0 0 FSlider 12 0 129 0 -16384 16384 1 FSMIDI 12 0 13 0 0 ISlider 12 0 24 1 ComboBox 12 0 0 1 Module 18 14 13 307 0 0 FSlider 14 0 30961 0 0 81920 1 FSMIDI 14 0 10 0 1 FSlider 14 1 25 0 -8192 8192 1 FSlider 14 2 30013 0 0 81920 1 FSlider 14 3 320 0 -8192 8192 1 FSlider 14 4 0 0 0 81920 1 FSlider 14 5 0 0 -8192 8192 1 FSlider 14 6 0 0 0 81920 1 FSlider 14 7 0 0 -8192 8192 1 Module 15 15 181 281 0 0 Port 0 0 15 14 FSlider 15 0 986 0 0 8192 1 FSlider 15 1 986 0 0 8192 1 Module 15 16 182 383 0 0 Port 0 1 16 14 FSlider 16 0 989 0 0 16431 1 FSlider 16 1 989 0 0 16431 1 Comment 0 0 482 278 200 170 #PARA# 0 0 0 The CVS module provides constant control voltages. #ARAP# #PARA# 0 0 1 Slew limiters are used to create smooth parameter changes. #ARAP# #PARA# 0 0 2 #ARAP# #PARA# 0 0 3 #ARAP# #PARA# 0 0 4 #ARAP# #PARA# 0 0 5 #ARAP# #PARA# 0 0 6 #ARAP# #PARA# 0 0 7 #ARAP# #PARA# 0 0 8 #ARAP# #PARA# 0 0 9 #ARAP# #PARA# 0 0 10 #ARAP# #PARA# 0 0 11 #ARAP# #PARA# 0 0 12 #ARAP# #PARA# 0 0 13 #ARAP# #PARA# 0 0 14 #ARAP# #PARA# 0 0 15 #ARAP# #PARA# 0 0 16 #ARAP# ams-2.0.1/demos/example_random_major_chords.ams0000664000076400007640000000501707770061731016576 00000000000000Module 7 1 979 59 0 0 Port 0 0 1 16 Port 1 1 1 16 FSlider 1 0 11783 0 0 16384 1 FSlider 1 1 8192 0 0 16384 1 FSlider 1 2 8192 0 0 16384 1 ComboBox 1 0 1 1 Module 11 3 271 14 0 0 Port 0 1 3 7 FSlider 3 0 0 0 0 16384 1 FSlider 3 1 -101960 1 -113176 0 1 FSlider 3 2 0 0 0 16384 1 FSlider 3 3 4674 0 0 16384 1 FSlider 3 4 11464 0 0 16384 1 FSlider 3 5 5757 0 0 16384 1 FSlider 3 6 16738 0 1638 163840 1 Module 2 4 445 14 0 0 Port 0 0 4 3 Port 2 0 4 10 FSlider 4 0 0 0 0 163840 1 FSlider 4 1 0 0 0 163840 1 FSlider 4 2 8192 0 0 16384 1 FSlider 4 3 8192 0 0 16384 1 FSlider 4 4 8192 0 0 16384 1 Module 1 5 386 177 0 0 Port 1 0 5 7 FSlider 5 0 0 0 0 16384 1 FSlider 5 1 0 0 0 163840 1 FSlider 5 2 0 0 0 163840 1 FSlider 5 3 8192 0 1638 14745 1 FSlider 5 4 0 0 0 16384 1 FSlider 5 5 0 0 0 102940 1 ISlider 5 0 3 1 ISlider 5 1 1 1 ISlider 5 2 1 1 ComboBox 5 0 0 1 Module 16 7 152 127 0 0 Port 0 2 7 12 Port 2 1 7 22 ComboBox 7 0 4 1 Module 9 10 564 175 0 0 Port 0 2 10 5 Port 1 0 10 13 Port 2 0 10 18 FSlider 10 0 43297 0 0 163840 1 FSlider 10 1 111687 0 0 163840 1 FSlider 10 2 48709 0 0 163840 1 FSlider 10 3 0 0 0 163840 1 FSlider 10 4 13107 0 163 16384 1 FSlider 10 5 0 0 0 16384 1 ComboBox 10 0 6 1 Module 14 12 11 67 0 0 FSlider 12 0 27228 0 0 163840 1 FSlider 12 1 6572 0 0 16384 1 Module 15 13 260 267 0 0 Port 0 0 13 7 FSlider 13 0 8192 0 0 163840 1 FSlider 13 1 8192 0 0 163840 1 Module 6 15 576 61 0 cmt Canyon Delay Port 0 0 15 4 Port 1 0 15 4 FSlider 15 0 9273 0 163 16220 1 FSlider 15 1 12347 0 -16384 16384 1 FSlider 15 2 6788 0 163 16220 1 FSlider 15 3 13661 0 -16384 16384 1 FSlider 15 4 81920000 0 16384 81920000 1 Module 6 16 779 62 0 cmt Freeverb (Version 3) Port 0 0 16 15 Port 1 1 16 15 FSlider 16 0 8215 0 0 16384 1 FSlider 16 1 -83989 1 -113176 0 1 FSlider 16 2 -6486 1 -113176 0 1 FSlider 16 3 0 1 -113176 0 1 FSlider 16 4 16384 0 0 16384 1 CheckBox 16 0 0 1 Module 15 18 381 411 0 0 Port 0 2 18 19 FSlider 18 0 61968 0 0 163840 1 FSlider 18 1 48354 0 0 163840 1 Module 14 19 188 358 0 0 FSlider 19 0 91074 0 0 163840 1 FSlider 19 1 16384 0 0 16384 1 Module 12 22 19 200 8 0 ISlider 22 0 0 1 ISlider 22 1 3 1 ISlider 22 2 0 1 ISlider 22 3 63 1 ISlider 22 4 0 1 ISlider 22 5 63 1 ISlider 22 6 0 1 ISlider 22 7 63 1 ISlider 22 8 5 1 ISlider 22 9 63 1 ISlider 22 10 5 1 ISlider 22 11 63 1 ISlider 22 12 7 1 ISlider 22 13 63 1 ISlider 22 14 7 1 ISlider 22 15 63 1 ISlider 22 16 0 1 ISlider 22 17 63 1 ComboBox 22 0 1 1 CheckBox 22 0 0 1 CheckBox 22 1 0 1 CheckBox 22 2 0 1 CheckBox 22 3 0 1 CheckBox 22 4 0 1 CheckBox 22 5 0 1 CheckBox 22 6 0 1 CheckBox 22 7 0 1 ams-2.0.1/demos/sequence03.ams0000664000076400007640000001014710047700633013014 00000000000000Module 7 1 1123 165 0 0 Port 0 0 1 13 Port 1 1 1 13 FSlider 1 0 6385 0 0 16384 1 FSlider 1 1 8192 0 0 16384 1 FSlider 1 2 8192 0 0 16384 1 ComboBox 1 0 1 1 Module 9 3 673 207 0 0 Port 0 0 3 12 Port 1 0 3 14 FSlider 3 0 6888 0 0 163840 1 FSlider 3 1 131859 0 53989 131859 1 FSMIDI 3 1 10 0 1 FSlider 3 2 984 0 0 163840 1 FSlider 3 3 0 0 0 163840 1 FSlider 3 4 13107 0 163 16384 1 FSlider 3 5 0 0 0 16384 1 ComboBox 3 0 6 1 Module 1 4 254 343 0 0 Port 1 1 4 16 Port 4 0 4 8 FSlider 4 0 8256 0 0 16384 1 FSMIDI 4 0 13 0 0 FSlider 4 1 1638 0 0 163840 1 FSlider 4 2 0 0 0 163840 1 FSlider 4 3 8959 0 1638 14745 1 FSlider 4 4 6052 0 0 16384 1 FSlider 4 5 0 0 0 102940 1 ISlider 4 0 3 1 ISlider 4 1 1 1 ISlider 4 2 1 1 ComboBox 4 0 0 1 Module 8 5 373 312 2 0 Port 0 3 5 6 Port 1 3 5 4 FSlider 5 0 16384 0 0 32768 1 FSlider 5 1 16384 0 0 32768 1 FSlider 5 2 16384 0 0 32768 1 Module 1 6 253 105 0 0 Port 1 1 6 16 Port 4 0 6 8 FSlider 6 0 8256 0 0 16384 1 FSMIDI 6 0 13 0 0 FSlider 6 1 1638 0 0 163840 1 FSlider 6 2 0 0 0 163840 1 FSlider 6 3 10022 0 1638 14745 1 FSlider 6 4 4969 0 0 16384 1 FSlider 6 5 0 0 0 102940 1 ISlider 6 0 2 1 ISlider 6 1 1 1 ISlider 6 2 1 1 ComboBox 6 0 0 1 Module 3 8 42 304 0 0 FSlider 8 0 93891 0 0 1638400 1 FSlider 8 1 0 0 0 102940 1 Module 2 9 798 109 0 0 Port 0 0 9 10 Port 2 0 9 3 FSlider 9 0 0 0 0 163840 1 FSlider 9 1 0 0 0 163840 1 FSlider 9 2 16384 0 0 32768 1 FSlider 9 3 16384 0 0 32768 1 FSlider 9 4 16384 0 0 32768 1 Module 11 10 390 16 0 0 Port 0 0 10 16 FSlider 10 0 0 0 0 16384 1 FSlider 10 1 819 0 0 16384 1 FSlider 10 2 327 0 0 16384 1 FSlider 10 3 1638 0 0 16384 1 FSlider 10 4 11468 0 0 16384 1 FSlider 10 5 819 0 0 16384 1 FSlider 10 6 16384 0 1638 163840 1 Module 6 12 497 189 0 multivoice_chorus_1201 Multivoice Chorus Port 0 0 12 5 FSlider 12 0 346928 0 163840 655360 1 FSlider 12 1 4601 0 0 32768 1 FSlider 12 2 76287 0 0 81920 1 FSlider 12 3 123467 0 32768 491520 1 FSlider 12 4 -159615 0 -327680 0 1 LSlider 12 0 8 1 Module 6 13 938 164 0 cmt Freeverb (Version 3) Port 0 0 13 9 Port 1 0 13 9 FSlider 13 0 14262 0 0 16384 1 FSlider 13 1 -96093 1 -113176 0 1 FSlider 13 2 6876 0 0 16384 1 FSlider 13 3 3353 0 0 16384 1 FSlider 13 4 16384 0 0 16384 1 CheckBox 13 0 0 1 Module 15 14 540 289 0 0 Port 0 1 14 16 FSlider 14 0 3286 0 0 163840 1 FSlider 14 1 3286 0 0 163840 1 Module 12 16 41 13 32 0 ISlider 16 0 3 1 ISlider 16 1 50 1 ISlider 16 2 15 1 ISlider 16 3 63 1 ISlider 16 4 27 1 ISlider 16 5 63 1 ISlider 16 6 15 1 ISlider 16 7 63 1 ISlider 16 8 12 1 ISlider 16 9 63 1 ISlider 16 10 27 1 ISlider 16 11 63 1 ISlider 16 12 15 1 ISlider 16 13 63 1 ISlider 16 14 29 1 ISlider 16 15 63 1 ISlider 16 16 17 1 ISlider 16 17 63 1 ISlider 16 18 26 1 ISlider 16 19 63 1 ISlider 16 20 17 1 ISlider 16 21 63 1 ISlider 16 22 14 1 ISlider 16 23 63 1 ISlider 16 24 23 1 ISlider 16 25 63 1 ISlider 16 26 17 1 ISlider 16 27 63 1 ISlider 16 28 26 1 ISlider 16 29 63 1 ISlider 16 30 19 1 ISlider 16 31 63 1 ISlider 16 32 31 1 ISlider 16 33 63 1 ISlider 16 34 19 1 ISlider 16 35 63 1 ISlider 16 36 15 1 ISlider 16 37 63 1 ISlider 16 38 27 1 ISlider 16 39 63 1 ISlider 16 40 19 1 ISlider 16 41 63 1 ISlider 16 42 31 1 ISlider 16 43 63 1 ISlider 16 44 17 1 ISlider 16 45 63 1 ISlider 16 46 24 1 ISlider 16 47 63 1 ISlider 16 48 15 1 ISlider 16 49 63 1 ISlider 16 50 26 1 ISlider 16 51 63 1 ISlider 16 52 14 1 ISlider 16 53 63 1 ISlider 16 54 27 1 ISlider 16 55 63 1 ISlider 16 56 11 1 ISlider 16 57 63 1 ISlider 16 58 12 1 ISlider 16 59 63 1 ISlider 16 60 29 1 ISlider 16 61 63 1 ISlider 16 62 14 1 ISlider 16 63 63 1 ISlider 16 64 31 1 ISlider 16 65 63 1 ComboBox 16 0 0 1 CheckBox 16 0 1 1 CheckBox 16 1 1 1 CheckBox 16 2 1 1 CheckBox 16 3 1 1 CheckBox 16 4 1 1 CheckBox 16 5 1 1 CheckBox 16 6 1 1 CheckBox 16 7 1 1 CheckBox 16 8 1 1 CheckBox 16 9 1 1 CheckBox 16 10 1 1 CheckBox 16 11 1 1 CheckBox 16 12 1 1 CheckBox 16 13 1 1 CheckBox 16 14 1 1 CheckBox 16 15 1 1 CheckBox 16 16 1 1 CheckBox 16 17 1 1 CheckBox 16 18 1 1 CheckBox 16 19 1 1 CheckBox 16 20 1 1 CheckBox 16 21 1 1 CheckBox 16 22 1 1 CheckBox 16 23 1 1 CheckBox 16 24 1 1 CheckBox 16 25 1 1 CheckBox 16 26 1 1 CheckBox 16 27 1 1 CheckBox 16 28 1 1 CheckBox 16 29 1 1 CheckBox 16 30 1 1 CheckBox 16 31 1 1 ams-2.0.1/demos/sequence02.ams0000664000076400007640000000435007770061731013022 00000000000000Module 7 2 625 162 0 0 Port 0 0 2 6 Port 1 0 2 6 FSlider 2 0 8192 0 0 16384 1 FSlider 2 1 8192 0 0 16384 1 FSlider 2 2 8192 0 0 16384 1 ComboBox 2 0 1 1 Module 1 3 146 240 0 0 Port 1 1 3 10 Port 4 0 3 11 FSlider 3 0 0 0 0 16384 1 FSlider 3 1 0 0 0 163840 1 FSlider 3 2 0 0 0 163840 1 FSlider 3 3 8192 0 1638 14745 1 FSlider 3 4 3838 0 0 16384 1 FSlider 3 5 0 0 0 102940 1 ISlider 3 0 2 1 ISlider 3 1 1 1 ISlider 3 2 1 1 ComboBox 3 0 0 1 Module 9 4 389 195 0 0 Port 0 3 4 3 Port 1 1 4 10 Port 2 1 4 12 FSlider 4 0 33949 0 0 163840 1 FSlider 4 1 97044 0 77738 135656 1 FSlider 4 2 25585 0 0 163840 1 FSlider 4 3 0 0 0 163840 1 FSlider 4 4 12097 0 163 16384 1 FSlider 4 5 0 0 0 16384 1 ComboBox 4 0 6 1 Module 11 5 215 63 0 0 Port 0 0 5 10 FSlider 5 0 0 0 0 16384 1 FSlider 5 1 -86326 1 -113176 0 1 FSlider 5 2 1968 0 0 16384 1 FSlider 5 3 -24470 1 -113176 0 1 FSlider 5 4 0 0 0 16384 1 FSlider 5 5 819 0 0 16384 1 FSlider 5 6 16384 0 1638 163840 1 Module 2 6 510 120 0 0 Port 0 0 6 5 Port 2 0 6 4 FSlider 6 0 0 0 0 163840 1 FSlider 6 1 0 0 0 163840 1 FSlider 6 2 8192 0 0 16384 1 FSlider 6 3 8192 0 0 16384 1 FSlider 6 4 8192 0 0 16384 1 Module 12 10 16 50 16 0 ISlider 10 0 0 1 ISlider 10 1 111 1 ISlider 10 2 31 1 ISlider 10 3 63 1 ISlider 10 4 12 1 ISlider 10 5 63 1 ISlider 10 6 32 1 ISlider 10 7 63 1 ISlider 10 8 10 1 ISlider 10 9 63 1 ISlider 10 10 31 1 ISlider 10 11 63 1 ISlider 10 12 11 1 ISlider 10 13 63 1 ISlider 10 14 29 1 ISlider 10 15 63 1 ISlider 10 16 12 1 ISlider 10 17 63 1 ISlider 10 18 31 1 ISlider 10 19 63 1 ISlider 10 20 24 1 ISlider 10 21 63 1 ISlider 10 22 27 1 ISlider 10 23 63 1 ISlider 10 24 31 1 ISlider 10 25 63 1 ISlider 10 26 31 1 ISlider 10 27 63 1 ISlider 10 28 7 1 ISlider 10 29 63 1 ISlider 10 30 32 1 ISlider 10 31 63 1 ISlider 10 32 43 1 ISlider 10 33 63 1 ComboBox 10 0 1 1 CheckBox 10 0 1 1 CheckBox 10 1 1 1 CheckBox 10 2 1 1 CheckBox 10 3 1 1 CheckBox 10 4 1 1 CheckBox 10 5 1 1 CheckBox 10 6 1 1 CheckBox 10 7 1 1 CheckBox 10 8 1 1 CheckBox 10 9 1 1 CheckBox 10 10 1 1 CheckBox 10 11 1 1 CheckBox 10 12 1 1 CheckBox 10 13 1 1 CheckBox 10 14 1 1 CheckBox 10 15 1 1 Module 3 11 31 276 0 0 FSlider 11 0 93891 0 0 1638400 1 FSlider 11 1 0 0 0 102940 1 Module 3 12 271 288 0 0 FSlider 12 0 -47346 1 -75451 75451 1 FSlider 12 1 0 0 0 102940 1 ams-2.0.1/demos/example_midiout_note_velocity.ams0000664000076400007640000000162707770061731017204 00000000000000Module 29 1 314 40 0 0 Port 0 1 1 2 Port 1 1 1 2 FSlider 1 0 16384 0 0 163840 1 FSlider 1 1 81920 0 0 163840 1 FSlider 1 2 8192 0 0 163840 1 ISlider 1 0 50 1 ISlider 1 1 90 1 ISlider 1 2 24 1 ISlider 1 3 25 1 ComboBox 1 0 0 1 ComboBox 1 1 3 1 Module 3 2 110 39 0 0 FSlider 2 0 -31666 1 -75451 75451 1 FSlider 2 1 0 0 0 102940 1 Module 7 3 604 390 0 0 FSlider 3 0 8192 0 0 16384 1 FSlider 3 1 8192 0 0 16384 1 FSlider 3 2 8192 0 0 16384 1 ComboBox 3 0 1 1 Comment 0 0 218 222 324 218 #PARA# 0 0 0 This simple patch demonstrates the Note / Velocity mode of the MIDI Out module. If the Trigger input is not connected, a new note event is triggered whenever the input signal changes. The input of In 1 port now determines the velocity of the note events. The Note events are sent to the first readable MIDI port of AlsaModularSynth. #ARAP# #PARA# 0 0 1 The dummy PCM Out module is just there to stabilize timing. #ARAP# ams-2.0.1/demos/example_vcorgan_6.ams0000664000076400007640000000426407770061731014453 00000000000000Module 7 1 764 139 0 0 Port 0 0 1 12 Port 1 1 1 12 FSlider 1 0 7131 0 0 16384 1 FSlider 1 1 7725 0 0 16384 1 FSlider 1 2 7640 0 0 16384 1 ComboBox 1 0 1 1 Module 10 4 5 57 0 0 FSlider 4 0 0 0 -16384 16384 1 ISlider 4 0 24 1 ComboBox 4 0 0 1 Module 11 7 158 37 0 0 Port 0 0 7 4 FSlider 7 0 0 0 0 16384 1 FSlider 7 1 214 0 0 16384 1 FSlider 7 2 327 0 0 16384 1 FSlider 7 3 1544 0 0 16384 1 FSlider 7 4 7806 0 0 16384 1 FSlider 7 5 386 0 0 16384 1 FSlider 7 6 9706 0 1638 163840 1 Module 2 8 338 42 0 0 Port 0 0 8 7 Port 2 0 8 21 FSlider 8 0 0 0 0 163840 1 FSlider 8 1 0 0 0 163840 1 FSlider 8 2 15111 0 0 32768 1 FSlider 8 3 14856 0 0 32768 1 FSlider 8 4 10357 0 0 32768 1 Module 6 12 518 90 0 cmt Freeverb (Version 3) Port 0 0 12 8 Port 1 0 12 8 FSlider 12 0 12437 0 0 16384 1 FSlider 12 1 -102621 1 -113176 0 1 FSlider 12 2 -24628 1 -113176 0 1 FSlider 12 3 -3222 1 -113176 0 1 FSlider 12 4 16384 0 0 16384 1 CheckBox 12 0 0 1 Module 20 21 188 224 6 0 Port 0 1 21 4 Port 1 0 21 31 FSlider 21 0 0 0 0 16384 1 FSlider 21 1 -86709 1 -113176 37725 1 FSlider 21 2 0 0 0 163840 1 FSlider 21 3 16384 0 0 16384 1 FSlider 21 4 16384 0 0 16384 1 FSlider 21 5 16384 0 0 16384 1 FSlider 21 6 16384 0 0 16384 1 FSlider 21 7 11948 0 0 16384 1 FSlider 21 8 9981 0 0 16384 1 FSlider 21 9 0 0 0 16384 1 FSlider 21 10 0 0 0 102940 1 FSlider 21 11 0 0 0 16384 1 FSlider 21 12 0 0 0 102940 1 FSlider 21 13 0 0 0 16384 1 FSlider 21 14 0 0 0 102940 1 FSlider 21 15 0 0 0 16384 1 FSlider 21 16 0 0 0 102940 1 FSlider 21 17 5461 0 0 16384 1 FSlider 21 18 0 0 0 102940 1 FSlider 21 19 9835 0 0 16384 1 FSlider 21 20 0 0 0 102940 1 ISlider 21 0 0 1 ISlider 21 1 0 1 ISlider 21 2 1 1 ISlider 21 3 1 1 ISlider 21 4 1 1 ISlider 21 5 1 1 ISlider 21 6 1 1 ISlider 21 7 2 1 ISlider 21 8 1 1 ISlider 21 9 1 1 ISlider 21 10 3 1 ISlider 21 11 1 1 ISlider 21 12 1 1 ISlider 21 13 3 1 ISlider 21 14 1 1 ISlider 21 15 1 1 ISlider 21 16 3 1 ISlider 21 17 1 1 ISlider 21 18 1 1 ComboBox 21 0 0 1 ComboBox 21 1 0 1 ComboBox 21 2 0 1 ComboBox 21 3 0 1 ComboBox 21 4 3 1 ComboBox 21 5 3 1 Module 3 31 40 253 0 0 FSlider 31 0 127337 0 0 1638400 1 FSlider 31 1 0 0 0 102940 1 Comment 0 0 372 223 200 170 #PARA# 0 0 0 This patch has been contributed by Jörg Anders. #ARAP# ams-2.0.1/demos/example_strings_high_reso.ams0000664000076400007640000000526707770061731016313 00000000000000Module 7 1 590 33 0 0 Port 0 0 1 21 Port 1 1 1 21 FSlider 1 0 8192 0 0 16384 1 FSlider 1 1 8192 0 0 16384 1 FSlider 1 2 8192 0 0 16384 1 ComboBox 1 0 1 1 Module 11 3 188 15 0 0 Port 0 0 3 7 FSlider 3 0 0 0 0 16384 1 FSlider 3 1 -22691 1 -113176 0 1 FSlider 3 2 98 0 0 16384 1 FSlider 3 3 0 0 0 16384 1 FSlider 3 4 16384 0 0 16384 1 FSlider 3 5 7380 0 0 16384 1 FSlider 3 6 16384 0 1638 163840 1 Module 2 4 425 19 0 0 Port 0 0 4 3 Port 2 0 4 22 FSlider 4 0 0 0 0 163840 1 FSlider 4 1 0 0 0 163840 1 FSlider 4 2 8192 0 0 16384 1 FSlider 4 3 8192 0 0 16384 1 FSlider 4 4 8192 0 0 16384 1 Module 1 5 237 153 0 0 Port 1 1 5 7 Port 4 1 5 10 FSlider 5 0 94 0 0 669 1 FSlider 5 1 1638 0 0 163840 1 FSlider 5 2 2101 0 0 163840 1 FSlider 5 3 8192 0 1638 14745 1 FSlider 5 4 0 0 0 163840 1 FSlider 5 5 0 0 0 163840 1 ISlider 5 0 2 1 ISlider 5 1 1 1 ISlider 5 2 1 1 ComboBox 5 0 0 1 Module 10 7 10 24 0 0 FSlider 7 0 129 0 -16384 16384 1 FSMIDI 7 0 13 0 0 ISlider 7 0 24 1 ComboBox 7 0 0 1 Module 1 9 137 208 0 0 Port 1 1 9 7 Port 2 2 9 11 Port 4 1 9 10 FSlider 9 0 0 0 0 16384 1 FSlider 9 1 8259 0 1638 14745 1 FSlider 9 2 630 0 0 16384 1 FSlider 9 3 0 0 0 102940 1 FSlider 9 4 267 0 0 1486 1 FSlider 9 5 0 0 0 163840 1 ISlider 9 0 2 1 ISlider 9 1 1 1 ISlider 9 2 1 1 ComboBox 9 0 0 1 Module 3 10 9 277 0 0 FSlider 10 0 188082 0 0 1638400 1 FSlider 10 1 0 0 0 102940 1 Module 14 11 5 148 0 0 FSlider 11 0 418 0 0 163840 1 FSlider 11 1 14169 0 0 16384 1 Module 8 16 365 277 4 0 Port 0 2 16 5 Port 1 2 16 9 Port 2 3 16 5 Port 3 3 16 9 FSlider 16 0 16384 0 0 32768 1 FSlider 16 1 16384 0 0 32768 1 FSlider 16 2 16384 0 0 32768 1 FSlider 16 3 16384 0 0 32768 1 FSlider 16 4 16384 0 0 32768 1 Module 6 20 351 183 0 cs_chorus Chorus2 Port 0 0 20 4 FSlider 20 0 31477 0 0 491520 1 FSlider 20 1 32815 1 -95176 37725 1 FSlider 20 2 2825 0 0 163840 1 FSlider 20 3 13723 1 -75451 55725 1 FSlider 20 4 3027 0 0 49152 1 Module 6 21 490 359 0 g2reverb Stereo reverb Port 0 0 21 20 Port 1 0 21 20 FSlider 21 0 1067785 0 163840 2457600 1 FSlider 21 1 31719 0 16384 327680 1 FSlider 21 2 13317 0 0 16384 1 FSlider 21 3 3309 0 0 16384 1 FSlider 21 4 0 0 -1310720 0 1 FSlider 21 5 -142048 0 -1310720 0 1 FSlider 21 6 -248585 0 -1310720 0 1 Module 6 22 472 220 0 mvclpf24 Mvclpf-4 Port 0 0 22 16 FSlider 22 0 0 0 -983040 163840 1 FSlider 22 1 54765 0 -190 81920 1 FSMIDI 22 1 10 0 1 FSlider 22 2 0 0 0 163840 1 FSlider 22 3 8596 0 0 16384 1 FSlider 22 4 0 0 0 16384 1 FSlider 22 5 0 0 -245760 245760 1 LSlider 22 0 2 1 Comment 0 0 31 290 200 170 #PARA# 0 0 0 This patch is based on the article "Synth Secrets, Synthesizing Strings" by Gordon Reid, published in Sound on Sound, Vol. 18(4), Feb. 2003 #ARAP# #PARA# 0 0 1 #ARAP# #PARA# 0 0 2 #ARAP# #PARA# 0 0 3 #ARAP# ams-2.0.1/demos/example_function.ams0000664000076400007640000000432207770061731014407 00000000000000Module 1 3 25 122 0 0 FSlider 3 0 10654 0 0 16384 1 FSlider 3 1 8192 0 1638 14745 1 FSlider 3 2 0 0 0 16384 1 FSlider 3 3 0 0 0 102940 1 FSlider 3 4 0 0 0 163840 1 FSlider 3 5 0 0 0 163840 1 ISlider 3 0 2 1 ISlider 3 1 1 1 ISlider 3 2 1 1 ComboBox 3 0 0 1 Module 24 4 525 77 0 0 Port 0 2 4 3 Port 1 0 4 11 FSlider 4 0 163840 0 163840 16384000 1 FSlider 4 1 16384 0 1638 163840 1 FSlider 4 2 0 0 -16384 16384 1 ComboBox 4 0 1 1 ComboBox 4 1 0 1 Module 24 5 523 178 0 0 Port 0 2 5 3 Port 1 1 5 11 FSlider 5 0 163840 0 163840 16384000 1 FSlider 5 1 16384 0 1638 163840 1 FSlider 5 2 0 0 -16384 16384 1 ComboBox 5 0 1 1 ComboBox 5 1 0 1 Module 24 6 521 286 0 0 Port 0 2 6 3 Port 1 2 6 11 FSlider 6 0 163840 0 163840 16384000 1 FSlider 6 1 16384 0 1638 163840 1 FSlider 6 2 0 0 -16384 16384 1 ComboBox 6 0 1 1 ComboBox 6 1 0 1 Module 24 8 524 394 0 0 Port 0 2 8 3 Port 1 3 8 11 FSlider 8 0 163840 0 163840 16384000 1 FSlider 8 1 16384 0 1638 163840 1 FSlider 8 2 0 0 -16384 16384 1 ComboBox 8 0 1 1 ComboBox 8 1 0 1 Module 13 9 155 56 0 0 Port 0 2 9 3 Module 36 11 292 33 4 0 Port 0 0 11 9 ComboBox 11 0 0 1 ComboBox 11 1 0 1 ComboBox 11 2 0 1 Function 11 0 4 11 Point 11 0 0 0 4128 4455 Point 11 0 0 1 4291 5673 Point 11 0 0 2 4523 4782 Point 11 0 0 3 4645 5673 Point 11 0 0 4 4822 5673 Point 11 0 0 5 4972 2673 Point 11 0 0 6 5176 5673 Point 11 0 0 7 5352 5673 Point 11 0 0 8 5356 6418 Point 11 0 0 9 5706 5673 Point 11 0 0 10 5881 6128 Point 11 0 1 0 4028 5381 Point 11 0 1 1 4222 4327 Point 11 0 1 2 4386 6181 Point 11 0 1 3 4388 3163 Point 11 0 1 4 4876 3272 Point 11 0 1 5 5000 4327 Point 11 0 1 6 5193 4327 Point 11 0 1 7 5414 5708 Point 11 0 1 8 5581 4327 Point 11 0 1 9 5581 5127 Point 11 0 1 10 5970 4327 Point 11 0 2 0 0 10000 Point 11 0 2 1 1000 9000 Point 11 0 2 2 2000 8000 Point 11 0 2 3 3000 7000 Point 11 0 2 4 4000 6000 Point 11 0 2 5 5000 5000 Point 11 0 2 6 6000 4000 Point 11 0 2 7 7000 3000 Point 11 0 2 8 8000 2000 Point 11 0 2 9 9000 1000 Point 11 0 2 10 10000 0 Point 11 0 3 0 4299 2799 Point 11 0 3 1 4451 4327 Point 11 0 3 2 4452 5127 Point 11 0 3 3 4725 4327 Point 11 0 3 4 4726 6036 Point 11 0 3 5 5000 4327 Point 11 0 3 6 5000 5781 Point 11 0 3 7 5273 4327 Point 11 0 3 8 5547 3708 Point 11 0 3 9 5547 4327 Point 11 0 3 10 5802 5236 ams-2.0.1/demos/example_dynamicwaves_8.ams0000664000076400007640000001236607770061731015512 00000000000000Module 21 1 174 40 8 0 Port 0 1 1 2 Port 3 0 1 2 Port 4 3 1 2 FSlider 1 0 0 0 0 16384 1 FSlider 1 1 0 0 0 163840 1 FSlider 1 2 0 0 0 163840 1 FSlider 1 3 1638 0 1638 163840 1 FSlider 1 4 16384 0 0 16384 1 FSlider 1 5 16384 0 0 16384 1 FSlider 1 6 16384 0 0 16384 1 FSlider 1 7 16384 0 0 16384 1 FSlider 1 8 16384 0 0 16384 1 FSlider 1 9 16384 0 0 16384 1 FSlider 1 10 16384 0 0 16384 1 FSlider 1 11 16384 0 0 16384 1 FSlider 1 12 154 0 0 16384 1 FSlider 1 13 0 0 0 102940 1 FSlider 1 14 0 0 0 16384 1 FSlider 1 15 0 0 0 102940 1 FSlider 1 16 116 0 0 16384 1 FSlider 1 17 0 0 0 102940 1 FSlider 1 18 77 0 0 16384 1 FSlider 1 19 0 0 0 102940 1 FSlider 1 20 39 0 0 16384 1 FSlider 1 21 0 0 0 102940 1 FSlider 1 22 116 0 0 16384 1 FSlider 1 23 0 0 0 102940 1 FSlider 1 24 39 0 0 16384 1 FSlider 1 25 0 0 0 102940 1 FSlider 1 26 0 0 0 16384 1 FSlider 1 27 0 0 0 102940 1 FSlider 1 28 3082 0 0 16384 1 FSlider 1 29 2636 0 0 16384 1 FSlider 1 30 11112 0 0 16384 1 FSlider 1 31 4826 0 0 16384 1 FSlider 1 32 1987 0 0 16384 1 FSlider 1 33 5150 0 0 16384 1 FSlider 1 34 14745 0 0 16384 1 FSlider 1 35 1638 0 0 16384 1 FSlider 1 36 13107 0 0 16384 1 FSlider 1 37 163 0 0 16384 1 FSlider 1 38 11468 0 0 16384 1 FSlider 1 39 163 0 0 16384 1 FSlider 1 40 8192 0 0 16384 1 FSlider 1 41 163 0 0 16384 1 FSlider 1 42 0 0 0 16384 1 FSlider 1 43 11013 0 0 16384 1 FSlider 1 44 8192 0 0 16384 1 FSlider 1 45 163 0 0 16384 1 FSlider 1 46 16384 0 0 16384 1 FSlider 1 47 1638 0 0 16384 1 FSlider 1 48 14745 0 0 16384 1 FSlider 1 49 1638 0 0 16384 1 FSlider 1 50 12029 0 0 16384 1 FSlider 1 51 163 0 0 16384 1 FSlider 1 52 11468 0 0 16384 1 FSlider 1 53 163 0 0 16384 1 FSlider 1 54 8192 0 0 16384 1 FSlider 1 55 163 0 0 16384 1 FSlider 1 56 0 0 0 16384 1 FSlider 1 57 2798 0 0 16384 1 FSlider 1 58 8192 0 0 16384 1 FSlider 1 59 1906 0 0 16384 1 FSlider 1 60 10869 0 0 16384 1 FSlider 1 61 1638 0 0 16384 1 FSlider 1 62 14745 0 0 16384 1 FSlider 1 63 4704 0 0 16384 1 FSlider 1 64 11095 0 0 16384 1 FSlider 1 65 2879 0 0 16384 1 FSlider 1 66 7543 0 0 16384 1 FSlider 1 67 4015 0 0 16384 1 FSlider 1 68 13140 0 0 16384 1 FSlider 1 69 3569 0 0 16384 1 FSlider 1 70 0 0 0 16384 1 FSlider 1 71 163 0 0 16384 1 FSlider 1 72 8192 0 0 16384 1 FSlider 1 73 163 0 0 16384 1 FSlider 1 74 16384 0 0 16384 1 FSlider 1 75 1638 0 0 16384 1 FSlider 1 76 14745 0 0 16384 1 FSlider 1 77 1638 0 0 16384 1 FSlider 1 78 13107 0 0 16384 1 FSlider 1 79 163 0 0 16384 1 FSlider 1 80 11468 0 0 16384 1 FSlider 1 81 163 0 0 16384 1 FSlider 1 82 8192 0 0 16384 1 FSlider 1 83 163 0 0 16384 1 FSlider 1 84 0 0 0 16384 1 FSlider 1 85 163 0 0 16384 1 FSlider 1 86 8192 0 0 16384 1 FSlider 1 87 163 0 0 16384 1 FSlider 1 88 16384 0 0 16384 1 FSlider 1 89 1638 0 0 16384 1 FSlider 1 90 14745 0 0 16384 1 FSlider 1 91 1638 0 0 16384 1 FSlider 1 92 13107 0 0 16384 1 FSlider 1 93 163 0 0 16384 1 FSlider 1 94 11468 0 0 16384 1 FSlider 1 95 163 0 0 16384 1 FSlider 1 96 8192 0 0 16384 1 FSlider 1 97 163 0 0 16384 1 FSlider 1 98 0 0 0 16384 1 FSlider 1 99 163 0 0 16384 1 FSlider 1 100 8192 0 0 16384 1 FSlider 1 101 163 0 0 16384 1 FSlider 1 102 16384 0 0 16384 1 FSlider 1 103 1638 0 0 16384 1 FSlider 1 104 14745 0 0 16384 1 FSlider 1 105 1638 0 0 16384 1 FSlider 1 106 10722 0 0 16384 1 FSlider 1 107 163 0 0 16384 1 FSlider 1 108 11468 0 0 16384 1 FSlider 1 109 163 0 0 16384 1 FSlider 1 110 8192 0 0 16384 1 FSlider 1 111 163 0 0 16384 1 FSlider 1 112 4742 0 0 16384 1 FSlider 1 113 2352 0 0 16384 1 FSlider 1 114 8192 0 0 16384 1 FSlider 1 115 5359 0 0 16384 1 FSlider 1 116 16384 0 0 16384 1 FSlider 1 117 1638 0 0 16384 1 FSlider 1 118 14745 0 0 16384 1 FSlider 1 119 2544 0 0 16384 1 FSlider 1 120 13107 0 0 16384 1 FSlider 1 121 3855 0 0 16384 1 FSlider 1 122 14688 0 0 16384 1 FSlider 1 123 7633 0 0 16384 1 FSlider 1 124 10023 0 0 16384 1 FSlider 1 125 2159 0 0 16384 1 FSlider 1 126 771 0 0 16384 1 FSlider 1 127 3238 0 0 16384 1 FSlider 1 128 8192 0 0 16384 1 FSlider 1 129 3855 0 0 16384 1 FSlider 1 130 8790 0 0 16384 1 FSlider 1 131 4934 0 0 16384 1 FSlider 1 132 14745 0 0 16384 1 FSlider 1 133 5590 0 0 16384 1 FSlider 1 134 4915 0 0 16384 1 FSlider 1 135 5474 0 0 16384 1 FSlider 1 136 7903 0 0 16384 1 FSlider 1 137 3277 0 0 16384 1 FSlider 1 138 8192 0 0 16384 1 FSlider 1 139 163 0 0 16384 1 ISlider 1 0 1 1 ISlider 1 1 0 1 ISlider 1 2 1 1 ISlider 1 3 1 1 ISlider 1 4 0 1 ISlider 1 5 2 1 ISlider 1 6 1 1 ISlider 1 7 0 1 ISlider 1 8 3 1 ISlider 1 9 1 1 ISlider 1 10 0 1 ISlider 1 11 4 1 ISlider 1 12 1 1 ISlider 1 13 0 1 ISlider 1 14 5 1 ISlider 1 15 1 1 ISlider 1 16 0 1 ISlider 1 17 6 1 ISlider 1 18 1 1 ISlider 1 19 0 1 ISlider 1 20 7 1 ISlider 1 21 1 1 ISlider 1 22 0 1 ISlider 1 23 8 1 ISlider 1 24 1 1 ComboBox 1 0 0 1 CMIDI 1 0 10 0 1 ComboBox 1 1 0 1 ComboBox 1 2 0 1 ComboBox 1 3 0 1 ComboBox 1 4 0 1 ComboBox 1 5 0 1 ComboBox 1 6 0 1 ComboBox 1 7 0 1 Module 10 2 25 40 0 0 FSlider 2 0 129 0 -16384 16384 1 FSMIDI 2 0 13 0 0 ISlider 2 0 24 1 ComboBox 2 0 0 1 Module 7 3 607 42 0 0 Port 0 0 3 4 Port 1 1 3 4 FSlider 3 0 8192 0 0 16384 1 FSlider 3 1 8192 0 0 16384 1 FSlider 3 2 8192 0 0 16384 1 ComboBox 3 0 1 1 Module 6 4 329 43 0 gverb_1216 GVerb Port 0 0 4 1 FSlider 4 0 2634717 0 16384 4915200 1 FSlider 4 1 59733 0 1638 5898240 1 FSlider 4 2 6174 0 0 16384 1 FSlider 4 3 13075 0 0 16384 1 FSlider 4 4 0 0 -1146880 0 1 FSlider 4 5 -189263 0 -1146880 0 1 FSlider 4 6 -124292 0 -1146880 0 1 ams-2.0.1/demos/example_vcorgan_4.ams0000664000076400007640000000340207770061731014442 00000000000000Module 7 1 603 162 0 0 Port 0 0 1 12 Port 1 1 1 12 FSlider 1 0 8192 0 0 16384 1 FSlider 1 1 8192 0 0 16384 1 FSlider 1 2 8192 0 0 16384 1 ComboBox 1 0 1 1 Module 10 4 5 57 0 0 FSlider 4 0 0 0 -16384 16384 1 ISlider 4 0 12 1 ComboBox 4 0 0 1 Module 3 5 5 180 0 0 FSlider 5 0 118848 0 0 1638400 1 FSlider 5 1 0 0 0 102940 1 Module 11 7 158 37 0 0 Port 0 0 7 4 FSlider 7 0 0 0 0 16384 1 FSlider 7 1 386 0 0 16384 1 FSlider 7 2 327 0 0 16384 1 FSlider 7 3 1638 0 0 16384 1 FSlider 7 4 16384 0 0 16384 1 FSlider 7 5 386 0 0 16384 1 FSlider 7 6 16384 0 1638 163840 1 Module 2 8 312 114 0 0 Port 0 0 8 7 Port 2 0 8 11 FSlider 8 0 0 0 0 163840 1 FSlider 8 1 0 0 0 163840 1 FSlider 8 2 16384 0 0 32768 1 FSlider 8 3 16384 0 0 32768 1 FSlider 8 4 16384 0 0 32768 1 Module 20 11 158 183 4 0 Port 0 1 11 4 Port 1 0 11 5 FSlider 11 0 0 0 0 16384 1 FSlider 11 1 392 0 0 1046 1 FSlider 11 2 0 0 0 163840 1 FSlider 11 3 16384 0 0 16384 1 FSlider 11 4 16384 0 0 16384 1 FSlider 11 5 16384 0 0 16384 1 FSlider 11 6 16384 0 0 16384 1 FSlider 11 7 0 0 0 16384 1 FSlider 11 8 0 0 0 102940 1 FSlider 11 9 0 0 0 16384 1 FSlider 11 10 0 0 0 102940 1 FSlider 11 11 0 0 0 16384 1 FSlider 11 12 0 0 0 102940 1 FSlider 11 13 0 0 0 16384 1 FSlider 11 14 0 0 0 102940 1 ISlider 11 0 0 1 ISlider 11 1 0 1 ISlider 11 2 1 1 ISlider 11 3 1 1 ISlider 11 4 0 1 ISlider 11 5 2 1 ISlider 11 6 1 1 ISlider 11 7 0 1 ISlider 11 8 3 1 ISlider 11 9 1 1 ISlider 11 10 0 1 ISlider 11 11 4 1 ISlider 11 12 1 1 ComboBox 11 0 0 1 ComboBox 11 1 0 1 ComboBox 11 2 0 1 ComboBox 11 3 0 1 Module 6 12 423 161 0 cmt Freeverb (Version 3) Port 0 0 12 8 Port 1 0 12 8 FSlider 12 0 10357 0 0 16384 1 FSlider 12 1 -102621 1 -113176 0 1 FSlider 12 2 -48965 1 -113176 0 1 FSlider 12 3 -48965 1 -113176 0 1 FSlider 12 4 16384 0 0 16384 1 CheckBox 12 0 0 1 ams-2.0.1/demos/example_dual_env.ams0000664000076400007640000000507107770061731014361 00000000000000Module 7 1 680 387 0 0 Port 0 0 1 10 Port 1 1 1 10 FSlider 1 0 13849 0 0 16384 1 FSlider 1 1 16384 0 0 16384 1 FSlider 1 2 16384 0 0 16384 1 ComboBox 1 0 1 1 Module 11 3 145 13 0 0 Port 0 0 3 12 FSlider 3 0 0 0 0 16384 1 FSlider 3 1 -73410 1 -113176 0 1 FSlider 3 2 98 0 0 16384 1 FSlider 3 3 4625 0 0 16384 1 FSlider 3 4 5166 0 0 16384 1 FSlider 3 5 -64235 1 -113176 0 1 FSlider 3 6 16384 0 1638 163840 1 Module 2 4 532 178 0 0 Port 0 0 4 3 Port 2 0 4 7 FSlider 4 0 0 0 0 163840 1 FSlider 4 1 0 0 0 163840 1 FSlider 4 2 19529 0 0 32768 1 FSlider 4 3 8192 0 0 32768 1 FSlider 4 4 8192 0 0 32768 1 Module 1 5 189 262 0 0 Port 1 1 5 12 Port 2 0 5 14 Port 4 1 5 14 FSlider 5 0 0 0 0 16384 1 FSlider 5 1 -37725 1 -113176 37725 1 FSlider 5 2 0 0 0 163840 1 FSlider 5 3 13525 0 1638 14745 1 FSlider 5 4 394 0 0 163840 1 FSlider 5 5 0 0 0 163840 1 ISlider 5 0 0 1 ISlider 5 1 1 1 ISlider 5 2 1 1 ComboBox 5 0 0 1 Module 9 7 338 244 0 0 Port 0 3 7 5 Port 1 0 7 9 Port 2 0 7 14 FSlider 7 0 4920 0 0 163840 1 FSlider 7 1 70212 0 0 139328 1 FSMIDI 7 1 10 0 1 FSlider 7 2 3936 0 0 163840 1 FSlider 7 3 0 0 0 163840 1 FSlider 7 4 11464 0 163 16384 1 FSlider 7 5 0 0 0 16384 1 ComboBox 7 0 6 1 Module 15 9 225 158 0 0 Port 0 1 9 12 FSlider 9 0 939 0 0 163840 1 FSlider 9 1 939 0 0 163840 1 Module 6 10 505 386 0 cmt Freeverb (Version 3) Port 0 0 10 21 Port 1 0 10 21 FSlider 10 0 6554 0 0 16384 1 FSlider 10 1 -89825 1 -113176 0 1 FSlider 10 2 -11744 1 -113176 0 1 FSlider 10 3 -11744 1 -113176 0 1 FSlider 10 4 16384 0 0 16384 1 CheckBox 10 0 0 1 Module 10 12 13 120 0 0 FSlider 12 0 129 0 -16384 16384 1 FSMIDI 12 0 13 0 0 ISlider 12 0 24 1 ComboBox 12 0 0 1 Module 3 14 12 346 0 0 FSlider 14 0 112669 0 0 1638400 1 FSlider 14 1 0 0 0 102940 1 Module 11 18 348 13 0 0 Port 0 0 18 12 FSlider 18 0 2903 0 0 16384 1 FSlider 18 1 394 0 0 16384 1 FSlider 18 2 246 0 0 16384 1 FSlider 18 3 2903 0 0 16384 1 FSlider 18 4 0 0 0 16384 1 FSlider 18 5 819 0 0 16384 1 FSlider 18 6 5048 0 1638 163840 1 Module 1 20 189 495 0 0 Port 1 1 20 12 FSlider 20 0 98 0 0 16384 1 FSlider 20 1 -37725 1 -113176 37725 1 FSlider 20 2 0 0 0 163840 1 FSlider 20 3 8192 0 1638 14745 1 FSlider 20 4 0 0 0 163840 1 FSlider 20 5 0 0 0 163840 1 ISlider 20 0 4 1 ISlider 20 1 1 1 ISlider 20 2 1 1 ComboBox 20 0 0 1 Module 8 21 674 208 2 0 Port 0 0 21 24 Port 1 0 21 4 FSlider 21 0 16384 0 0 32768 1 FSlider 21 1 1690 0 0 32768 1 FSlider 21 2 16525 0 0 32768 1 Module 2 24 532 12 0 0 Port 0 0 24 18 Port 2 0 24 20 FSlider 24 0 0 0 0 163840 1 FSlider 24 1 0 0 0 163840 1 FSlider 24 2 16384 0 0 32768 1 FSlider 24 3 16384 0 0 32768 1 FSlider 24 4 16384 0 0 32768 1 ams-2.0.1/demos/example_random_minor_chords.ams0000664000076400007640000000501707770061731016612 00000000000000Module 7 1 979 59 0 0 Port 0 0 1 16 Port 1 1 1 16 FSlider 1 0 11783 0 0 16384 1 FSlider 1 1 8192 0 0 16384 1 FSlider 1 2 8192 0 0 16384 1 ComboBox 1 0 1 1 Module 11 3 271 14 0 0 Port 0 1 3 7 FSlider 3 0 0 0 0 16384 1 FSlider 3 1 -101960 1 -113176 0 1 FSlider 3 2 0 0 0 16384 1 FSlider 3 3 4674 0 0 16384 1 FSlider 3 4 11464 0 0 16384 1 FSlider 3 5 5757 0 0 16384 1 FSlider 3 6 16738 0 1638 163840 1 Module 2 4 445 14 0 0 Port 0 0 4 3 Port 2 0 4 10 FSlider 4 0 0 0 0 163840 1 FSlider 4 1 0 0 0 163840 1 FSlider 4 2 8192 0 0 16384 1 FSlider 4 3 8192 0 0 16384 1 FSlider 4 4 8192 0 0 16384 1 Module 1 5 386 177 0 0 Port 1 0 5 7 FSlider 5 0 0 0 0 16384 1 FSlider 5 1 0 0 0 163840 1 FSlider 5 2 0 0 0 163840 1 FSlider 5 3 8192 0 1638 14745 1 FSlider 5 4 0 0 0 16384 1 FSlider 5 5 0 0 0 102940 1 ISlider 5 0 3 1 ISlider 5 1 1 1 ISlider 5 2 1 1 ComboBox 5 0 0 1 Module 16 7 152 127 0 0 Port 0 2 7 12 Port 2 1 7 22 ComboBox 7 0 5 1 Module 9 10 564 175 0 0 Port 0 2 10 5 Port 1 0 10 13 Port 2 0 10 18 FSlider 10 0 43297 0 0 163840 1 FSlider 10 1 111687 0 0 163840 1 FSlider 10 2 48709 0 0 163840 1 FSlider 10 3 0 0 0 163840 1 FSlider 10 4 13107 0 163 16384 1 FSlider 10 5 0 0 0 16384 1 ComboBox 10 0 6 1 Module 14 12 11 67 0 0 FSlider 12 0 27228 0 0 163840 1 FSlider 12 1 6572 0 0 16384 1 Module 15 13 260 267 0 0 Port 0 0 13 7 FSlider 13 0 8192 0 0 163840 1 FSlider 13 1 8192 0 0 163840 1 Module 6 15 576 61 0 cmt Canyon Delay Port 0 0 15 4 Port 1 0 15 4 FSlider 15 0 9273 0 163 16220 1 FSlider 15 1 12347 0 -16384 16384 1 FSlider 15 2 6788 0 163 16220 1 FSlider 15 3 13661 0 -16384 16384 1 FSlider 15 4 81920000 0 16384 81920000 1 Module 6 16 779 62 0 cmt Freeverb (Version 3) Port 0 0 16 15 Port 1 1 16 15 FSlider 16 0 8215 0 0 16384 1 FSlider 16 1 -83988 1 -113176 0 1 FSlider 16 2 -6486 1 -113176 0 1 FSlider 16 3 0 1 -113176 0 1 FSlider 16 4 16384 0 0 16384 1 CheckBox 16 0 0 1 Module 15 18 381 411 0 0 Port 0 2 18 19 FSlider 18 0 61968 0 0 163840 1 FSlider 18 1 48354 0 0 163840 1 Module 14 19 188 358 0 0 FSlider 19 0 91074 0 0 163840 1 FSlider 19 1 16384 0 0 16384 1 Module 12 22 19 200 8 0 ISlider 22 0 0 1 ISlider 22 1 3 1 ISlider 22 2 6 1 ISlider 22 3 63 1 ISlider 22 4 3 1 ISlider 22 5 63 1 ISlider 22 6 0 1 ISlider 22 7 63 1 ISlider 22 8 3 1 ISlider 22 9 63 1 ISlider 22 10 6 1 ISlider 22 11 63 1 ISlider 22 12 3 1 ISlider 22 13 63 1 ISlider 22 14 6 1 ISlider 22 15 63 1 ISlider 22 16 9 1 ISlider 22 17 63 1 ComboBox 22 0 1 1 CheckBox 22 0 0 1 CheckBox 22 1 0 1 CheckBox 22 2 0 1 CheckBox 22 3 0 1 CheckBox 22 4 0 1 CheckBox 22 5 0 1 CheckBox 22 6 0 1 CheckBox 22 7 0 1 ams-2.0.1/demos/example_bode.ams0000664000076400007640000000166407770061731013501 00000000000000Module 7 1 588 142 0 0 Port 0 0 1 5 Port 1 1 1 5 FSlider 1 0 3762 0 0 16384 1 FSlider 1 1 8192 0 0 16384 1 FSlider 1 2 8192 0 0 16384 1 ComboBox 1 0 1 1 Module 25 2 582 282 0 0 Port 0 0 2 5 Port 1 1 2 5 FSlider 2 0 16384 0 1638 163840 1 FSlider 2 1 0 0 0 327680000 1 FSlider 2 2 78979280 0 0 327680000 1 ComboBox 2 0 0 1 ComboBox 2 1 0 1 ComboBox 2 2 0 1 ComboBox 2 3 1 1 ComboBox 2 4 2 1 ComboBox 2 5 4 1 CheckBox 2 0 1 1 Module 1 3 106 102 0 0 FSlider 3 0 0 0 0 16384 1 FSlider 3 1 8192 0 1638 14745 1 FSlider 3 2 0 0 0 16384 1 FSlider 3 3 0 0 0 102940 1 FSlider 3 4 0 0 0 163840 1 FSlider 3 5 0 0 0 163840 1 ISlider 3 0 4 1 ISlider 3 1 1 1 ISlider 3 2 1 1 ComboBox 3 0 0 1 Module 6 5 310 179 0 bode_shifter_cv_1432 Bode frequency shifter (CV) Port 0 2 5 3 Port 1 0 5 6 FSlider 5 0 0 0 0 81920000 1 FSlider 5 1 -16384 0 -16384 16384 1 FSlider 5 2 16384 0 0 16384 1 Module 3 6 105 333 0 0 FSlider 6 0 4180 0 0 1638400 1 FSlider 6 1 0 0 0 102940 1 ams-2.0.1/demos/example_chorus_modwheel.ams0000664000076400007640000000273507770061731015757 00000000000000Module 1 1 185 44 0 0 Port 1 1 1 4 FSlider 1 0 9546 0 0 16384 1 FSMIDI 1 0 13 0 0 FSlider 1 1 8192 0 1638 14745 1 FSlider 1 2 0 0 0 16384 1 FSlider 1 3 0 0 0 102940 1 FSlider 1 4 0 0 0 163840 1 FSlider 1 5 0 0 0 163840 1 ISlider 1 0 1 1 ISlider 1 1 1 1 ISlider 1 2 1 1 ComboBox 1 0 0 1 Module 7 2 553 213 0 0 Port 0 0 2 5 Port 1 1 2 5 FSlider 2 0 8192 0 0 16384 1 FSlider 2 1 8192 0 0 16384 1 FSlider 2 2 8192 0 0 16384 1 ComboBox 2 0 1 1 Module 6 3 372 224 0 cs_chorus Chorus2 Port 0 0 3 7 FSlider 3 0 275853 0 0 491520 1 FSlider 3 1 17998 1 -95176 17999 1 FSlider 3 2 11703 0 0 163840 1 FSlider 3 3 35126 1 -75451 37725 1 FSlider 3 4 1881 0 0 49152 1 Module 10 4 7 58 0 0 FSlider 4 0 0 0 -16384 16384 1 ISlider 4 0 12 1 ComboBox 4 0 0 1 Module 6 5 297 323 0 gverb_1216 GVerb Port 0 0 5 3 FSlider 5 0 2365816 0 16384 4915200 1 FSlider 5 1 83535 0 1638 5898240 1 FSlider 5 2 0 0 0 16384 1 FSlider 5 3 9279 0 0 16384 1 FSlider 5 4 -509724 0 -1146880 0 1 FSlider 5 5 -246898 0 -1146880 0 1 FSlider 5 6 -410169 0 -1146880 0 1 Module 11 6 68 346 0 0 Port 0 0 6 4 FSlider 6 0 0 0 0 16384 1 FSlider 6 1 819 0 0 16384 1 FSlider 6 2 327 0 0 16384 1 FSlider 6 3 1638 0 0 16384 1 FSlider 6 4 11468 0 0 16384 1 FSlider 6 5 819 0 0 16384 1 FSlider 6 6 16384 0 1638 163840 1 Module 2 7 458 43 0 0 Port 0 0 7 6 Port 2 2 7 1 Port 3 3 7 1 FSlider 7 0 0 0 0 16384 1 FSlider 7 1 0 0 0 16384 1 FSlider 7 2 16384 0 0 32768 1 FSMIDI 7 2 10 0 1 FSlider 7 3 16384 0 0 32768 0 FSMIDI 7 3 10 0 1 FSlider 7 4 16384 0 0 32768 1 ams-2.0.1/demos/example_midiout_note.ams0000664000076400007640000000152407770061731015262 00000000000000Module 29 1 314 40 0 0 Port 0 1 1 2 Port 1 1 1 2 FSlider 1 0 16384 0 0 163840 1 FSlider 1 1 16384 0 0 163840 1 FSlider 1 2 8192 0 0 163840 1 ISlider 1 0 51 1 ISlider 1 1 67 1 ISlider 1 2 24 1 ISlider 1 3 25 1 ComboBox 1 0 0 1 ComboBox 1 1 2 1 Module 3 2 110 39 0 0 FSlider 2 0 -31666 1 -75451 75451 1 FSlider 2 1 0 0 0 102940 1 Module 7 3 604 390 0 0 FSlider 3 0 8192 0 0 16384 1 FSlider 3 1 8192 0 0 16384 1 FSlider 3 2 8192 0 0 16384 1 ComboBox 3 0 1 1 Comment 0 0 237 208 314 194 #PARA# 0 0 0 This simple patch demonstrates the Note mode of the MIDI Out module. If the Trigger input is not connected, a new note event is triggered whenever the input signal changes. The In 0 and In 1 input ports correspond to the two readable MIDI ports of AlsaModularSynth. #ARAP# #PARA# 0 0 1 The dummy PCM Out module is just there to stabilize timing. #ARAP# ams-2.0.1/demos/bass_advenv.ams0000664000076400007640000000567107770061731013352 00000000000000Module 7 1 589 170 0 0 Port 0 0 1 4 Port 1 0 1 4 FSlider 1 0 4180 0 0 16384 1 FSlider 1 1 16384 0 0 16384 1 FSlider 1 2 16384 0 0 16384 1 ComboBox 1 0 1 1 Module 11 3 145 13 0 0 Port 0 0 3 12 Port 1 3 3 12 FSlider 3 0 0 0 0 16384 1 FSlider 3 1 -107579 1 -113176 0 1 FSlider 3 2 98 0 0 16384 1 FSlider 3 3 6797 0 0 16384 1 FSlider 3 4 9902 0 0 16384 1 FSlider 3 5 -2176 1 -113176 0 1 FSlider 3 6 16384 0 1638 163840 1 Module 2 4 432 23 0 0 Port 0 0 4 3 Port 2 0 4 20 FSlider 4 0 0 0 0 163840 1 FSlider 4 1 0 0 0 163840 1 FSlider 4 2 19529 0 0 32768 1 FSlider 4 3 8192 0 0 32768 1 FSlider 4 4 8192 0 0 32768 1 Module 1 5 168 275 0 0 Port 1 1 5 12 FSlider 5 0 0 0 0 16384 1 FSlider 5 1 1638 0 0 163840 1 FSlider 5 2 0 0 0 163840 1 FSlider 5 3 8192 0 1638 14745 1 FSlider 5 4 0 0 0 163840 1 FSlider 5 5 0 0 0 163840 1 ISlider 5 0 0 1 ISlider 5 1 1 1 ISlider 5 2 1 1 ComboBox 5 0 0 1 Module 6 10 563 46 0 cmt Freeverb (Version 3) Port 0 0 10 4 Port 1 0 10 4 FSlider 10 0 11502 0 0 16384 1 FSlider 10 1 -89825 1 -113176 0 1 FSlider 10 2 -5338 1 -113176 0 1 FSlider 10 3 -5338 1 -113176 0 1 FSlider 10 4 16384 0 0 16384 1 CheckBox 10 0 0 1 Module 10 12 13 120 0 0 FSlider 12 0 129 0 -16384 16384 1 ISlider 12 0 24 1 ComboBox 12 0 0 1 Module 1 14 358 292 0 0 Port 1 1 14 12 Port 4 1 14 22 FSlider 14 0 180 0 0 16384 1 FSlider 14 1 8192 0 1638 14745 1 FSlider 14 2 3949 0 0 16384 1 FSlider 14 3 0 0 0 102940 1 FSlider 14 4 0 0 0 163840 1 FSlider 14 5 0 0 0 163840 1 ISlider 14 0 0 1 ISlider 14 1 1 1 ISlider 14 2 1 1 ComboBox 14 0 0 1 Module 1 15 537 291 0 0 Port 1 1 15 12 FSlider 15 0 270 0 0 16384 1 FSlider 15 1 8192 0 1638 14745 1 FSlider 15 2 0 0 0 16384 1 FSlider 15 3 0 0 0 102940 1 FSlider 15 4 0 0 0 163840 1 FSlider 15 5 0 0 0 163840 1 ISlider 15 0 0 1 ISlider 15 1 1 1 ISlider 15 2 1 1 ComboBox 15 0 0 1 Module 8 16 693 319 4 0 Port 0 2 16 5 Port 1 2 16 14 Port 2 2 16 15 Port 3 3 16 14 FSlider 16 0 16384 0 0 32768 1 FSlider 16 1 16384 0 0 32768 1 FSlider 16 2 16384 0 0 32768 1 FSlider 16 3 16384 0 0 32768 1 FSlider 16 4 16384 0 0 32768 1 Module 6 20 195 144 0 mvclpf24 Mvclpf-3 Port 0 0 20 16 Port 1 1 20 12 Port 2 0 20 22 FSlider 20 0 163840 0 -983040 163840 1 FSlider 20 1 -34188 0 -81920 81920 1 FSMIDI 20 1 13 0 0 FSlider 20 2 52981 0 0 163840 1 FSlider 20 3 7482 0 0 16384 1 FSMIDI 20 3 10 0 1 FSlider 20 4 0 0 0 16384 1 FSlider 20 5 -9350 0 -245760 245760 1 Module 22 22 31 325 0 0 Port 0 0 22 12 Port 1 3 22 12 FSlider 22 0 13808 0 1638 163840 1 FSlider 22 1 0 0 0 16384 1 FSlider 22 2 0 0 0 16384 1 FSlider 22 3 86 0 0 16384 1 FSlider 22 4 8796 0 0 16384 1 FSlider 22 5 4197 0 0 16384 1 FSlider 22 6 0 0 0 16384 1 FSlider 22 7 805 0 0 16384 1 FSlider 22 8 14745 0 0 16384 1 FSlider 22 9 1638 0 0 16384 1 FSlider 22 10 4896 0 0 16384 1 FSlider 22 11 16384 0 0 16384 1 FSlider 22 12 678 0 0 16384 1 FSlider 22 13 3276 0 0 16384 1 FSlider 22 14 254 0 0 16384 1 Comment 0 0 266 165 200 170 #PARA# 0 0 0 Filter Cutoff is bound to Pitchbend and Filter Resonance is bound to ModWheel. #ARAP# ams-2.0.1/demos/example_basic_vcf_gverb_mcpfilter_env.ams0000664000076400007640000000572607770061731020614 00000000000000Module 7 1 678 18 0 0 Port 0 0 1 20 Port 1 1 1 20 FSlider 1 0 8485 0 0 16384 1 FSlider 1 1 16384 0 0 16384 1 FSlider 1 2 16384 0 0 16384 1 ComboBox 1 0 1 1 Module 11 3 145 13 0 0 Port 0 0 3 12 Port 1 3 3 12 FSlider 3 0 0 0 0 16384 1 FSlider 3 1 -72548 1 -113176 0 1 FSlider 3 2 98 0 0 16384 1 FSlider 3 3 8738 0 0 16384 1 FSlider 3 4 12477 0 0 16384 1 FSlider 3 5 -13349 1 -113176 0 1 FSlider 3 6 16384 0 1638 163840 1 Module 2 4 283 13 0 0 Port 0 0 4 3 Port 2 0 4 18 FSlider 4 0 0 0 0 163840 1 FSlider 4 1 0 0 0 163840 1 FSlider 4 2 19529 0 0 32768 1 FSlider 4 3 8192 0 0 32768 1 FSlider 4 4 8192 0 0 32768 1 Module 1 5 150 289 0 0 Port 1 1 5 12 Port 2 0 5 16 FSlider 5 0 0 0 0 16384 1 FSlider 5 1 1638 0 0 163840 1 FSlider 5 2 0 0 0 163840 1 FSlider 5 3 8192 0 1638 14745 1 FSlider 5 4 198 0 0 2972 1 FSlider 5 5 0 0 0 163840 1 ISlider 5 0 0 1 ISlider 5 1 1 1 ISlider 5 2 1 1 ComboBox 5 0 0 1 Module 10 12 13 120 0 0 FSlider 12 0 129 0 -16384 16384 1 FSMIDI 12 0 13 0 0 ISlider 12 0 24 1 ComboBox 12 0 0 1 Module 11 14 400 129 0 0 Port 0 0 14 12 Port 1 3 14 12 FSlider 14 0 0 0 0 16384 1 FSlider 14 1 462 0 0 16384 1 FSlider 14 2 0 0 0 16384 1 FSlider 14 3 9788 0 0 16384 1 FSlider 14 4 0 0 0 16384 1 FSlider 14 5 3445 0 0 16384 1 FSlider 14 6 1638 0 1638 163840 1 Module 3 16 14 289 0 0 FSlider 16 0 104490 0 0 1638400 1 FSlider 16 1 0 0 0 102940 1 Module 6 18 548 126 0 mvclpf24 Mvclpf-3 Port 0 0 18 23 Port 1 1 18 12 Port 2 0 18 14 FSlider 18 0 -345234 0 -983040 163840 1 FSlider 18 1 -20794 0 -49412 33192 1 FSMIDI 18 1 10 0 1 FSlider 18 2 35109 0 0 163840 1 FSlider 18 3 3302 0 0 16384 1 FSlider 18 4 0 0 0 16384 1 FSlider 18 5 175543 0 -245760 245760 1 Module 6 20 400 15 0 gverb_1216 GVerb Port 0 0 20 4 FSlider 20 0 4077902 0 16384 4915200 1 FSlider 20 1 46765 0 1638 5898240 1 FSlider 20 2 8401 0 0 16384 1 FSlider 20 3 16384 0 0 16384 1 FSlider 20 4 0 0 -1146880 0 1 FSlider 20 5 -172617 0 -1146880 0 1 FSlider 20 6 -386194 0 -1146880 0 1 Module 1 22 313 288 0 0 Port 1 1 22 12 FSlider 22 0 0 0 0 16384 1 FSlider 22 1 8192 0 1638 14745 1 FSlider 22 2 0 0 0 16384 1 FSlider 22 3 0 0 0 102940 1 FSlider 22 4 0 0 0 163840 1 FSlider 22 5 0 0 0 163840 1 ISlider 22 0 3 1 ISlider 22 1 1 1 ISlider 22 2 1 1 ComboBox 22 0 0 1 Module 8 23 675 286 4 0 Port 0 2 23 5 Port 1 3 23 24 Port 2 1 23 22 FSlider 23 0 16384 0 0 32768 1 FSlider 23 1 16384 0 0 32768 1 FSlider 23 2 16384 0 0 32768 1 FSlider 23 3 16384 0 0 32768 1 FSlider 23 4 16384 0 0 32768 1 Module 1 24 481 288 0 0 Port 1 1 24 12 Port 2 0 24 16 FSlider 24 0 45 0 0 16384 1 FSlider 24 1 8192 0 1638 14745 1 FSlider 24 2 0 0 0 16384 1 FSlider 24 3 0 0 0 102940 1 FSlider 24 4 151 0 0 163840 1 FSlider 24 5 0 0 0 163840 1 ISlider 24 0 0 1 ISlider 24 1 1 1 ISlider 24 2 1 1 ComboBox 24 0 0 1 Comment 0 0 241 196 302 185 #PARA# 0 0 0 This patch demonstrates the excellent low pass filter by Fons Adriaensen. #ARAP# #PARA# 0 0 1 ModWheel is bound to filter cutoff. Try what happens when you modify #ARAP# #PARA# 0 0 2 the filter resonance. #ARAP# #PARA# 0 0 3 #ARAP# ams-2.0.1/AUTHORS0000664000076400007640000000041511052031305010263 00000000000000Authors of AlsaModularSynth (ams) --------------------------------- Matthias Nagorni Fons Adriaensen Karsten Wiese Malte Steiner Guido Scholz ams-2.0.1/configure.ac0000644000076400007640000001075011315245605011516 00000000000000# -*- Autoconf -*- # Process this file with autoconf to produce a configure script. AC_PREREQ(2.61) AC_INIT(ams, [2.0.1], [alsamodular-devel@lists.sourceforge.net]) AC_CANONICAL_SYSTEM AC_CONFIG_SRCDIR([src/box.h]) AC_CONFIG_HEADER([src/config.h]) AM_INIT_AUTOMAKE([dist-bzip2]) # Checks for programs. AC_PROG_CXX AC_PROG_CC AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_RANLIB PKG_PROG_PKG_CONFIG dnl set basic compiler flags AMS_CORE_CXXFLAGS="-Wall" dnl set compiler optimization flags AC_MSG_CHECKING(which processor class to optimize for) case "$target" in i486-*-*) AMS_OPT_CXXFLAGS="-march=i486" AC_MSG_RESULT(i486) ;; i586-*-*) AMS_OPT_CXXFLAGS="-march=pentium" AC_MSG_RESULT(i586) ;; i686-*-*) AMS_OPT_CXXFLAGS="-march=pentiumpro -msse -mfpmath=sse -ffast-math" AC_MSG_RESULT(i686) ;; i786-*-*) AMS_OPT_CXXFLAGS="-march=pentium4 -msse -mfpmath=sse -ffast-math" AC_MSG_RESULT(i786) ;; x86_64-*-*) AMS_OPT_CXXFLAGS="-m64 -msse -mfpmath=sse -ffast-math" AC_MSG_RESULT(x86_64) ;; *) AC_MSG_RESULT(i386) AC_MSG_WARN(This is probably not what you want, use --target) ;; esac if test "x$AMS_OPT_CXXFLAGS" = "x"; then AMS_CXXFLAGS=$AMS_CORE_CXXFLAGS else AC_MSG_NOTICE([Compiler optimization... $AMS_OPT_CXXFLAGS]) AMS_CXXFLAGS="$AMS_CORE_CXXFLAGS $AMS_OPT_CXXFLAGS" fi AC_SUBST(AMS_CXXFLAGS) # Checks for libraries. AC_CHECK_LIB([QtCore], [main], , [AC_MSG_ERROR(QtCore is required)]) AC_CHECK_LIB([QtGui], [main], , [AC_MSG_ERROR(QtGui is required)]) AC_CHECK_LIB([QtOpenGL], [main], , [AC_MSG_ERROR(QtOpenGL is required)]) AC_CHECK_LIB([asound], [snd_pcm_open], , [AC_MSG_ERROR(asound is required)]) AC_CHECK_LIB([clalsadrv], [main], , [AC_MSG_ERROR(clalsadrv is required)]) AC_CHECK_LIB([jack], [jack_client_new], , [AC_MSG_ERROR(jack is required)]) AC_CHECK_LIB([pthread], [pthread_create], , [AC_MSG_ERROR(pthread is required)]) AC_CHECK_LIB([m], [roundf], , AC_MSG_ERROR([required libm missing])) PKG_CHECK_MODULES(QT, QtCore QtGui >= 4.2.0, HAVE_QT4="yes", HAVE_QT4="no") if test "x$HAVE_QT4" = "xyes"; then dnl Check needed because in some cases the QtGui includedir dnl doesn't contain the subsystem dir. QT_INCLUDE_DIR=`$PKG_CONFIG --variable=includedir QtGui` QT_CXXFLAGS=`$PKG_CONFIG --cflags QtCore QtGui QtOpenGL` EXTRA_QT_INCLUDE_DIR="$QT_INCLUDE_DIR/Qt" AC_CHECK_FILE([$QT_INCLUDE_DIR/QWidget], AC_MSG_NOTICE([No extra QT_INCLUDE_DIR needed]), AC_CHECK_FILE([$EXTRA_QT_INCLUDE_DIR/QWidget], QT_CPPFLAGS="$QT_CPPFLAGS -I$EXTRA_QT_INCLUDE_DIR", AC_MSG_WARN([QWidget not found]))) AC_MSG_NOTICE([Set QT_CXXFLAGS... $QT_CXXFLAGS]) AC_SUBST(QT_CXXFLAGS) else AC_MSG_ERROR([cannot find Qt4 library >= 4.2]) fi dnl check for moc AC_PATH_PROGS(MOC, moc-qt4 moc, no, [$PATH:$QTDIR/bin]) if test "x$MOC" = "xno" ; then AC_MSG_ERROR( [cannot find 'moc', please install the Qt4 development tools package.]) fi dnl check for lupdate AC_PATH_PROGS(LUPDATE, lupdate-qt4 lupdate, no, [$PATH:$QTDIR/bin]) if test "x$LUPDATE" = "xno" ; then AC_MSG_ERROR( [cannot find 'lupdate', please install the Qt4 development tools package.]) fi dnl check for lrelease AC_PATH_PROGS(LRELEASE, lrelease-qt4 lrelease, no, [$PATH:$QTDIR/bin]) if test "x$LRELEASE" = "xno" ; then AC_MSG_ERROR( [cannot find 'lrelease', please install the Qt4 development tools package.]) fi # Checks for header files. AC_HEADER_STDC # Checks for typedefs, structures, and compiler characteristics. AC_HEADER_STDBOOL AC_C_CONST AC_C_INLINE AC_TYPE_SSIZE_T AC_STRUCT_TM # Checks for library functions. AC_FUNC_MALLOC AC_FUNC_SELECT_ARGTYPES AC_FUNC_STAT AC_CHECK_FUNCS([floor ftruncate getcwd memset mkdir pow rint select sqrt]) # Check for ladspa plugins path AC_ARG_WITH(ladspa-path, [AC_HELP_STRING([--with-ladspa-path=DIR], [directory for ladspa plugins])], [ if test "x$withval" != "x" ; then LADSPA_PATH="$withval" fi ], [LADSPA_PATH="/usr/lib/ladspa:/usr/local/lib/ladspa"]) AC_SUBST(LADSPA_PATH) AC_CONFIG_FILES([Makefile]) AC_CONFIG_FILES([demos/Makefile]) AC_CONFIG_FILES([instruments/Makefile]) AC_CONFIG_FILES([tutorial/Makefile]) AC_CONFIG_FILES([colors/Makefile]) AC_CONFIG_FILES([pixmaps/Makefile]) AC_CONFIG_FILES([man/Makefile]) AC_CONFIG_FILES([src/Makefile]) AC_OUTPUT ams-2.0.1/NEWS0000644000076400007640000000253111315247376007734 00000000000000ams-2.0.1 (2009-12-26) Fixed Bugs o Compile error for Qt 4.2 fixed o Highlight MIDI controller in Control Center, if MIDI event has been received. o Fix crash unbinding multiple controllables connected to the same midi controller. o Initialized variable in env-module. Fixes env-module mute bug discribed by lee(mrleelee). New Features o General Changes o MIDI channel numbering changed from 0..15 to 1..16. ams-2.0.0 (2009-06-12) New Features o Redesign of 3D look o Application icon o German translation o Keyboard shortcuts for menu and dialog items o Menu item for recently opened files o French translation (by Fank Kober) o New --name command line option to specify the ALSASEQ/JACK clientname o Legato in monophonic mode using the "--poly 1" command line option (by Atte Andre Jensen) General Changes o Port form Qt 3 to Qt 4.x library. o A newly written autoconf/automake environment now provides the usual "./configure && make && make install" comfort. o Command line options are reworked. - JACK now is the default interface, if the connection fails ams connects to ALSA. This behavior can be modified using the -J and -A options. - The initial patch file to be loaded no longer needs the -l option. ams-2.0.1/THANKS0000664000076400007640000000246607745535152010165 00000000000000 Thanks ------ The VCF Module uses the resonant low-pass filter by Paul Kellett and the Cookbook formulae for audio EQ biquad filter coefficients by Robert Bristow-Johnson. The experimental Moog filters have been taken from http://musicdsp.org. They are based on the CSound source code, the paper by Stilson/Smith and modifications by Paul Kellett and Timo Tossavainen. The pink noise conversion formula is by Paul Kellett and has been taken from http://musicdsp.org as well. The author is grateful to Takashi Iwai for instructions about ALSA. Klaas Freitag, Helmut Herold, Stefan Hundhammer and Arvin Schnell answered many questions about QT. Thanks to Jörg Arndt for valuable hints regarding speed optimization. Torsten Rahn has helped to improve the color scheme of the program. Thanks to Bernhard Kaindl for helpful discussion. Bill Allen has contributed an improved Makefile. The stereo mixer module has been suggested by Fons Adriaensen who has also contributed many ideas and patches to Spectrum View, MCV and other modules. Special thanks must go to the many authors of LADSPA plugins that add many useful and cool effects to AlsaModularSynth. Without the marvelous MCP-Plugins and REV-Plugins by Fons Adriaensen, AlsaModularSynth would probably not sound half has good as it sounds today. ams-2.0.1/ChangeLog0000644000076400007640000001472711315240335011005 000000000000002009-12-25 Karsten Wiese * src/m_env.cpp: Initialize M_env::e_noteOff[]. 2009-10-07 Guido Scholz * src/midiwidget.cpp: MIDI channel numbering changed from 0..15 to 1..16. 2009-10-04 Karsten Wiese * src/midiwidget.cpp: Fix crash unbinding multiple controllables connected to the same midi controller by using QPersistentModelIndex. 2009-09-26 Karsten Wiese * src/midiwidget.cpp: Update comments, move one return. * SynthData::getMidiControllerContext(): Tell userinterface "MIDI event happened", if (midiWidget->isVisible()). 2009-08-14 Guido Scholz * src/midiwidget.cpp: Update selection in MIDI controller view, if MIDI event of an already listed controller arrives. 2009-09-05 Frank Neumann * configure.ac: Compiler optimization for arch x86_64 added. 2009-08-12 Guido Scholz * src/modules.cpp: Compile error for Qt 4.2 fixed, caused by missing QPainterPath header. +++ Release 2.0.0 (2009-06-15) +++ 2009-06-12 Karsten Wiese * main.cpp, modularsynth.cpp, modularsynth.h, msoptions.h: -v "verbose" command line option. * configure.ac: bump VERSION to "2.0.0". 2009-06-09 Karsten Wiese * m_midiout.cpp, m_scope.cpp, m_wavout.cpp, module.cpp, synthdata.cpp: Fix crash on switching presets containing M_wavout or M_scope modules. * configure.ac: bump VERSION to "2.0.0-rc2". 2009-05-25 Karsten Wiese * MainWindow::closeEvent(): Call modularSynth->clearConfig(); to fix crash when quitting. 2009-05-19 Karsten Wiese * ModularSynth::mousePressEvent(): Fix newBoxPos and popup position. Style. 2009-05-18 Karsten Wiese * M_pcmout: Fix noise after disconnection. * Module deletion fixed to allow midibound activity also for unconnected modules. * M_type_pcmout deletion fixed to avoid crash. 2009-05-17 Karsten Wiese * cmdline options: reenable -j and -a. * legato mode: Make "All notes off" also clear the notelist. * ISMIDI is the correct tag for an intMidiSlider, fix incorrectly saved as FSMIDI midibindings. 2009-05-16 Guido Scholz * man/ams.1: New command line options added. * configure.ac: bump VERSION down to "2.0.0-rc1". 2009-05-16 Karsten Wiese * call jack_client_open() instead of deprecated jack_client_new(). * legato in monophonic mode by Atte Andre Jensen. * Doing console io from rt thread can cause harm to ears and speakers. Defer unsupported midi messages warnings to userinterface. * Fix 2 bugs in ModularSynth that caused accessviolation on exit and wrong box placement in Parameter View. * Call guiWidget->close(), prefWidget->close() and midiWidget->close() from ModularSynth::dtor to let process finish on Mainwindow closing also if any of those widgets is shown. * Reenable polyphonic mode. Fix by Atte Andre Jensen. * MainWindow::updateWindowTitle(): Use synthdata->name instead of APPNAME to match MIDI and Jack names. * Rework commandline options. Started by Atte Andre Jensen. Tweaked to resemble Fons Adriaensen's programs. * configure.ac: bump VERSION to "2.0.1-rc1". 2009-03-02 Karsten Wiese * midiwidget.*: Fix crash if second controller is about to show after 1st controller is bound to controllable. * modularsynth.cpp: Cosmetics showing style I'd like other developers to follow..... 2009-02-24 Karsten Wiese * prefwidget.*, modularsynth.*: Boxes can be moved past the topleft canvas border. Behaviour selectable via new tab in prefwidget. * modularsynth.*: Fix QObject's complaint about deleting while in event-handler by using deleteLater(). 2009-02-21 Guido Scholz * guiwidget.*, modularsynth.cpp: Saving of parameter view settings reorganized, reading of float slider parameters enabled. * guiwidget.*: Inherit parameter view widget from QDialog to create a proper window decoration. * configdialog.*: Inherit module config dialog from QDialog to create a proper window decoration. * modularsynth.cpp: Append suffix to color scheme files if not given by user. 2009-02-18 Guido Scholz * colorwidget.*, prefwidget.cpp: Color widget class moved to separate file, missing Q_OBJECT macro added. * prefwidget.*, modularsynth.*: Unused code removed. 2008-11-09 Frank Kober * ams_fr.ts: French translation added. 2008-09-02 Guido Scholz * configure.ac: Removed obsolete assignments to LIBS variable. * port.h, module.cpp: Port direction is private now. 2008-08-30 Guido Scholz * modularsynth.cpp: Prevent double inport connection. Beep instead of error message if user tries wrong connection. Fix resorting of recently opened files list. 2008-08-29 Guido Scholz * modularsynth.*, module.*, port.*: List of ports now is private to module, port selection rewritten. 2008-08-27 Guido Scholz * synthdata.*: Fixed crash caused by Alsa SND_SEQ_EVENT_SYSEX events. * midicontrollerlist.*: Empty files removed. * midicontroller.*: Possible fix for broken MIDI event type transformation if type values are > 127 (changed "int" to "unsigned int"). Untested. * modularsynth.cpp: Application name added to MIDI in/out port name. 2008-08-17 Guido Scholz * INSTALL: File replaced by generic file which comes with the autotools set. 2008-07-27 Guido Scholz * whole package: Sourcecode files moved to new src subdirectory and newly developed autotools framework added. * man/ams.1: Lost man page added. 2008-07-15 Guido Scholz * mainwindow.cpp, modularsynth.cpp: Menu for recently opened files added. * *.cpp, ams_de.ts: Most strings are made translatable and a German translation is added. Keyboard shortcuts added, where ever possible. 2008-07-12 Guido Scholz * main.cpp: Support for Qt library translations added. * mainwindow.cpp: Application icon added. 2008-07-09 Guido Scholz * main.cpp, mainwindow.*, modularsynth.*: "File save as" function implemented. 2008-06-17 Guido Scholz * ringbuffer.h: Adapt atomic operations to new Qt 4.4 interface ams-2.0.1/depcomp0000755000076400007640000004271311146403535010611 00000000000000#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2007-03-29.01 # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007 Free Software # Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by `PROGRAMS ARGS'. object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputing dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. ## Unfortunately, FreeBSD c89 acceptance of flags depends upon ## the command line argument order; so add the flags where they ## appear in depend2.am. Note that the slowdown incurred here ## affects only configure: in makefiles, %FASTDEP% shortcuts this. for arg do case $arg in -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; *) set fnord "$@" "$arg" ;; esac shift # fnord shift # $arg done "$@" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> $depfile echo >> $depfile # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> $depfile else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.u tmpdepfile2=$base.u tmpdepfile3=$dir.libs/$base.u "$@" -Wc,-M else tmpdepfile1=$dir$base.u tmpdepfile2=$dir$base.u tmpdepfile3=$dir$base.u "$@" -M fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler understands `-MD -MF file'. However on # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp2) # The "hp" stanza above does not work with aCC (C++) and HP's ia64 # compilers, which have integrated preprocessors. The correct option # to use with these is +Maked; it writes dependencies to a file named # 'foo.d', which lands next to the object file, wherever that # happens to be. # Much of this is similar to the tru64 case; see comments there. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.d tmpdepfile2=$dir.libs/$base.d "$@" -Wc,+Maked else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d "$@" +Maked fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" # Add `dependent.h:' lines. sed -ne '2,${; s/^ *//; s/ \\*$//; s/$/:/; p;}' "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" "$tmpdepfile2" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # With Tru64 cc, shared objects can also be used to make a # static library. This mechanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. # # With libtool 1.5 this exception was removed, and libtool now # generates 2 separate objects for the 2 libraries. These two # compilations output dependencies in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 tmpdepfile2=$dir$base.o.d # libtool 1.5 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.o.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d tmpdepfile4=$dir$base.d "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # X makedepend shift cleared=no for arg in "$@"; do case $cleared in no) set ""; shift cleared=yes ;; esac case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix="`echo $object | sed 's/^.*\././'`" touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o, # because we must use -o when running libtool. "$@" || exit $? IFS=" " for arg do case "$arg" in "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: ams-2.0.1/Makefile.in0000664000076400007640000004541311315245614011303 00000000000000# Makefile.in generated by automake 1.10.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Makefile. am for ams VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = . DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(top_srcdir)/configure AUTHORS COPYING \ ChangeLog INSTALL NEWS THANKS config.guess config.sub depcomp \ install-sh missing ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/src/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ { test ! -d $(distdir) \ || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -fr $(distdir); }; } DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2 GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ AMS_CXXFLAGS = @AMS_CXXFLAGS@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LADSPA_PATH = @LADSPA_PATH@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LN_S = @LN_S@ LRELEASE = @LRELEASE@ LTLIBOBJS = @LTLIBOBJS@ LUPDATE = @LUPDATE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MOC = @MOC@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ QT_CFLAGS = @QT_CFLAGS@ QT_CXXFLAGS = @QT_CXXFLAGS@ QT_LIBS = @QT_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = demos instruments tutorial colors pixmaps man src all: all-recursive .SUFFIXES: am--refresh: @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --gnu '; \ cd $(srcdir) && $(AUTOMAKE) --gnu \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: $(am__configure_deps) cd $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(am__remove_distdir) test -d $(distdir) || mkdir $(distdir) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ distdir=`$(am__cd) $(distdir) && pwd`; \ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$top_distdir" \ distdir="$$distdir/$$subdir" \ am__remove_distdir=: \ am__skip_length_check=: \ distdir) \ || exit 1; \ fi; \ done -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r $(distdir) dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-lzma: distdir tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lzma*) \ unlzma -c $(distdir).tar.lzma | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && cd $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @cd $(distuninstallcheck_dir) \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-exec-am: install-html: install-html-recursive install-info: install-info-recursive install-man: install-pdf: install-pdf-recursive install-ps: install-ps-recursive installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ install-strip .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am am--refresh check check-am clean clean-generic \ ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \ dist-lzma dist-shar dist-tarZ dist-zip distcheck distclean \ distclean-generic distclean-tags distcleancheck distdir \ distuninstallcheck dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \ tags-recursive uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ams-2.0.1/man/0000777000076400007640000000000011315252054010060 500000000000000ams-2.0.1/man/Makefile.in0000664000076400007640000002445211315245614012056 00000000000000# Makefile.in generated by automake 1.10.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Makefile.am for ams VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = man DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/src/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = man1dir = $(mandir)/man1 am__installdirs = "$(DESTDIR)$(man1dir)" NROFF = nroff MANS = $(dist_man_MANS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMS_CXXFLAGS = @AMS_CXXFLAGS@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LADSPA_PATH = @LADSPA_PATH@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LN_S = @LN_S@ LRELEASE = @LRELEASE@ LTLIBOBJS = @LTLIBOBJS@ LUPDATE = @LUPDATE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MOC = @MOC@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ QT_CFLAGS = @QT_CFLAGS@ QT_CXXFLAGS = @QT_CXXFLAGS@ QT_LIBS = @QT_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ dist_man_MANS = ams.1 all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu man/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu man/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh install-man1: $(man1_MANS) $(man_MANS) @$(NORMAL_INSTALL) test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)" @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \ l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ for i in $$l2; do \ case "$$i" in \ *.1*) list="$$list $$i" ;; \ esac; \ done; \ for i in $$list; do \ if test -f $$i; then file=$$i; \ else file=$(srcdir)/$$i; fi; \ ext=`echo $$i | sed -e 's/^.*\\.//'`; \ case "$$ext" in \ 1*) ;; \ *) ext='1' ;; \ esac; \ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ inst=`echo $$inst | sed -e 's/^.*\///'`; \ inst=`echo $$inst | sed '$(transform)'`.$$ext; \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \ done uninstall-man1: @$(NORMAL_UNINSTALL) @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \ l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ for i in $$l2; do \ case "$$i" in \ *.1*) list="$$list $$i" ;; \ esac; \ done; \ for i in $$list; do \ ext=`echo $$i | sed -e 's/^.*\\.//'`; \ case "$$ext" in \ 1*) ;; \ *) ext='1' ;; \ esac; \ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ inst=`echo $$inst | sed -e 's/^.*\///'`; \ inst=`echo $$inst | sed '$(transform)'`.$$ext; \ echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \ rm -f "$(DESTDIR)$(man1dir)/$$inst"; \ done tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(MANS) installdirs: for dir in "$(DESTDIR)$(man1dir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-man install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-man1 install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-man uninstall-man: uninstall-man1 .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-man1 install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \ uninstall-am uninstall-man uninstall-man1 # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ams-2.0.1/man/Makefile.am0000664000076400007640000000005611051107140012023 00000000000000# Makefile.am for ams dist_man_MANS = ams.1 ams-2.0.1/man/ams.10000644000076400007640000000647411203756015010653 00000000000000.\" Copyright (c) 2003 Dave Phillips .\" Copyright (c) 2009 Guido Scholz .\" .\" This is free documentation; you can redistribute it and/or .\" modify it under the terms of the GNU General Public License as .\" published by the Free Software Foundation; either version 2 of .\" the License, or (at your option) any later version. .\" .\" The GNU General Public License's references to "object code" .\" and "executables" are to be interpreted as the output of any .\" document formatting or typesetting system, including .\" intermediate and printed output. .\" .\" This manual is distributed in the hope that it will be useful, .\" but WITHOUT ANY WARRANTY; without even the implied warranty of .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the .\" GNU General Public License for more details. .\" .\" You should have received a copy of the GNU General Public .\" License along with this manual; if not, write to the Free .\" Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, .\" USA. .\" .TH AlsaModularSynth 1 "May 2009" .SH NAME AlsaModularSynth (AMS) - A software synthesizer modeled after modular patching synthesizers .SH SYNOPSIS .BI "ams [" OPTIONS "] [" file "]" .SH DESCRIPTION The .B AlsaModularSynth (AMS) is a software synthesizer designed after the great analog modular synths of the 1960s. It employs virtual control voltages (VC) for each module's parameter control, using the the .B Moog synthesizer's 1V/oct logarithmic control scale for its oscillator and filter functions. Following the modular synth model .B AMS supplies the user with a variety of sound-producing and sound-processing software modules such as digital oscillators, filters, amplifiers, and DSP effects. These modules are linked together (patched) to create complex audio synthesis networks. These network patches can be played in realtime via MIDI or internal control structures, and they may be saved and reloaded at will. .SH OPTIONS Runtime options for .B AMS are shown here with their default values in brackets. .TP 10 .B --jack Force JACK I/O .TP 10 .BI "--in " Number of JACK input ports .TP 10 .BI "--out " Number of JACK output ports .TP 10 .BI "--poly " Polyphony [1] .TP 10 .BI "--periodsize " Period size [1024] .TP 10 .B --alsa Force ALSA I/O .TP 10 .BI "--frag " Number of fragments [2] .TP 10 .BI "--rate " Sample rate [44100] .TP 10 .BI "--edge " <0...10> VCO edge [1.0] .TP 10 .BI "--soundcard " Soundcard [plughw:0,0] .TP 10 .BI "--preset " Preset file .TP 10 .BI "--presetpath " Preset path .TP 10 .B --nogui Start without GUI .TP 10 .BI "--name " ALSASEQ/JACK clientname, windowtitle .SH FILES Numerous example and tutorial patches can be found in .I /usr/share/ams or .I /usr/local/share/ams. Tutorial documentation is available at .I http://alsamodular.sourceforge.net/alsamodularsynth_doc.html. .SH BUGS Please send bug reports or any other feedback to the developer mailing list .SH AUTHORS .B AMS was written by Dr. Matthias Nagorni, Fons Adriaensen, Karsten Wiese, Malte Steiner and Guido Scholz. .SH COPYRIGHT Copyright and license information for .B AMS: .B AlsaModularSynth by Matthias Nagorni (c) 2002-2003 SuSE AG Nuremberg. Licensed under the .B GNU General Public License V2. ams-2.0.1/Makefile.am0000664000076400007640000000012411051107132011245 00000000000000# Makefile. am for ams SUBDIRS = demos instruments tutorial colors pixmaps man src ams-2.0.1/colors/0000777000076400007640000000000011315252054010606 500000000000000ams-2.0.1/colors/colordef03.acs0000664000076400007640000000015411051101134013141 00000000000000ColorBackground 0 0 0 ColorModuleBackground 230 230 230 ColorModuleBorder 138 138 138 ColorModuleFont 0 0 0 ams-2.0.1/colors/colordef01.acs0000664000076400007640000000015511051101133013137 00000000000000ColorBackground 35 67 0 ColorModuleBackground 197 108 0 ColorModuleBorder 100 51 5 ColorModuleFont 255 255 0 ams-2.0.1/colors/colordef05.acs0000664000076400007640000000016211051101135013143 00000000000000ColorBackground 11 104 56 ColorModuleBackground 17 125 135 ColorModuleBorder 15 122 95 ColorModuleFont 255 168 74 ams-2.0.1/colors/colordef04.acs0000664000076400007640000000016211051101135013142 00000000000000ColorBackground 255 255 255 ColorModuleBackground 213 213 213 ColorModuleBorder 156 156 156 ColorModuleFont 0 0 0 ams-2.0.1/colors/Makefile.in0000664000076400007640000002371711315245614012607 00000000000000# Makefile.in generated by automake 1.10.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Makefile.am for ams VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = colors DIST_COMMON = $(dist_colorsdata_DATA) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/src/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(colorsdatadir)" dist_colorsdataDATA_INSTALL = $(INSTALL_DATA) DATA = $(dist_colorsdata_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMS_CXXFLAGS = @AMS_CXXFLAGS@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LADSPA_PATH = @LADSPA_PATH@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LN_S = @LN_S@ LRELEASE = @LRELEASE@ LTLIBOBJS = @LTLIBOBJS@ LUPDATE = @LUPDATE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MOC = @MOC@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ QT_CFLAGS = @QT_CFLAGS@ QT_CXXFLAGS = @QT_CXXFLAGS@ QT_LIBS = @QT_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ colorsdatadir = $(pkgdatadir)/colors dist_colorsdata_DATA = \ colordef01.acs \ colordef02.acs \ colordef03.acs \ colordef04.acs \ colordef05.acs all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu colors/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu colors/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh install-dist_colorsdataDATA: $(dist_colorsdata_DATA) @$(NORMAL_INSTALL) test -z "$(colorsdatadir)" || $(MKDIR_P) "$(DESTDIR)$(colorsdatadir)" @list='$(dist_colorsdata_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(dist_colorsdataDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(colorsdatadir)/$$f'"; \ $(dist_colorsdataDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(colorsdatadir)/$$f"; \ done uninstall-dist_colorsdataDATA: @$(NORMAL_UNINSTALL) @list='$(dist_colorsdata_DATA)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(colorsdatadir)/$$f'"; \ rm -f "$(DESTDIR)$(colorsdatadir)/$$f"; \ done tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(colorsdatadir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dist_colorsdataDATA install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-dist_colorsdataDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am \ install-dist_colorsdataDATA install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am \ uninstall-dist_colorsdataDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ams-2.0.1/colors/Makefile.am0000664000076400007640000000025511051107136012557 00000000000000# Makefile.am for ams colorsdatadir = $(pkgdatadir)/colors dist_colorsdata_DATA = \ colordef01.acs \ colordef02.acs \ colordef03.acs \ colordef04.acs \ colordef05.acs ams-2.0.1/colors/colordef02.acs0000664000076400007640000000015511051101134013141 00000000000000ColorBackground 48 2 100 ColorModuleBackground 134 32 32 ColorModuleBorder 83 0 0 ColorModuleFont 255 168 74 ams-2.0.1/INSTALL0000664000076400007640000002245011146403161010256 00000000000000Installation Instructions ************************* Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. This file is free documentation; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. Basic Installation ================== Briefly, the shell commands `./configure; make; make install' should configure, build, and install this package. The following more-detailed instructions are generic; see the `README' file for instructions specific to this package. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). It can also use an optional file (typically called `config.cache' and enabled with `--cache-file=config.cache' or simply `-C') that saves the results of its tests to speed up reconfiguring. Caching is disabled by default to prevent problems with accidental use of stale cache files. If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can be considered for the next release. If you are using the cache, and at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.ac' (or `configure.in') is used to create `configure' by a program called `autoconf'. You need `configure.ac' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. Running `configure' might take a while. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with the package. 4. Type `make install' to install the programs and any data files and documentation. 5. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. 6. Often, you can also type `make uninstall' to remove the installed files again. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. Run `./configure --help' for details on some of the pertinent environment variables. You can give `configure' initial values for configuration parameters by setting variables in the command line or in the environment. Here is an example: ./configure CC=c99 CFLAGS=-g LIBS=-lposix *Note Defining Variables::, for more details. Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you can use GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. With a non-GNU `make', it is safer to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another architecture. Installation Names ================== By default, `make install' installs the package's commands under `/usr/local/bin', include files under `/usr/local/include', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PREFIX'. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you pass the option `--exec-prefix=PREFIX' to `configure', the package uses PREFIX as the prefix for installing programs and libraries. Documentation and other data files still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=DIR' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Optional Features ================= Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. Specifying the System Type ========================== There may be some features `configure' cannot figure out automatically, but needs to determine by the type of machine the package will run on. Usually, assuming the package is built to be run on the _same_ architectures, `configure' can figure that out, but if it prints a message saying it cannot guess the machine type, give it the `--build=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name which has the form: CPU-COMPANY-SYSTEM where SYSTEM can have one of these forms: OS KERNEL-OS See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the machine type. If you are _building_ compiler tools for cross-compiling, you should use the option `--target=TYPE' to select the type of system they will produce code for. If you want to _use_ a cross compiler, that generates code for a platform different from the build platform, you should specify the "host" platform (i.e., that on which the generated programs will eventually be run) with `--host=TYPE'. Sharing Defaults ================ If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. Defining Variables ================== Variables not defined in a site shell script can be set in the environment passed to `configure'. However, some packages may run configure again during the build, and the customized values of these variables may be lost. In order to avoid this problem, you should set them in the `configure' command line, using `VAR=value'. For example: ./configure CC=/usr/local2/bin/gcc causes the specified `gcc' to be used as the C compiler (unless it is overridden in the site shell script). Unfortunately, this technique does not work for `CONFIG_SHELL' due to an Autoconf bug. Until the bug is fixed you can use this workaround: CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash `configure' Invocation ====================== `configure' recognizes the following options to control how it operates. `--help' `-h' Print a summary of the options to `configure', and exit. `--version' `-V' Print the version of Autoconf used to generate the `configure' script, and exit. `--cache-file=FILE' Enable the cache: use and save the results of the tests in FILE, traditionally `config.cache'. FILE defaults to `/dev/null' to disable caching. `--config-cache' `-C' Alias for `--cache-file=config.cache'. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. To suppress all normal output, redirect it to `/dev/null' (any error messages will still be shown). `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `configure' also accepts some other, not widely useful, options. Run `configure --help' for more details. ams-2.0.1/aclocal.m40000664000076400007640000011147311315245614011076 00000000000000# generated automatically by aclocal 1.10.2 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.63],, [m4_warning([this file was generated for autoconf 2.63. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'.])]) # pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- # # Copyright © 2004 Scott James Remnant . # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # PKG_PROG_PKG_CONFIG([MIN-VERSION]) # ---------------------------------- AC_DEFUN([PKG_PROG_PKG_CONFIG], [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) fi if test -n "$PKG_CONFIG"; then _pkg_min_version=m4_default([$1], [0.9.0]) AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) PKG_CONFIG="" fi fi[]dnl ])# PKG_PROG_PKG_CONFIG # PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) # # Check to see whether a particular set of modules exists. Similar # to PKG_CHECK_MODULES(), but does not set variables or print errors. # # # Similar to PKG_CHECK_MODULES, make sure that the first instance of # this or PKG_CHECK_MODULES is called, or make sure to call # PKG_CHECK_EXISTS manually # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_EXISTS], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl if test -n "$PKG_CONFIG" && \ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then m4_ifval([$2], [$2], [:]) m4_ifvaln([$3], [else $3])dnl fi]) # _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) # --------------------------------------------- m4_define([_PKG_CONFIG], [if test -n "$$1"; then pkg_cv_[]$1="$$1" elif test -n "$PKG_CONFIG"; then PKG_CHECK_EXISTS([$3], [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], [pkg_failed=yes]) else pkg_failed=untried fi[]dnl ])# _PKG_CONFIG # _PKG_SHORT_ERRORS_SUPPORTED # ----------------------------- AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], [AC_REQUIRE([PKG_PROG_PKG_CONFIG]) if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi[]dnl ])# _PKG_SHORT_ERRORS_SUPPORTED # PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], # [ACTION-IF-NOT-FOUND]) # # # Note that if there is a possibility the first call to # PKG_CHECK_MODULES might not happen, you should be sure to include an # explicit call to PKG_PROG_PKG_CONFIG in your configure.ac # # # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_MODULES], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl pkg_failed=no AC_MSG_CHECKING([for $1]) _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) _PKG_CONFIG([$1][_LIBS], [libs], [$2]) m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS and $1[]_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.]) if test $pkg_failed = yes; then _PKG_SHORT_ERRORS_SUPPORTED if test $_pkg_short_errors_supported = yes; then $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1` else $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD ifelse([$4], , [AC_MSG_ERROR(dnl [Package requirements ($2) were not met: $$1_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. _PKG_TEXT ])], [AC_MSG_RESULT([no]) $4]) elif test $pkg_failed = untried; then ifelse([$4], , [AC_MSG_FAILURE(dnl [The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. _PKG_TEXT To get pkg-config, see .])], [$4]) else $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS $1[]_LIBS=$pkg_cv_[]$1[]_LIBS AC_MSG_RESULT([yes]) ifelse([$3], , :, [$3]) fi[]dnl ])# PKG_CHECK_MODULES # Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.10' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. m4_if([$1], [1.10.2], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.10.2])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to # `$srcdir', `$srcdir/..', or `$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is `.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly. AC_PREREQ([2.50])dnl # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 8 # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ(2.52)dnl ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 9 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "GCJ", or "OBJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl ifelse([$1], CC, [depcc="$CC" am_compiler_list=], [$1], CXX, [depcc="$CXX" am_compiler_list=], [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], UPC, [depcc="$UPC" am_compiler_list=], [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE(dependency-tracking, [ --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. #serial 4 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [# Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`AS_DIRNAME("$mf")` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` AS_MKDIR_P([$dirpart/$fdir]) # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking # is enabled. FIXME. This creates each `.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 13 # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.60])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) AM_MISSING_PROG(AUTOCONF, autoconf) AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) AM_MISSING_PROG(AUTOHEADER, autoheader) AM_MISSING_PROG(MAKEINFO, makeinfo) AM_PROG_INSTALL_SH AM_PROG_INSTALL_STRIP AC_REQUIRE([AM_PROG_MKDIR_P])dnl # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES(CC)], [define([AC_PROG_CC], defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES(CXX)], [define([AC_PROG_CXX], defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES(OBJC)], [define([AC_PROG_OBJC], defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl ]) ]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"} AC_SUBST(install_sh)]) # Copyright (C) 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 3 # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo done .PHONY: am__doit END # If we don't find an include directive, just comment out the code. AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # We grep out `Entering directory' and `Leaving directory' # messages which can occur if `w' ends up in MAKEFLAGS. # In particular we don't look at `^make:' because GNU make might # be invoked under some other name (usually "gmake"), in which # case it prints its new name instead of `make'. if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then am__include=include am__quote= _am_result=GNU fi # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then am__include=.include am__quote="\"" _am_result=BSD fi fi AC_SUBST([am__include]) AC_SUBST([am__quote]) AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 5 # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it supports --run. # If it does, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= AC_MSG_WARN([`missing' script is too old or missing]) fi ]) # Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_MKDIR_P # --------------- # Check for `mkdir -p'. AC_DEFUN([AM_PROG_MKDIR_P], [AC_PREREQ([2.60])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, dnl while keeping a definition of mkdir_p for backward compatibility. dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of dnl Makefile.ins that do not define MKDIR_P, so we do our own dnl adjustment using top_builddir (which is defined more often than dnl MKDIR_P). AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl case $mkdir_p in [[\\/$]]* | ?:[[\\/]]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # ------------------------------ # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)]) # _AM_SET_OPTIONS(OPTIONS) # ---------------------------------- # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 echo timestamp > conftest.file # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t $srcdir/configure conftest.file` fi rm -f conftest.file if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT(yes)]) # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor `install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in `make install-strip', and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be `maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of `v7', `ustar', or `pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. AM_MISSING_PROG([AMTAR], [tar]) m4_if([$1], [v7], [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], [m4_case([$1], [ustar],, [pax],, [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' _am_tools=${am_cv_prog_tar_$1-$_am_tools} # Do not fold the above two line into one, because Tru64 sh and # Solaris sh will not grok spaces in the rhs of `-'. for _am_tool in $_am_tools do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR ams-2.0.1/README0000644000076400007640000000441111146403161010100 00000000000000 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!! Warning !!! !!! This program may generate electronic !!! !!! sounds which might damage your speakers. !!! !!! Use the software at your own risk. !!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! The online manual for AlsaModularSynth is found at http://alsamodular.sourceforge.net/alsamodularsynth_doc.html The files in the instruments folder are patches that have a Parameter View GUI in addition to the parameter dialogs of the modules. Each instrument has several presets that can be selected via MIDI program change or in the Parameter View dialog. The files in the tutorial folder feature a complete tutorial on modular synthesis with many commented examples which you can use for own experiments. The files in the demos folder demonstrate certain modules or special sounds. Note that some of these patches are monophonic, i.e. work only with poly 1. AlsaModularSynth 1.8.5 features a new module Analogue Driver. This emulates the oscillator drift effects present in analogue electronic circuits and also includes a voice detune. The detune and drift amplitudes are always displayed in the configuration dialog of the module. Note that these values are normalized to 1.0. The actual detune/drift depends on the Amplitude parameter in the Parameter tab. The amplitude is measured in Volt, the maximum of 0.084 is a tiny bit more than a semitone. The rate is measured in Hz. The drift/detune process is a modified random walk where random coefficients are generated at the detune/drift rate. These coefficients are multiplied by the Modulation parameter (divided by the sample rate) and then added to the current detune/drift amplitude (for each sample). These detune/drift amplitudes are added to the input CV and the sum is then passed to the outputs. The Autotune button will reset detune/drift amplitudes. If you start with a fresh cvs checkout, please first apply autoreconf -i to get a proper configure script. For more instructions about compiling and installing this application please refer to the INSTALL file. Have a lot of fun ! Please send bug reports or any other feedback to Matthias Nagorni ams-2.0.1/configure0000775000076400007640000075076311315245616011162 00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.63 for ams 2.0.1. # # Report bugs to . # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi # PATH needs CR # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # CDPATH. $as_unset CDPATH if test "x$CONFIG_SHELL" = x; then if (eval ":") 2>/dev/null; then as_have_required=yes else as_have_required=no fi if test $as_have_required = yes && (eval ": (as_func_return () { (exit \$1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = \"\$1\" ); then : else exitcode=1 echo positional parameters were not saved. fi test \$exitcode = 0) || { (exit 1); exit 1; } ( as_lineno_1=\$LINENO as_lineno_2=\$LINENO test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } ") 2> /dev/null; then : else as_candidate_shells= as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. case $as_dir in /*) for as_base in sh bash ksh sh5; do as_candidate_shells="$as_candidate_shells $as_dir/$as_base" done;; esac done IFS=$as_save_IFS for as_shell in $as_candidate_shells $SHELL; do # Try only shells that exist, to save several forks. if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { ("$as_shell") 2> /dev/null <<\_ASEOF if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi : _ASEOF }; then CONFIG_SHELL=$as_shell as_have_required=yes if { "$as_shell" 2> /dev/null <<\_ASEOF if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi : (as_func_return () { (exit $1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = "$1" ); then : else exitcode=1 echo positional parameters were not saved. fi test $exitcode = 0) || { (exit 1); exit 1; } ( as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } _ASEOF }; then break fi fi done if test "x$CONFIG_SHELL" != x; then for as_var in BASH_ENV ENV do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done export CONFIG_SHELL exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} fi if test $as_have_required = no; then echo This script requires a shell more modern than all the echo shells that I found on your system. Please install a echo modern shell, or manually run the script under such a echo shell if you do have one. { (exit 1); exit 1; } fi fi fi (eval "as_func_return () { (exit \$1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = \"\$1\" ); then : else exitcode=1 echo positional parameters were not saved. fi test \$exitcode = 0") || { echo No shell found that supports shell functions. echo Please tell bug-autoconf@gnu.org about your system, echo including any error possibly output before this message. echo This can help us improve future autoconf versions. echo Configuration will now proceed without shell functions. } as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, and appends # trailing '-' during substitution so that $LINENO is not a special # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # scripts with optimization help from Paolo Bonzini. Blame Lee # E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='ams' PACKAGE_TARNAME='ams' PACKAGE_VERSION='2.0.1' PACKAGE_STRING='ams 2.0.1' PACKAGE_BUGREPORT='alsamodular-devel@lists.sourceforge.net' ac_unique_file="src/box.h" # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_subst_vars='LTLIBOBJS LADSPA_PATH LIBOBJS EGREP GREP CPP LRELEASE LUPDATE MOC QT_CXXFLAGS QT_LIBS QT_CFLAGS AMS_CXXFLAGS PKG_CONFIG RANLIB LN_S am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE ac_ct_CC CFLAGS CC am__fastdepCXX_FALSE am__fastdepCXX_TRUE CXXDEPMODE AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__quote am__include DEPDIR OBJEXT EXEEXT ac_ct_CXX CPPFLAGS LDFLAGS CXXFLAGS CXX am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM target_os target_vendor target_cpu target host_os host_vendor host_cpu host build_os build_vendor build_cpu build target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_dependency_tracking with_ladspa_path ' ac_precious_vars='build_alias host_alias target_alias CXX CXXFLAGS LDFLAGS LIBS CPPFLAGS CCC CC CFLAGS PKG_CONFIG QT_CFLAGS QT_LIBS CPP' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 { (exit 1); exit 1; }; } ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 { (exit 1); exit 1; }; } ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 { (exit 1); exit 1; }; } ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 { (exit 1); exit 1; }; } ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) { $as_echo "$as_me: error: unrecognized option: $ac_option Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && { $as_echo "$as_me: error: invalid variable name: $ac_envvar" >&2 { (exit 1); exit 1; }; } eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` { $as_echo "$as_me: error: missing argument to $ac_option" >&2 { (exit 1); exit 1; }; } fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) { $as_echo "$as_me: error: unrecognized options: $ac_unrecognized_opts" >&2 { (exit 1); exit 1; }; } ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac { $as_echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; } done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || { $as_echo "$as_me: error: working directory cannot be determined" >&2 { (exit 1); exit 1; }; } test "X$ac_ls_di" = "X$ac_pwd_ls_di" || { $as_echo "$as_me: error: pwd does not report name of working directory" >&2 { (exit 1); exit 1; }; } # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." { $as_echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 { (exit 1); exit 1; }; } fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || { $as_echo "$as_me: error: $ac_msg" >&2 { (exit 1); exit 1; }; } pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures ams 2.0.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/ams] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] --target=TARGET configure for building compilers for TARGET [HOST] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of ams 2.0.1:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-ladspa-path=DIR directory for ladspa plugins Some influential environment variables: CXX C++ compiler command CXXFLAGS C++ compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if you have headers in a nonstandard directory CC C compiler command CFLAGS C compiler flags PKG_CONFIG path to pkg-config utility QT_CFLAGS C compiler flags for QT, overriding pkg-config QT_LIBS linker flags for QT, overriding pkg-config CPP C preprocessor Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF ams configure 2.0.1 generated by GNU Autoconf 2.63 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by ams $as_me 2.0.1, which was generated by GNU Autoconf 2.63. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; 2) ac_configure_args1="$ac_configure_args1 '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac done done $as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } $as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo cat <<\_ASBOX ## ---------------- ## ## Cache variables. ## ## ---------------- ## _ASBOX echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) $as_unset $ac_var ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo cat <<\_ASBOX ## ----------------- ## ## Output variables. ## ## ----------------- ## _ASBOX echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX ## ------------------- ## ## File substitutions. ## ## ------------------- ## _ASBOX echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then cat <<\_ASBOX ## ----------- ## ## confdefs.h. ## ## ----------- ## _ASBOX echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then ac_site_file1=$CONFIG_SITE elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test -r "$ac_site_file"; then { $as_echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special # files actually), so we avoid doing that. if test -f "$cache_file"; then { $as_echo "$as_me:$LINENO: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:$LINENO: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:$LINENO: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:$LINENO: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:$LINENO: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} { { $as_echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 $as_echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then { { $as_echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5 $as_echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;} { (exit 1); exit 1; }; } fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || { { $as_echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5 $as_echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;} { (exit 1); exit 1; }; } { $as_echo "$as_me:$LINENO: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } if test "${ac_cv_build+set}" = set; then $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && { { $as_echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 $as_echo "$as_me: error: cannot guess build type; you must specify one" >&2;} { (exit 1); exit 1; }; } ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5 $as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;} { (exit 1); exit 1; }; } fi { $as_echo "$as_me:$LINENO: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical build" >&5 $as_echo "$as_me: error: invalid value of canonical build" >&2;} { (exit 1); exit 1; }; };; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:$LINENO: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } if test "${ac_cv_host+set}" = set; then $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5 $as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;} { (exit 1); exit 1; }; } fi fi { $as_echo "$as_me:$LINENO: result: $ac_cv_host" >&5 $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical host" >&5 $as_echo "$as_me: error: invalid value of canonical host" >&2;} { (exit 1); exit 1; }; };; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:$LINENO: checking target system type" >&5 $as_echo_n "checking target system type... " >&6; } if test "${ac_cv_target+set}" = set; then $as_echo_n "(cached) " >&6 else if test "x$target_alias" = x; then ac_cv_target=$ac_cv_host else ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` || { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $target_alias failed" >&5 $as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $target_alias failed" >&2;} { (exit 1); exit 1; }; } fi fi { $as_echo "$as_me:$LINENO: result: $ac_cv_target" >&5 $as_echo "$ac_cv_target" >&6; } case $ac_cv_target in *-*-*) ;; *) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical target" >&5 $as_echo "$as_me: error: invalid value of canonical target" >&2;} { (exit 1); exit 1; }; };; esac target=$ac_cv_target ac_save_IFS=$IFS; IFS='-' set x $ac_cv_target shift target_cpu=$1 target_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: target_os=$* IFS=$ac_save_IFS case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac # The aliases save the names the user supplied, while $host etc. # will get canonicalized. test -n "$target_alias" && test "$program_prefix$program_suffix$program_transform_name" = \ NONENONEs,x,x, && program_prefix=${target_alias}- ac_config_headers="$ac_config_headers src/config.h" am__api_version='1.10' # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in ./ | .// | /cC/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:$LINENO: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:$LINENO: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Just in case sleep 1 echo timestamp > conftest.file # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t $srcdir/configure conftest.file` fi rm -f conftest.file if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". { { $as_echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&5 $as_echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&2;} { (exit 1); exit 1; }; } fi test "$2" = conftest.file ) then # Ok. : else { { $as_echo "$as_me:$LINENO: error: newly created file is older than distributed files! Check your system clock" >&5 $as_echo "$as_me: error: newly created file is older than distributed files! Check your system clock" >&2;} { (exit 1); exit 1; }; } fi { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { $as_echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi { $as_echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if test "${ac_cv_path_mkdir+set}" = set; then $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. test -d ./--version && rmdir ./--version MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:$LINENO: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } mkdir_p="$MKDIR_P" case $mkdir_p in [\\/$]* | ?:[\\/]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_AWK+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:$LINENO: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done { $as_echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then { { $as_echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 $as_echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} { (exit 1); exit 1; }; } fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='ams' VERSION='2.0.1' cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"} # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:$LINENO: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. AMTAR=${AMTAR-"${am_missing_run}tar"} am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' # Checks for programs. ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -z "$CXX"; then if test -n "$CCC"; then CXX=$CCC else if test -n "$ac_tool_prefix"; then for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CXX+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then { $as_echo "$as_me:$LINENO: result: $CXX" >&5 $as_echo "$CXX" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CXX="$ac_prog" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then { $as_echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5 $as_echo "$ac_ct_CXX" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CXX" && break done if test "x$ac_ct_CXX" = x; then CXX="g++" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CXX=$ac_ct_CXX fi fi fi fi # Provide some information about the compiler. $as_echo "$as_me:$LINENO: checking for C++ compiler version" >&5 set X $ac_compile ac_compiler=$2 { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:$LINENO: checking for C++ compiler default output file name" >&5 $as_echo_n "checking for C++ compiler default output file name... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { (ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi { $as_echo "$as_me:$LINENO: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } if test -z "$ac_file"; then $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: C++ compiler cannot create executables See \`config.log' for more details." >&5 $as_echo "$as_me: error: C++ compiler cannot create executables See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; }; } fi ac_exeext=$ac_cv_exeext # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:$LINENO: checking whether the C++ compiler works" >&5 $as_echo_n "checking whether the C++ compiler works... " >&6; } # FIXME: These cross compiler hacks should be removed for Autoconf 3.0 # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then if { ac_try='./$ac_file' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: cannot run C++ compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&5 $as_echo "$as_me: error: cannot run C++ compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; }; } fi fi fi { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } { $as_echo "$as_me:$LINENO: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } { $as_echo "$as_me:$LINENO: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&5 $as_echo "$as_me: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; }; } fi rm -f conftest$ac_cv_exeext { $as_echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT { $as_echo "$as_me:$LINENO: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if test "${ac_cv_objext+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&5 $as_echo "$as_me: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; }; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5 $as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } if test "${ac_cv_cxx_compiler_gnu+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5 $as_echo "$ac_cv_cxx_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GXX=yes else GXX= fi ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS { $as_echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5 $as_echo_n "checking whether $CXX accepts -g... " >&6; } if test "${ac_cv_prog_cxx_g+set}" = set; then $as_echo_n "(cached) " >&6 else ac_save_cxx_werror_flag=$ac_cxx_werror_flag ac_cxx_werror_flag=yes ac_cv_prog_cxx_g=no CXXFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cxx_g=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CXXFLAGS="" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cxx_werror_flag=$ac_save_cxx_werror_flag CXXFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cxx_g=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cxx_werror_flag=$ac_save_cxx_werror_flag fi { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5 $as_echo "$ac_cv_prog_cxx_g" >&6; } if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo done .PHONY: am__doit END # If we don't find an include directive, just comment out the code. { $as_echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 $as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # We grep out `Entering directory' and `Leaving directory' # messages which can occur if `w' ends up in MAKEFLAGS. # In particular we don't look at `^make:' because GNU make might # be invoked under some other name (usually "gmake"), in which # case it prints its new name instead of `make'. if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then am__include=include am__quote= _am_result=GNU fi # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then am__include=.include am__quote="\"" _am_result=BSD fi fi { $as_echo "$as_me:$LINENO: result: $_am_result" >&5 $as_echo "$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi depcc="$CXX" am_compiler_list= { $as_echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CXX_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CXX_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CXX_dependencies_compiler_type=none fi fi { $as_echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5 $as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; } CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then am__fastdepCXX_TRUE= am__fastdepCXX_FALSE='#' else am__fastdepCXX_TRUE='#' am__fastdepCXX_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:$LINENO: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:$LINENO: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:$LINENO: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:$LINENO: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 $as_echo "$as_me: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; }; } # Provide some information about the compiler. $as_echo "$as_me:$LINENO: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CFLAGS="" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_c89=$ac_arg else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:$LINENO: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:$LINENO: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CC" am_compiler_list= { $as_echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in ./ | .// | /cC/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:$LINENO: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:$LINENO: checking whether ln -s works" >&5 $as_echo_n "checking whether ln -s works... " >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:$LINENO: result: no, using $LN_S" >&5 $as_echo "no, using $LN_S" >&6; } fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_RANLIB+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { $as_echo "$as_me:$LINENO: result: $RANLIB" >&5 $as_echo "$RANLIB" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { $as_echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 $as_echo "$ac_ct_RANLIB" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_PKG_CONFIG+set}" = set; then $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then { $as_echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5 $as_echo "$PKG_CONFIG" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_path_PKG_CONFIG"; then ac_pt_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then $as_echo_n "(cached) " >&6 else case $ac_pt_PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG if test -n "$ac_pt_PKG_CONFIG"; then { $as_echo "$as_me:$LINENO: result: $ac_pt_PKG_CONFIG" >&5 $as_echo "$ac_pt_PKG_CONFIG" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_pt_PKG_CONFIG" = x; then PKG_CONFIG="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac PKG_CONFIG=$ac_pt_PKG_CONFIG fi else PKG_CONFIG="$ac_cv_path_PKG_CONFIG" fi fi if test -n "$PKG_CONFIG"; then _pkg_min_version=0.9.0 { $as_echo "$as_me:$LINENO: checking pkg-config is at least version $_pkg_min_version" >&5 $as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } PKG_CONFIG="" fi fi AMS_CORE_CXXFLAGS="-Wall" { $as_echo "$as_me:$LINENO: checking which processor class to optimize for" >&5 $as_echo_n "checking which processor class to optimize for... " >&6; } case "$target" in i486-*-*) AMS_OPT_CXXFLAGS="-march=i486" { $as_echo "$as_me:$LINENO: result: i486" >&5 $as_echo "i486" >&6; } ;; i586-*-*) AMS_OPT_CXXFLAGS="-march=pentium" { $as_echo "$as_me:$LINENO: result: i586" >&5 $as_echo "i586" >&6; } ;; i686-*-*) AMS_OPT_CXXFLAGS="-march=pentiumpro -msse -mfpmath=sse -ffast-math" { $as_echo "$as_me:$LINENO: result: i686" >&5 $as_echo "i686" >&6; } ;; i786-*-*) AMS_OPT_CXXFLAGS="-march=pentium4 -msse -mfpmath=sse -ffast-math" { $as_echo "$as_me:$LINENO: result: i786" >&5 $as_echo "i786" >&6; } ;; x86_64-*-*) AMS_OPT_CXXFLAGS="-m64 -msse -mfpmath=sse -ffast-math" { $as_echo "$as_me:$LINENO: result: x86_64" >&5 $as_echo "x86_64" >&6; } ;; *) { $as_echo "$as_me:$LINENO: result: i386" >&5 $as_echo "i386" >&6; } { $as_echo "$as_me:$LINENO: WARNING: This is probably not what you want" >&5 $as_echo "$as_me: WARNING: This is probably not what you want" >&2;} ;; esac if test "x$AMS_OPT_CXXFLAGS" = "x"; then AMS_CXXFLAGS=$AMS_CORE_CXXFLAGS else { $as_echo "$as_me:$LINENO: Compiler optimization... $AMS_OPT_CXXFLAGS" >&5 $as_echo "$as_me: Compiler optimization... $AMS_OPT_CXXFLAGS" >&6;} AMS_CXXFLAGS="$AMS_CORE_CXXFLAGS $AMS_OPT_CXXFLAGS" fi # Checks for libraries. { $as_echo "$as_me:$LINENO: checking for main in -lQtCore" >&5 $as_echo_n "checking for main in -lQtCore... " >&6; } if test "${ac_cv_lib_QtCore_main+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lQtCore $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { return main (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_lib_QtCore_main=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_QtCore_main=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_QtCore_main" >&5 $as_echo "$ac_cv_lib_QtCore_main" >&6; } if test "x$ac_cv_lib_QtCore_main" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBQTCORE 1 _ACEOF LIBS="-lQtCore $LIBS" else { { $as_echo "$as_me:$LINENO: error: QtCore is required" >&5 $as_echo "$as_me: error: QtCore is required" >&2;} { (exit 1); exit 1; }; } fi { $as_echo "$as_me:$LINENO: checking for main in -lQtGui" >&5 $as_echo_n "checking for main in -lQtGui... " >&6; } if test "${ac_cv_lib_QtGui_main+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lQtGui $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { return main (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_lib_QtGui_main=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_QtGui_main=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_QtGui_main" >&5 $as_echo "$ac_cv_lib_QtGui_main" >&6; } if test "x$ac_cv_lib_QtGui_main" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBQTGUI 1 _ACEOF LIBS="-lQtGui $LIBS" else { { $as_echo "$as_me:$LINENO: error: QtGui is required" >&5 $as_echo "$as_me: error: QtGui is required" >&2;} { (exit 1); exit 1; }; } fi { $as_echo "$as_me:$LINENO: checking for main in -lQtOpenGL" >&5 $as_echo_n "checking for main in -lQtOpenGL... " >&6; } if test "${ac_cv_lib_QtOpenGL_main+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lQtOpenGL $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { return main (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_lib_QtOpenGL_main=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_QtOpenGL_main=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_QtOpenGL_main" >&5 $as_echo "$ac_cv_lib_QtOpenGL_main" >&6; } if test "x$ac_cv_lib_QtOpenGL_main" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBQTOPENGL 1 _ACEOF LIBS="-lQtOpenGL $LIBS" else { { $as_echo "$as_me:$LINENO: error: QtOpenGL is required" >&5 $as_echo "$as_me: error: QtOpenGL is required" >&2;} { (exit 1); exit 1; }; } fi { $as_echo "$as_me:$LINENO: checking for snd_pcm_open in -lasound" >&5 $as_echo_n "checking for snd_pcm_open in -lasound... " >&6; } if test "${ac_cv_lib_asound_snd_pcm_open+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lasound $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char snd_pcm_open (); int main () { return snd_pcm_open (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_lib_asound_snd_pcm_open=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_asound_snd_pcm_open=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_asound_snd_pcm_open" >&5 $as_echo "$ac_cv_lib_asound_snd_pcm_open" >&6; } if test "x$ac_cv_lib_asound_snd_pcm_open" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBASOUND 1 _ACEOF LIBS="-lasound $LIBS" else { { $as_echo "$as_me:$LINENO: error: asound is required" >&5 $as_echo "$as_me: error: asound is required" >&2;} { (exit 1); exit 1; }; } fi { $as_echo "$as_me:$LINENO: checking for main in -lclalsadrv" >&5 $as_echo_n "checking for main in -lclalsadrv... " >&6; } if test "${ac_cv_lib_clalsadrv_main+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lclalsadrv $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { return main (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_lib_clalsadrv_main=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_clalsadrv_main=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_clalsadrv_main" >&5 $as_echo "$ac_cv_lib_clalsadrv_main" >&6; } if test "x$ac_cv_lib_clalsadrv_main" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBCLALSADRV 1 _ACEOF LIBS="-lclalsadrv $LIBS" else { { $as_echo "$as_me:$LINENO: error: clalsadrv is required" >&5 $as_echo "$as_me: error: clalsadrv is required" >&2;} { (exit 1); exit 1; }; } fi { $as_echo "$as_me:$LINENO: checking for jack_client_new in -ljack" >&5 $as_echo_n "checking for jack_client_new in -ljack... " >&6; } if test "${ac_cv_lib_jack_jack_client_new+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ljack $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char jack_client_new (); int main () { return jack_client_new (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_lib_jack_jack_client_new=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_jack_jack_client_new=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_jack_jack_client_new" >&5 $as_echo "$ac_cv_lib_jack_jack_client_new" >&6; } if test "x$ac_cv_lib_jack_jack_client_new" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBJACK 1 _ACEOF LIBS="-ljack $LIBS" else { { $as_echo "$as_me:$LINENO: error: jack is required" >&5 $as_echo "$as_me: error: jack is required" >&2;} { (exit 1); exit 1; }; } fi { $as_echo "$as_me:$LINENO: checking for pthread_create in -lpthread" >&5 $as_echo_n "checking for pthread_create in -lpthread... " >&6; } if test "${ac_cv_lib_pthread_pthread_create+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lpthread $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char pthread_create (); int main () { return pthread_create (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_lib_pthread_pthread_create=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_pthread_pthread_create=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_pthread_pthread_create" >&5 $as_echo "$ac_cv_lib_pthread_pthread_create" >&6; } if test "x$ac_cv_lib_pthread_pthread_create" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBPTHREAD 1 _ACEOF LIBS="-lpthread $LIBS" else { { $as_echo "$as_me:$LINENO: error: pthread is required" >&5 $as_echo "$as_me: error: pthread is required" >&2;} { (exit 1); exit 1; }; } fi { $as_echo "$as_me:$LINENO: checking for roundf in -lm" >&5 $as_echo_n "checking for roundf in -lm... " >&6; } if test "${ac_cv_lib_m_roundf+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lm $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char roundf (); int main () { return roundf (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_lib_m_roundf=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_m_roundf=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_m_roundf" >&5 $as_echo "$ac_cv_lib_m_roundf" >&6; } if test "x$ac_cv_lib_m_roundf" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBM 1 _ACEOF LIBS="-lm $LIBS" else { { $as_echo "$as_me:$LINENO: error: required libm missing" >&5 $as_echo "$as_me: error: required libm missing" >&2;} { (exit 1); exit 1; }; } fi pkg_failed=no { $as_echo "$as_me:$LINENO: checking for QT" >&5 $as_echo_n "checking for QT... " >&6; } if test -n "$QT_CFLAGS"; then pkg_cv_QT_CFLAGS="$QT_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"QtCore QtGui >= 4.2.0\"") >&5 ($PKG_CONFIG --exists --print-errors "QtCore QtGui >= 4.2.0") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then pkg_cv_QT_CFLAGS=`$PKG_CONFIG --cflags "QtCore QtGui >= 4.2.0" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$QT_LIBS"; then pkg_cv_QT_LIBS="$QT_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"QtCore QtGui >= 4.2.0\"") >&5 ($PKG_CONFIG --exists --print-errors "QtCore QtGui >= 4.2.0") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then pkg_cv_QT_LIBS=`$PKG_CONFIG --libs "QtCore QtGui >= 4.2.0" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then QT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "QtCore QtGui >= 4.2.0" 2>&1` else QT_PKG_ERRORS=`$PKG_CONFIG --print-errors "QtCore QtGui >= 4.2.0" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$QT_PKG_ERRORS" >&5 { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } HAVE_QT4="no" elif test $pkg_failed = untried; then HAVE_QT4="no" else QT_CFLAGS=$pkg_cv_QT_CFLAGS QT_LIBS=$pkg_cv_QT_LIBS { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } HAVE_QT4="yes" fi if test "x$HAVE_QT4" = "xyes"; then QT_INCLUDE_DIR=`$PKG_CONFIG --variable=includedir QtGui` QT_CXXFLAGS=`$PKG_CONFIG --cflags QtCore QtGui QtOpenGL` EXTRA_QT_INCLUDE_DIR="$QT_INCLUDE_DIR/Qt" as_ac_File=`$as_echo "ac_cv_file_$QT_INCLUDE_DIR/QWidget" | $as_tr_sh` { $as_echo "$as_me:$LINENO: checking for $QT_INCLUDE_DIR/QWidget" >&5 $as_echo_n "checking for $QT_INCLUDE_DIR/QWidget... " >&6; } if { as_var=$as_ac_File; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else test "$cross_compiling" = yes && { { $as_echo "$as_me:$LINENO: error: cannot check for file existence when cross compiling" >&5 $as_echo "$as_me: error: cannot check for file existence when cross compiling" >&2;} { (exit 1); exit 1; }; } if test -r "$QT_INCLUDE_DIR/QWidget"; then eval "$as_ac_File=yes" else eval "$as_ac_File=no" fi fi ac_res=`eval 'as_val=${'$as_ac_File'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } as_val=`eval 'as_val=${'$as_ac_File'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then { $as_echo "$as_me:$LINENO: No extra QT_INCLUDE_DIR needed" >&5 $as_echo "$as_me: No extra QT_INCLUDE_DIR needed" >&6;} else as_ac_File=`$as_echo "ac_cv_file_$EXTRA_QT_INCLUDE_DIR/QWidget" | $as_tr_sh` { $as_echo "$as_me:$LINENO: checking for $EXTRA_QT_INCLUDE_DIR/QWidget" >&5 $as_echo_n "checking for $EXTRA_QT_INCLUDE_DIR/QWidget... " >&6; } if { as_var=$as_ac_File; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else test "$cross_compiling" = yes && { { $as_echo "$as_me:$LINENO: error: cannot check for file existence when cross compiling" >&5 $as_echo "$as_me: error: cannot check for file existence when cross compiling" >&2;} { (exit 1); exit 1; }; } if test -r "$EXTRA_QT_INCLUDE_DIR/QWidget"; then eval "$as_ac_File=yes" else eval "$as_ac_File=no" fi fi ac_res=`eval 'as_val=${'$as_ac_File'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } as_val=`eval 'as_val=${'$as_ac_File'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then QT_CPPFLAGS="$QT_CPPFLAGS -I$EXTRA_QT_INCLUDE_DIR" else { $as_echo "$as_me:$LINENO: WARNING: QWidget not found" >&5 $as_echo "$as_me: WARNING: QWidget not found" >&2;} fi fi { $as_echo "$as_me:$LINENO: Set QT_CXXFLAGS... $QT_CXXFLAGS" >&5 $as_echo "$as_me: Set QT_CXXFLAGS... $QT_CXXFLAGS" >&6;} else { { $as_echo "$as_me:$LINENO: error: cannot find Qt4 library >= 4.2" >&5 $as_echo "$as_me: error: cannot find Qt4 library >= 4.2" >&2;} { (exit 1); exit 1; }; } fi for ac_prog in moc-qt4 moc do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_MOC+set}" = set; then $as_echo_n "(cached) " >&6 else case $MOC in [\\/]* | ?:[\\/]*) ac_cv_path_MOC="$MOC" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:$QTDIR/bin" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_MOC="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi MOC=$ac_cv_path_MOC if test -n "$MOC"; then { $as_echo "$as_me:$LINENO: result: $MOC" >&5 $as_echo "$MOC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi test -n "$MOC" && break done test -n "$MOC" || MOC="no" if test "x$MOC" = "xno" ; then { { $as_echo "$as_me:$LINENO: error: cannot find 'moc', please install the Qt4 development tools package." >&5 $as_echo "$as_me: error: cannot find 'moc', please install the Qt4 development tools package." >&2;} { (exit 1); exit 1; }; } fi for ac_prog in lupdate-qt4 lupdate do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_LUPDATE+set}" = set; then $as_echo_n "(cached) " >&6 else case $LUPDATE in [\\/]* | ?:[\\/]*) ac_cv_path_LUPDATE="$LUPDATE" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:$QTDIR/bin" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_LUPDATE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi LUPDATE=$ac_cv_path_LUPDATE if test -n "$LUPDATE"; then { $as_echo "$as_me:$LINENO: result: $LUPDATE" >&5 $as_echo "$LUPDATE" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi test -n "$LUPDATE" && break done test -n "$LUPDATE" || LUPDATE="no" if test "x$LUPDATE" = "xno" ; then { { $as_echo "$as_me:$LINENO: error: cannot find 'lupdate', please install the Qt4 development tools package." >&5 $as_echo "$as_me: error: cannot find 'lupdate', please install the Qt4 development tools package." >&2;} { (exit 1); exit 1; }; } fi for ac_prog in lrelease-qt4 lrelease do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_LRELEASE+set}" = set; then $as_echo_n "(cached) " >&6 else case $LRELEASE in [\\/]* | ?:[\\/]*) ac_cv_path_LRELEASE="$LRELEASE" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:$QTDIR/bin" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_LRELEASE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi LRELEASE=$ac_cv_path_LRELEASE if test -n "$LRELEASE"; then { $as_echo "$as_me:$LINENO: result: $LRELEASE" >&5 $as_echo "$LRELEASE" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi test -n "$LRELEASE" && break done test -n "$LRELEASE" || LRELEASE="no" if test "x$LRELEASE" = "xno" ; then { { $as_echo "$as_me:$LINENO: error: cannot find 'lrelease', please install the Qt4 development tools package." >&5 $as_echo "$as_me: error: cannot find 'lrelease', please install the Qt4 development tools package." >&2;} { (exit 1); exit 1; }; } fi # Checks for header files. ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:$LINENO: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&5 $as_echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if test "${ac_cv_path_GREP+set}" = set; then $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then { { $as_echo "$as_me:$LINENO: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 $as_echo "$as_me: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:$LINENO: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if test "${ac_cv_path_EGREP+set}" = set; then $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then { { $as_echo "$as_me:$LINENO: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 $as_echo "$as_me: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if test "${ac_cv_header_stdc+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_header_stdc=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi { $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF #define STDC_HEADERS 1 _ACEOF fi # Checks for typedefs, structures, and compiler characteristics. # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then eval "$as_ac_Header=yes" else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } as_val=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done { $as_echo "$as_me:$LINENO: checking for stdbool.h that conforms to C99" >&5 $as_echo_n "checking for stdbool.h that conforms to C99... " >&6; } if test "${ac_cv_header_stdbool_h+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #ifndef bool "error: bool is not defined" #endif #ifndef false "error: false is not defined" #endif #if false "error: false is not 0" #endif #ifndef true "error: true is not defined" #endif #if true != 1 "error: true is not 1" #endif #ifndef __bool_true_false_are_defined "error: __bool_true_false_are_defined is not defined" #endif struct s { _Bool s: 1; _Bool t; } s; char a[true == 1 ? 1 : -1]; char b[false == 0 ? 1 : -1]; char c[__bool_true_false_are_defined == 1 ? 1 : -1]; char d[(bool) 0.5 == true ? 1 : -1]; bool e = &s; char f[(_Bool) 0.0 == false ? 1 : -1]; char g[true]; char h[sizeof (_Bool)]; char i[sizeof s.t]; enum { j = false, k = true, l = false * true, m = true * 256 }; /* The following fails for HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */ _Bool n[m]; char o[sizeof n == m * sizeof n[0] ? 1 : -1]; char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1]; # if defined __xlc__ || defined __GNUC__ /* Catch a bug in IBM AIX xlc compiler version 6.0.0.0 reported by James Lemley on 2005-10-05; see http://lists.gnu.org/archive/html/bug-coreutils/2005-10/msg00086.html This test is not quite right, since xlc is allowed to reject this program, as the initializer for xlcbug is not one of the forms that C requires support for. However, doing the test right would require a runtime test, and that would make cross-compilation harder. Let us hope that IBM fixes the xlc bug, and also adds support for this kind of constant expression. In the meantime, this test will reject xlc, which is OK, since our stdbool.h substitute should suffice. We also test this with GCC, where it should work, to detect more quickly whether someone messes up the test in the future. */ char digs[] = "0123456789"; int xlcbug = 1 / (&(digs + 5)[-2 + (bool) 1] == &digs[4] ? 1 : -1); # endif /* Catch a bug in an HP-UX C compiler. See http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html */ _Bool q = true; _Bool *pq = &q; int main () { *pq |= q; *pq |= ! q; /* Refer to every declared value, to avoid compiler optimizations. */ return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l + !m + !n + !o + !p + !q + !pq); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_header_stdbool_h=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdbool_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdbool_h" >&5 $as_echo "$ac_cv_header_stdbool_h" >&6; } { $as_echo "$as_me:$LINENO: checking for _Bool" >&5 $as_echo_n "checking for _Bool... " >&6; } if test "${ac_cv_type__Bool+set}" = set; then $as_echo_n "(cached) " >&6 else ac_cv_type__Bool=no cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { if (sizeof (_Bool)) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { if (sizeof ((_Bool))) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type__Bool=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:$LINENO: result: $ac_cv_type__Bool" >&5 $as_echo "$ac_cv_type__Bool" >&6; } if test "x$ac_cv_type__Bool" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE__BOOL 1 _ACEOF fi if test $ac_cv_header_stdbool_h = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_STDBOOL_H 1 _ACEOF fi { $as_echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5 $as_echo_n "checking for an ANSI C-conforming const... " >&6; } if test "${ac_cv_c_const+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { /* FIXME: Include the comments suggested by Paul. */ #ifndef __cplusplus /* Ultrix mips cc rejects this. */ typedef int charset[2]; const charset cs; /* SunOS 4.1.1 cc rejects this. */ char const *const *pcpcc; char **ppc; /* NEC SVR4.0.2 mips cc rejects this. */ struct point {int x, y;}; static struct point const zero = {0,0}; /* AIX XL C 1.02.0.0 rejects this. It does not let you subtract one const X* pointer from another in an arm of an if-expression whose if-part is not a constant expression */ const char *g = "string"; pcpcc = &g + (g ? g-g : 0); /* HPUX 7.0 cc rejects these. */ ++pcpcc; ppc = (char**) pcpcc; pcpcc = (char const *const *) ppc; { /* SCO 3.2v4 cc rejects this. */ char *t; char const *s = 0 ? (char *) 0 : (char const *) 0; *t++ = 0; if (s) return 0; } { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ int x[] = {25, 17}; const int *foo = &x[0]; ++foo; } { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ typedef const int *iptr; iptr p = 0; ++p; } { /* AIX XL C 1.02.0.0 rejects this saying "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ struct s { int j; const int *ap[3]; }; struct s *b; b->j = 5; } { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ const int foo = 10; if (!foo) return 0; } return !cs[0] && !zero.x; #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_c_const=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_c_const=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5 $as_echo "$ac_cv_c_const" >&6; } if test $ac_cv_c_const = no; then cat >>confdefs.h <<\_ACEOF #define const /**/ _ACEOF fi { $as_echo "$as_me:$LINENO: checking for inline" >&5 $as_echo_n "checking for inline... " >&6; } if test "${ac_cv_c_inline+set}" = set; then $as_echo_n "(cached) " >&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifndef __cplusplus typedef int foo_t; static $ac_kw foo_t static_foo () {return 0; } $ac_kw foo_t foo () {return 0; } #endif _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_c_inline=$ac_kw else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext test "$ac_cv_c_inline" != no && break done fi { $as_echo "$as_me:$LINENO: result: $ac_cv_c_inline" >&5 $as_echo "$ac_cv_c_inline" >&6; } case $ac_cv_c_inline in inline | yes) ;; *) case $ac_cv_c_inline in no) ac_val=;; *) ac_val=$ac_cv_c_inline;; esac cat >>confdefs.h <<_ACEOF #ifndef __cplusplus #define inline $ac_val #endif _ACEOF ;; esac { $as_echo "$as_me:$LINENO: checking for ssize_t" >&5 $as_echo_n "checking for ssize_t... " >&6; } if test "${ac_cv_type_ssize_t+set}" = set; then $as_echo_n "(cached) " >&6 else ac_cv_type_ssize_t=no cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { if (sizeof (ssize_t)) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { if (sizeof ((ssize_t))) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_ssize_t=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:$LINENO: result: $ac_cv_type_ssize_t" >&5 $as_echo "$ac_cv_type_ssize_t" >&6; } if test "x$ac_cv_type_ssize_t" = x""yes; then : else cat >>confdefs.h <<_ACEOF #define ssize_t int _ACEOF fi { $as_echo "$as_me:$LINENO: checking whether struct tm is in sys/time.h or time.h" >&5 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; } if test "${ac_cv_struct_tm+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include int main () { struct tm tm; int *p = &tm.tm_sec; return !p; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_struct_tm=time.h else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_struct_tm=sys/time.h fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:$LINENO: result: $ac_cv_struct_tm" >&5 $as_echo "$ac_cv_struct_tm" >&6; } if test $ac_cv_struct_tm = sys/time.h; then cat >>confdefs.h <<\_ACEOF #define TM_IN_SYS_TIME 1 _ACEOF fi # Checks for library functions. for ac_header in stdlib.h do as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 $as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 $as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 $as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------------------------------ ## ## Report this to alsamodular-devel@lists.sourceforge.net ## ## ------------------------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi as_val=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done { $as_echo "$as_me:$LINENO: checking for GNU libc compatible malloc" >&5 $as_echo_n "checking for GNU libc compatible malloc... " >&6; } if test "${ac_cv_func_malloc_0_nonnull+set}" = set; then $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then ac_cv_func_malloc_0_nonnull=no else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #if defined STDC_HEADERS || defined HAVE_STDLIB_H # include #else char *malloc (); #endif int main () { return ! malloc (0); ; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_malloc_0_nonnull=yes else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_func_malloc_0_nonnull=no fi rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi { $as_echo "$as_me:$LINENO: result: $ac_cv_func_malloc_0_nonnull" >&5 $as_echo "$ac_cv_func_malloc_0_nonnull" >&6; } if test $ac_cv_func_malloc_0_nonnull = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_MALLOC 1 _ACEOF else cat >>confdefs.h <<\_ACEOF #define HAVE_MALLOC 0 _ACEOF case " $LIBOBJS " in *" malloc.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS malloc.$ac_objext" ;; esac cat >>confdefs.h <<\_ACEOF #define malloc rpl_malloc _ACEOF fi for ac_header in sys/select.h sys/socket.h do as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 $as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 $as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 $as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------------------------------ ## ## Report this to alsamodular-devel@lists.sourceforge.net ## ## ------------------------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi as_val=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done { $as_echo "$as_me:$LINENO: checking types of arguments for select" >&5 $as_echo_n "checking types of arguments for select... " >&6; } if test "${ac_cv_func_select_args+set}" = set; then $as_echo_n "(cached) " >&6 else for ac_arg234 in 'fd_set *' 'int *' 'void *'; do for ac_arg1 in 'int' 'size_t' 'unsigned long int' 'unsigned int'; do for ac_arg5 in 'struct timeval *' 'const struct timeval *'; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #ifdef HAVE_SYS_SELECT_H # include #endif #ifdef HAVE_SYS_SOCKET_H # include #endif int main () { extern int select ($ac_arg1, $ac_arg234, $ac_arg234, $ac_arg234, $ac_arg5); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_func_select_args="$ac_arg1,$ac_arg234,$ac_arg5"; break 3 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done done done # Provide a safe default value. : ${ac_cv_func_select_args='int,int *,struct timeval *'} fi { $as_echo "$as_me:$LINENO: result: $ac_cv_func_select_args" >&5 $as_echo "$ac_cv_func_select_args" >&6; } ac_save_IFS=$IFS; IFS=',' set dummy `echo "$ac_cv_func_select_args" | sed 's/\*/\*/g'` IFS=$ac_save_IFS shift cat >>confdefs.h <<_ACEOF #define SELECT_TYPE_ARG1 $1 _ACEOF cat >>confdefs.h <<_ACEOF #define SELECT_TYPE_ARG234 ($2) _ACEOF cat >>confdefs.h <<_ACEOF #define SELECT_TYPE_ARG5 ($3) _ACEOF rm -f conftest* { $as_echo "$as_me:$LINENO: checking whether lstat dereferences a symlink specified with a trailing slash" >&5 $as_echo_n "checking whether lstat dereferences a symlink specified with a trailing slash... " >&6; } if test "${ac_cv_func_lstat_dereferences_slashed_symlink+set}" = set; then $as_echo_n "(cached) " >&6 else rm -f conftest.sym conftest.file echo >conftest.file if test "$as_ln_s" = "ln -s" && ln -s conftest.file conftest.sym; then if test "$cross_compiling" = yes; then ac_cv_func_lstat_dereferences_slashed_symlink=no else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { struct stat sbuf; /* Linux will dereference the symlink and fail. That is better in the sense that it means we will not have to compile and use the lstat wrapper. */ return lstat ("conftest.sym/", &sbuf) == 0; ; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_lstat_dereferences_slashed_symlink=yes else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_func_lstat_dereferences_slashed_symlink=no fi rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi else # If the `ln -s' command failed, then we probably don't even # have an lstat function. ac_cv_func_lstat_dereferences_slashed_symlink=no fi rm -f conftest.sym conftest.file fi { $as_echo "$as_me:$LINENO: result: $ac_cv_func_lstat_dereferences_slashed_symlink" >&5 $as_echo "$ac_cv_func_lstat_dereferences_slashed_symlink" >&6; } test $ac_cv_func_lstat_dereferences_slashed_symlink = yes && cat >>confdefs.h <<_ACEOF #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 _ACEOF if test $ac_cv_func_lstat_dereferences_slashed_symlink = no; then case " $LIBOBJS " in *" lstat.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS lstat.$ac_objext" ;; esac fi { $as_echo "$as_me:$LINENO: checking whether stat accepts an empty string" >&5 $as_echo_n "checking whether stat accepts an empty string... " >&6; } if test "${ac_cv_func_stat_empty_string_bug+set}" = set; then $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then ac_cv_func_stat_empty_string_bug=yes else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { struct stat sbuf; return stat ("", &sbuf) == 0; ; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_stat_empty_string_bug=no else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_func_stat_empty_string_bug=yes fi rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi { $as_echo "$as_me:$LINENO: result: $ac_cv_func_stat_empty_string_bug" >&5 $as_echo "$ac_cv_func_stat_empty_string_bug" >&6; } if test $ac_cv_func_stat_empty_string_bug = yes; then case " $LIBOBJS " in *" stat.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS stat.$ac_objext" ;; esac cat >>confdefs.h <<_ACEOF #define HAVE_STAT_EMPTY_STRING_BUG 1 _ACEOF fi for ac_func in floor ftruncate getcwd memset mkdir pow rint select sqrt do as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` { $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 $as_echo_n "checking for $ac_func... " >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$ac_func || defined __stub___$ac_func choke me #endif int main () { return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then eval "$as_ac_var=yes" else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi ac_res=`eval 'as_val=${'$as_ac_var'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } as_val=`eval 'as_val=${'$as_ac_var'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done # Check for ladspa plugins path # Check whether --with-ladspa-path was given. if test "${with_ladspa_path+set}" = set; then withval=$with_ladspa_path; if test "x$withval" != "x" ; then LADSPA_PATH="$withval" fi else LADSPA_PATH="/usr/lib/ladspa:/usr/local/lib/ladspa" fi ac_config_files="$ac_config_files Makefile" ac_config_files="$ac_config_files demos/Makefile" ac_config_files="$ac_config_files instruments/Makefile" ac_config_files="$ac_config_files tutorial/Makefile" ac_config_files="$ac_config_files colors/Makefile" ac_config_files="$ac_config_files pixmaps/Makefile" ac_config_files="$ac_config_files man/Makefile" ac_config_files="$ac_config_files src/Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) $as_unset $ac_var ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes (double-quote # substitution turns \\\\ into \\, and sed turns \\ into \). sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then test "x$cache_file" != "x/dev/null" && { $as_echo "$as_me:$LINENO: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else { $as_echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then { { $as_echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&5 $as_echo "$as_me: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." >&5 $as_echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&5 $as_echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi : ${CONFIG_STATUS=./config.status} ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi # PATH needs CR # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # CDPATH. $as_unset CDPATH as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, and appends # trailing '-' during substitution so that $LINENO is not a special # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # scripts with optimization help from Paolo Bonzini. Blame Lee # E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 # Save the log message, to keep $[0] and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by ams $as_me 2.0.1, which was generated by GNU Autoconf 2.63. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files from templates according to the current configuration. Usage: $0 [OPTION]... [FILE]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration commands: $config_commands Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_version="\\ ams config.status 2.0.1 configured by $0, generated by GNU Autoconf 2.63, with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" Copyright (C) 2008 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac CONFIG_FILES="$CONFIG_FILES '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac CONFIG_HEADERS="$CONFIG_HEADERS '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header { $as_echo "$as_me: error: ambiguous option: $1 Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; };; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) { $as_echo "$as_me: error: unrecognized option: $1 Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *) ac_config_targets="$ac_config_targets $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "src/config.h") CONFIG_HEADERS="$CONFIG_HEADERS src/config.h" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "demos/Makefile") CONFIG_FILES="$CONFIG_FILES demos/Makefile" ;; "instruments/Makefile") CONFIG_FILES="$CONFIG_FILES instruments/Makefile" ;; "tutorial/Makefile") CONFIG_FILES="$CONFIG_FILES tutorial/Makefile" ;; "colors/Makefile") CONFIG_FILES="$CONFIG_FILES colors/Makefile" ;; "pixmaps/Makefile") CONFIG_FILES="$CONFIG_FILES pixmaps/Makefile" ;; "man/Makefile") CONFIG_FILES="$CONFIG_FILES man/Makefile" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 $as_echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= trap 'exit_status=$? { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status ' 0 trap '{ (exit 1); exit 1; }' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || { $as_echo "$as_me: cannot create a temporary directory in ." >&2 { (exit 1); exit 1; } } # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=' ' ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 $as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 $as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 $as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\).*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\).*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ || { { $as_echo "$as_me:$LINENO: error: could not setup config files machinery" >&5 $as_echo "$as_me: error: could not setup config files machinery" >&2;} { (exit 1); exit 1; }; } _ACEOF # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/ s/:*\${srcdir}:*/:/ s/:*@srcdir@:*/:/ s/^\([^=]*=[ ]*\):*/\1/ s/:*$// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_t=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_t"; then break elif $ac_last_try; then { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_HEADERS" >&5 $as_echo "$as_me: error: could not make $CONFIG_HEADERS" >&2;} { (exit 1); exit 1; }; } else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' >$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 { { $as_echo "$as_me:$LINENO: error: could not setup config headers machinery" >&5 $as_echo "$as_me: error: could not setup config headers machinery" >&2;} { (exit 1); exit 1; }; } fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) { { $as_echo "$as_me:$LINENO: error: invalid tag $ac_tag" >&5 $as_echo "$as_me: error: invalid tag $ac_tag" >&2;} { (exit 1); exit 1; }; };; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || { { $as_echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 $as_echo "$as_me: error: cannot find input file: $ac_f" >&2;} { (exit 1); exit 1; }; };; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac ac_file_inputs="$ac_file_inputs '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:$LINENO: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$tmp/stdin" \ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 $as_echo "$as_me: error: could not create $ac_file" >&2;} { (exit 1); exit 1; }; } ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` { as_dir="$ac_dir" case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 $as_echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p ' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 $as_echo "$as_me: error: could not create $ac_file" >&2;} { (exit 1); exit 1; }; } test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&2;} rm -f "$tmp/stdin" case $ac_file in -) cat "$tmp/out" && rm -f "$tmp/out";; *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; esac \ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 $as_echo "$as_me: error: could not create $ac_file" >&2;} { (exit 1); exit 1; }; } ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" } >"$tmp/config.h" \ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 $as_echo "$as_me: error: could not create $ac_file" >&2;} { (exit 1); exit 1; }; } if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:$LINENO: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$tmp/config.h" "$ac_file" \ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 $as_echo "$as_me: error: could not create $ac_file" >&2;} { (exit 1); exit 1; }; } fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ || { { $as_echo "$as_me:$LINENO: error: could not create -" >&5 $as_echo "$as_me: error: could not create -" >&2;} { (exit 1); exit 1; }; } fi # Compute "$ac_file"'s index in $config_headers. _am_arg="$ac_file" _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || $as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$_am_arg" : 'X\(//\)[^/]' \| \ X"$_am_arg" : 'X\(//\)$' \| \ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$_am_arg" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'`/stamp-h$_am_stamp_count ;; :C) { $as_echo "$as_me:$LINENO: executing $ac_file commands" >&5 $as_echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` { as_dir=$dirpart/$fdir case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 $as_echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done ;; esac done # for ac_tag { (exit 0); exit 0; } _ACEOF chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || { { $as_echo "$as_me:$LINENO: error: write failure creating $CONFIG_STATUS" >&5 $as_echo "$as_me: error: write failure creating $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || { (exit 1); exit 1; } fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:$LINENO: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi ams-2.0.1/config.sub0000755000076400007640000010115311146403535011211 00000000000000#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 # Free Software Foundation, Inc. timestamp='2008-01-16' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray) os= basic_machine=$1 ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore | mep \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64vr | mips64vrel \ | mips64orion | mips64orionel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | mt \ | msp430 \ | nios | nios2 \ | ns16k | ns32k \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | score \ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64vr-* | mips64vrel-* \ | mips64orion-* | mips64orionel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) basic_machine=$basic_machine-unknown ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; blackfin) basic_machine=bfin-unknown os=-linux ;; blackfin-*) basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; c90) basic_machine=c90-cray os=-unicos ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16) basic_machine=cr16-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; parisc) basic_machine=hppa-unknown os=-linux ;; parisc-*) basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; tile*) basic_machine=tile-unknown os=-linux-gnu ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: ams-2.0.1/instruments/0000777000076400007640000000000011315252054011700 500000000000000ams-2.0.1/instruments/hplp_instrument_pocketdial.ams0000664000076400007640000006260210072545655017773 00000000000000Module 6 1 662 339 2 blvco Saw-VCO ColorP 0 0 1 32 250 200 50 180 180 180 ColorP 1 0 1 19 250 200 50 180 180 180 FSlider 1 0 -150902 1 -150902 0 1 FSlider 1 1 16466 0 0 65536 1 FSlider 1 2 0 0 0 65536 1 FSlider 1 3 7739 0 0 16384 1 LSlider 1 0 -1 1 FSMIDI 1 0 10 0 16 LSMIDI 1 0 10 0 24 Module 6 2 663 495 2 blvco Saw-VCO ColorP 0 1 2 32 250 200 50 180 180 180 ColorP 1 0 2 19 250 200 50 180 180 180 FSlider 2 0 -83175 1 -150902 0 1 FSlider 2 1 16466 0 0 65536 1 FSlider 2 2 0 0 0 65536 1 FSlider 2 3 9303 0 0 16384 1 LSlider 2 0 -1 1 FSMIDI 2 0 10 0 18 LSMIDI 2 0 10 0 26 Module 6 3 664 654 2 blvco Saw-VCO ColorP 0 2 3 32 250 200 50 180 180 180 ColorP 1 0 3 19 250 200 50 180 180 180 FSlider 3 0 -68916 1 -150902 0 1 FSlider 3 1 16466 0 0 65536 1 FSlider 3 2 0 0 0 65536 1 FSlider 3 3 11115 0 0 16384 1 LSlider 3 0 0 1 FSMIDI 3 0 10 0 20 LSMIDI 3 0 10 0 28 Module 6 4 1209 360 2 mvchpf24 Mvchpf-1 ColorP 0 0 4 17 250 200 50 180 180 180 ColorP 2 0 4 14 250 200 50 180 180 180 FSlider 4 0 163840 0 -983040 163840 1 FSlider 4 1 81920 0 -81920 81920 1 FSlider 4 2 16542 0 0 163840 1 FSlider 4 3 -126003 0 -245760 245760 1 FSMIDI 4 0 10 0 39 FSMIDI 4 1 10 0 37 FSMIDI 4 3 10 0 47 Module 6 5 1207 507 2 mvclpf24 Mvclpf-4 ColorP 0 0 5 17 250 200 50 180 180 180 ColorP 1 3 5 32 250 200 50 180 180 180 ColorP 2 0 5 22 250 200 50 180 180 180 ColorP 3 0 5 21 250 200 50 180 180 180 FSlider 5 0 163840 0 -983040 163840 1 FSlider 5 1 -8515 0 -98304 98304 1 FSlider 5 2 14190 0 0 163840 1 FSlider 5 3 0 0 0 16384 1 FSlider 5 4 16384 0 0 16384 1 FSlider 5 5 -6202 0 -245760 245760 1 LSlider 5 0 4 1 FSMIDI 5 0 10 0 34 FSMIDI 5 1 10 0 1 FSMIDI 5 1 10 0 32 FSMIDI 5 3 10 0 40 FSMIDI 5 5 10 0 42 LSMIDI 5 0 10 0 33 Module 35 6 25 27 0 0 FSlider 6 0 129 0 -16384 16384 1 ISlider 6 0 0 1 ISlider 6 1 0 1 ISlider 6 2 0 1 ISlider 6 3 0 1 ISlider 6 4 0 1 FSMIDI 6 0 13 0 0 Module 39 7 333 31 0 0 ColorP 0 0 7 6 250 200 50 180 180 180 ColorP 1 3 7 6 250 200 50 180 180 180 FSlider 7 0 -118924 0 -131072 131072 1 FSlider 7 1 -62019 0 -131072 131072 1 FSlider 7 2 0 0 0 16384 1 FSlider 7 3 8192 0 0 16384 1 FSlider 7 4 -53068 0 -131072 131072 1 FSlider 7 5 16384 0 -131072 131072 1 FSlider 7 6 16384 0 -131072 131072 1 FSlider 7 7 16384 0 0 16384 1 FSlider 7 8 16384 0 0 16384 1 FSlider 7 9 16384 0 -131072 131072 1 FSMIDI 7 0 10 0 48 FSMIDI 7 1 10 0 49 FSMIDI 7 2 10 0 50 FSMIDI 7 3 10 0 62 FSMIDI 7 4 10 0 51 Module 39 8 334 305 0 0 ColorP 0 0 8 6 250 200 50 180 180 180 ColorP 1 3 8 6 250 200 50 180 180 180 FSlider 8 0 -119591 0 -131072 131072 1 FSlider 8 1 -18121 0 -131072 131072 1 FSlider 8 2 11627 0 0 16384 1 FSlider 8 3 1953 0 0 16384 1 FSlider 8 4 -11162 0 -131072 131072 1 FSlider 8 5 16384 0 -131072 131072 1 FSlider 8 6 16384 0 -131072 131072 1 FSlider 8 7 16384 0 0 16384 1 FSlider 8 8 16384 0 0 16384 1 FSlider 8 9 16384 0 -131072 131072 1 FSMIDI 8 0 10 0 56 FSMIDI 8 1 10 0 57 FSMIDI 8 2 10 0 58 FSMIDI 8 3 10 0 61 FSMIDI 8 4 10 0 59 Module 39 9 334 561 0 0 ColorP 0 0 9 6 250 200 50 180 180 180 ColorP 1 3 9 6 250 200 50 180 180 180 FSlider 9 0 -131072 0 -131072 131072 1 FSlider 9 1 -3836 0 -131072 131072 1 FSlider 9 2 11703 0 0 16384 1 FSlider 9 3 1958 0 0 16384 1 FSlider 9 4 -8312 0 -131072 131072 1 FSlider 9 5 16384 0 -131072 131072 1 FSlider 9 6 16384 0 -131072 131072 1 FSlider 9 7 16384 0 0 16384 1 FSlider 9 8 16384 0 0 16384 1 FSlider 9 9 16384 0 -131072 131072 1 FSMIDI 9 0 10 0 52 FSMIDI 9 1 10 0 53 FSMIDI 9 2 10 0 54 FSMIDI 9 3 10 0 63 FSMIDI 9 4 10 0 55 Module 2 10 1515 400 0 0 ColorP 0 0 10 9 250 200 50 180 180 180 ColorP 2 0 10 4 250 200 50 180 180 180 ColorP 3 0 10 5 250 200 50 180 180 180 FSlider 10 0 0 0 0 16384 1 FSlider 10 1 0 0 0 16384 1 FSlider 10 2 12686 0 0 32768 1 FSlider 10 3 16074 0 0 32768 1 FSlider 10 4 16384 0 0 32768 1 FSMIDI 10 2 10 0 45 Module 7 11 2105 436 0 0 ColorP 0 0 11 26 250 200 50 180 180 180 ColorP 1 1 11 26 250 200 50 180 180 180 FSlider 11 0 3641 0 0 16384 1 FSlider 11 1 8192 0 0 16384 1 FSlider 11 2 8192 0 0 16384 1 ComboBox 11 0 0 1 Module 41 14 640 43 0 0 ColorP 0 0 14 7 250 200 50 180 180 180 FSlider 14 0 -139863 0 -163840 163840 1 FSMIDI 14 0 10 0 46 Module 41 15 641 178 0 0 ColorP 0 0 15 8 250 200 50 180 180 180 FSlider 15 0 40016 0 -163840 163840 1 FSMIDI 15 0 10 0 41 Module 14 16 784 806 0 0 FSlider 16 0 81920 0 0 163840 1 FSlider 16 1 8192 0 0 16384 1 Module 8 17 1018 544 4 0 ColorP 0 0 17 1 250 200 50 180 180 180 ColorP 1 0 17 2 250 200 50 180 180 180 ColorP 2 0 17 3 250 200 50 180 180 180 ColorP 3 1 17 16 250 200 50 180 180 180 FSlider 17 0 16384 0 0 32768 1 FSlider 17 1 16384 0 0 32768 1 FSlider 17 2 15308 0 0 32768 1 FSlider 17 3 14750 0 0 32768 1 FSlider 17 4 0 0 0 32768 1 FSMIDI 17 1 10 0 22 FSMIDI 17 2 10 0 23 FSMIDI 17 3 10 0 30 FSMIDI 17 4 10 0 31 Module 3 18 24 570 0 0 FSlider 18 0 29734 1 -150902 75450 1 FSlider 18 1 0 0 0 102940 1 FSMIDI 18 0 10 0 64 Module 41 19 341 818 0 0 ColorP 0 0 19 20 250 200 50 180 180 180 FSlider 19 0 242 0 0 16384 1 FSMIDI 19 0 10 0 67 Module 8 20 174 609 4 0 ColorP 0 1 20 18 250 200 50 180 180 180 ColorP 1 2 20 18 250 200 50 180 180 180 ColorP 2 4 20 18 250 200 50 180 180 180 ColorP 3 5 20 18 250 200 50 180 180 180 FSlider 20 0 16384 0 0 32768 1 FSlider 20 1 16384 0 0 32768 1 FSlider 20 2 0 0 0 32768 1 FSlider 20 3 0 0 0 32768 1 FSlider 20 4 0 0 0 32768 1 FSMIDI 20 1 10 0 72 FSMIDI 20 2 10 0 65 FSMIDI 20 3 10 0 73 FSMIDI 20 4 10 0 74 Module 8 21 1022 169 2 0 ColorP 0 0 21 29 250 200 50 180 180 180 ColorP 1 0 21 30 250 200 50 180 180 180 FSlider 21 0 16384 0 0 32768 1 FSlider 21 1 16384 0 0 32768 1 FSlider 21 2 16384 0 0 32768 1 Module 8 22 1020 360 2 0 ColorP 0 0 22 15 250 200 50 180 180 180 ColorP 1 0 22 20 250 200 50 180 180 180 FSlider 22 0 16384 0 0 32768 1 FSlider 22 1 16384 0 0 32768 1 FSlider 22 2 320 0 0 32768 1 FSMIDI 22 2 10 0 75 Module 37 24 1649 408 0 0 ColorP 0 0 24 10 250 200 50 180 180 180 ColorP 1 0 24 20 250 200 50 180 180 180 FSlider 24 0 -3463 0 -16384 16384 1 FSlider 24 1 23614 0 0 32768 1 ComboBox 24 0 4 1 FSMIDI 24 0 10 0 76 FSMIDI 24 1 10 0 68 Module 6 26 1805 437 0 g2reverb G2reverb ColorP 0 0 26 24 250 200 50 180 180 180 ColorP 1 1 26 24 250 200 50 180 180 180 FSlider 26 0 660278 0 163840 2457600 1 FSlider 26 1 25728 0 16384 327680 1 FSlider 26 2 10612 0 0 16384 1 FSlider 26 3 4814 0 0 16384 1 FSlider 26 4 0 0 -1310720 0 1 FSlider 26 5 -525945 0 -1310720 0 1 FSlider 26 6 -565287 0 -1310720 0 1 FSMIDI 26 0 10 0 69 FSMIDI 26 1 10 0 77 FSMIDI 26 2 10 0 70 FSMIDI 26 3 10 0 78 FSMIDI 26 5 10 0 71 FSMIDI 26 6 10 0 79 Module 41 29 839 46 0 0 ColorP 0 0 29 7 250 200 50 180 180 180 FSlider 29 0 0 0 -16384 16384 1 FSMIDI 29 0 10 0 60 Module 41 30 839 177 0 0 ColorP 0 0 30 8 250 200 50 180 180 180 FSlider 30 0 1993 0 -163840 163840 1 Module 42 32 24 307 4 0 ColorP 0 1 32 6 250 200 50 180 180 180 FSlider 32 0 -86807 1 -150902 -40582 1 FSlider 32 1 -75451 1 -75451 0 1 FSlider 32 2 0 1 -75451 37725 1 FSlider 32 3 -86807 1 -150902 -40582 1 FSlider 32 4 -75451 1 -75451 0 1 FSlider 32 5 17999 1 -75451 37725 1 ComboBox 32 0 0 1 ComboBox 32 1 1 1 CheckBox 32 0 0 1 Tab "Oscillators / Mixer / LFO" Tab "Envelopes" Tab "Filters" Tab "Panning / Reverb" Frame "Oscillators" 0 Parameter "VCO 1 Octave" 1 0 Parameter "VCO 1 Tune" 1 1 -150902 0 1 Parameter "VCO 2 Octave" 2 0 Parameter "VCO 2 Tune" 2 1 -150902 0 1 Parameter "VCO 3 Octave" 3 0 Parameter "VCO 3 Tune" 3 1 -150902 0 1 Frame "Mixer" 0 Parameter "VCO 1" 17 1 0 32768 0 Parameter "VCO 2" 17 2 0 32768 0 Parameter "VCO 3" 17 3 0 32768 0 Parameter "Noise" 17 4 0 32768 0 Frame "LFO" 0 Parameter "Frequency" 18 0 -150902 75448 1 Parameter "Triangle" 20 1 0 32768 0 Parameter "Saw" 20 2 0 32768 0 Parameter "Rectangle" 20 3 0 32768 0 Parameter "Sample & Hold" 20 4 0 32768 0 Parameter "LFO to Pitch" 19 0 0 16384 0 Parameter "LFO to Lowpass" 22 2 0 32768 0 Frame "Highpass Envelope" 1 Parameter "Attack" 7 0 -131072 131072 0 Parameter "Decay" 7 1 -131072 131072 0 Parameter "Sustain" 7 2 0 16384 0 Parameter "Ratio" 7 3 0 16384 0 Parameter "Release" 7 4 -131072 131072 0 Parameter "Amount to Highpass" 14 0 -163840 163840 0 Parameter "Amount to Lowpass Resonance" 29 0 -16384 16384 0 Frame "Lowpass Envelope" 1 Parameter "Attack" 8 0 -131072 131072 0 Parameter "Decay" 8 1 -131072 131072 0 Parameter "Sustain" 8 2 0 16384 0 Parameter "Ratio" 8 3 0 16384 0 Parameter "Release" 8 4 -131072 131072 0 Parameter "Amount to Lowpass" 15 0 -163840 163840 0 Parameter "Amount to Resonance" 30 0 -16384 16384 0 Frame "Volume Envelope" 1 Parameter "Attack" 9 0 -131072 131072 0 Parameter "Decay" 9 1 -131072 131072 0 Parameter "Sustain" 9 2 0 16384 0 Parameter "Ratio" 9 3 0 16384 0 Parameter "Release" 9 4 -131072 131072 0 Frame "Lowpass Filter" 2 Parameter "Input gain (dB)" 5 0 -983040 163840 0 Parameter "Frequency" 5 1 -98304 98304 0 Parameter "Resonance" 5 3 0 16384 0 Parameter "Filter poles" 5 5 Parameter "Output gain (dB)" 5 6 -245760 245760 0 Parameter "Signal to VCA" 10 3 0 32768 0 Frame "Highpass Filter" 2 Parameter "Input gain (dB)" 4 0 -983040 163840 0 Parameter "Frequency" 4 1 -81920 81920 0 Parameter "Output gain (dB)" 4 3 -245760 245760 0 Parameter "Signal to VCA" 10 2 0 32768 0 Frame "Panning" 3 Parameter "Pan Gain" 24 1 0 32768 0 Parameter "Pan Offset" 24 0 -16384 16384 0 Parameter "Panning Mode" 24 2 Frame "Reverb" 3 Parameter "Room size" 26 0 163840 2457600 0 Parameter "Reverb time" 26 1 16384 327680 0 Parameter "Input BW" 26 2 0 16384 0 Parameter "Damping" 26 3 0 16384 0 Parameter "Dry sound" 26 4 -1310720 0 0 Parameter "Reflections" 26 5 -1310720 0 0 Parameter "Reverb tail" 26 6 -1310720 0 0 Program 0 -1 Program 0 -150902 Program 0 0 Program 0 -96245 Program 0 2 Program 0 -123574 Program 0 11112 Program 0 16214 Program 0 15534 Program 0 0 Program 0 29734 Program 0 16384 Program 0 0 Program 0 0 Program 0 0 Program 0 242 Program 0 320 Program 0 -88562 Program 0 13416 Program 0 0 Program 0 0 Program 0 -75341 Program 0 -139485 Program 0 -397 Program 0 -131072 Program 0 17545 Program 0 0 Program 0 3290 Program 0 -19610 Program 0 127717 Program 0 170 Program 0 -131072 Program 0 -13055 Program 0 12533 Program 0 3525 Program 0 -15367 Program 0 44869 Program 0 -28640 Program 0 686 Program 0 4 Program 0 190693 Program 0 16452 Program 0 77824 Program 0 81920 Program 0 -69632 Program 0 15019 Program 0 23614 Program 0 -3463 Program 0 4 Program 0 660278 Program 0 25728 Program 0 10612 Program 0 4814 Program 0 0 Program 0 -525945 Program 0 -565287 Program 1 -1 Program 1 -150902 Program 1 -1 Program 1 -95057 Program 1 1 Program 1 -122386 Program 1 16384 Program 1 15308 Program 1 15068 Program 1 0 Program 1 29734 Program 1 16384 Program 1 0 Program 1 0 Program 1 0 Program 1 242 Program 1 320 Program 1 -131072 Program 1 -50650 Program 1 0 Program 1 8192 Program 1 -53068 Program 1 -96177 Program 1 -3238 Program 1 -85313 Program 1 -36675 Program 1 16384 Program 1 5302 Program 1 -18614 Program 1 53321 Program 1 97 Program 1 -131072 Program 1 -35166 Program 1 16384 Program 1 5235 Program 1 -8893 Program 1 163840 Program 1 -23548 Program 1 3302 Program 1 4 Program 1 91282 Program 1 16074 Program 1 163840 Program 1 81920 Program 1 -12800 Program 1 13977 Program 1 23614 Program 1 -3463 Program 1 4 Program 1 660278 Program 1 25728 Program 1 10612 Program 1 4814 Program 1 0 Program 1 -525945 Program 1 -565287 Program 2 -2 Program 2 -150902 Program 2 -1 Program 2 -87928 Program 2 -1 Program 2 -93869 Program 2 16384 Program 2 15308 Program 2 14750 Program 2 0 Program 2 29734 Program 2 16384 Program 2 0 Program 2 0 Program 2 0 Program 2 242 Program 2 320 Program 2 -71610 Program 2 -19821 Program 2 0 Program 2 8192 Program 2 -53068 Program 2 -139863 Program 2 0 Program 2 -119591 Program 2 319 Program 2 16384 Program 2 5302 Program 2 -14736 Program 2 24317 Program 2 1993 Program 2 -131072 Program 2 -3836 Program 2 16384 Program 2 5235 Program 2 -10439 Program 2 163840 Program 2 774 Program 2 2558 Program 2 4 Program 2 114859 Program 2 16074 Program 2 163840 Program 2 81920 Program 2 -82776 Program 2 13977 Program 2 23614 Program 2 -3463 Program 2 4 Program 2 660278 Program 2 25728 Program 2 10612 Program 2 4814 Program 2 0 Program 2 -525945 Program 2 -565287 Program 3 -1 Program 3 -150902 Program 3 -1 Program 3 -83175 Program 3 0 Program 3 -68916 Program 3 16384 Program 3 15308 Program 3 14750 Program 3 0 Program 3 29734 Program 3 16384 Program 3 0 Program 3 0 Program 3 0 Program 3 242 Program 3 320 Program 3 -118924 Program 3 -62019 Program 3 0 Program 3 8192 Program 3 -53068 Program 3 -139863 Program 3 0 Program 3 -119591 Program 3 -18121 Program 3 11627 Program 3 1953 Program 3 -11162 Program 3 40016 Program 3 1993 Program 3 -131072 Program 3 -3836 Program 3 11703 Program 3 1958 Program 3 -8312 Program 3 163840 Program 3 -8515 Program 3 0 Program 3 4 Program 3 -6202 Program 3 16074 Program 3 163840 Program 3 81920 Program 3 -126003 Program 3 12686 Program 3 23614 Program 3 -3463 Program 3 4 Program 3 660278 Program 3 25728 Program 3 10612 Program 3 4814 Program 3 0 Program 3 -525945 Program 3 -565287 Program 4 -1 Program 4 -150902 Program 4 -1 Program 4 -78422 Program 4 -1 Program 4 -66540 Program 4 16384 Program 4 15308 Program 4 14750 Program 4 680 Program 4 29734 Program 4 16384 Program 4 0 Program 4 0 Program 4 0 Program 4 242 Program 4 320 Program 4 -118924 Program 4 -80334 Program 4 0 Program 4 8192 Program 4 -53068 Program 4 -139863 Program 4 0 Program 4 -119591 Program 4 -15100 Program 4 11627 Program 4 1953 Program 4 -11162 Program 4 58137 Program 4 1993 Program 4 -131072 Program 4 -3836 Program 4 11703 Program 4 1958 Program 4 -8312 Program 4 163840 Program 4 -16017 Program 4 0 Program 4 4 Program 4 -6202 Program 4 16074 Program 4 163840 Program 4 81920 Program 4 -126003 Program 4 12686 Program 4 23614 Program 4 -3463 Program 4 4 Program 4 660278 Program 4 25728 Program 4 10612 Program 4 4814 Program 4 0 Program 4 -525945 Program 4 -565287 Program 5 -2 Program 5 -150902 Program 5 -2 Program 5 -91492 Program 5 -2 Program 5 -73669 Program 5 16384 Program 5 15308 Program 5 14750 Program 5 10495 Program 5 29734 Program 5 16384 Program 5 0 Program 5 0 Program 5 0 Program 5 242 Program 5 320 Program 5 -131072 Program 5 -72482 Program 5 0 Program 5 8192 Program 5 -53068 Program 5 -139863 Program 5 0 Program 5 -131072 Program 5 -33825 Program 5 11627 Program 5 4492 Program 5 -11162 Program 5 40016 Program 5 1993 Program 5 -131072 Program 5 -28993 Program 5 11703 Program 5 4719 Program 5 -8312 Program 5 163840 Program 5 -8515 Program 5 0 Program 5 4 Program 5 -6202 Program 5 16074 Program 5 163840 Program 5 81920 Program 5 -245760 Program 5 16360 Program 5 23614 Program 5 -3463 Program 5 4 Program 5 660278 Program 5 25728 Program 5 10612 Program 5 4814 Program 5 0 Program 5 -525945 Program 5 -565287 Program 6 -1 Program 6 -150902 Program 6 -1 Program 6 -99810 Program 6 2 Program 6 -123574 Program 6 16384 Program 6 15308 Program 6 15068 Program 6 0 Program 6 29734 Program 6 16384 Program 6 0 Program 6 0 Program 6 0 Program 6 242 Program 6 320 Program 6 -131072 Program 6 -38363 Program 6 0 Program 6 8192 Program 6 -118673 Program 6 -89513 Program 6 0 Program 6 -131072 Program 6 -36675 Program 6 16384 Program 6 5302 Program 6 -21716 Program 6 24317 Program 6 1993 Program 6 -131072 Program 6 -35166 Program 6 16384 Program 6 5235 Program 6 -14306 Program 6 163840 Program 6 17803 Program 6 4727 Program 6 4 Program 6 14682 Program 6 20682 Program 6 163840 Program 6 81920 Program 6 -97280 Program 6 17579 Program 6 23614 Program 6 -3463 Program 6 4 Program 6 660278 Program 6 25728 Program 6 10612 Program 6 4814 Program 6 0 Program 6 -525945 Program 6 -565287 Program 7 -1 Program 7 -150902 Program 7 0 Program 7 -98621 Program 7 2 Program 7 -122386 Program 7 11112 Program 7 16214 Program 7 15534 Program 7 0 Program 7 29734 Program 7 16384 Program 7 0 Program 7 0 Program 7 0 Program 7 242 Program 7 320 Program 7 -88562 Program 7 -85020 Program 7 0 Program 7 0 Program 7 -102732 Program 7 -139485 Program 7 -397 Program 7 -131072 Program 7 -11591 Program 7 0 Program 7 3290 Program 7 -18725 Program 7 88050 Program 7 170 Program 7 -131072 Program 7 -13055 Program 7 12533 Program 7 3525 Program 7 -15367 Program 7 44869 Program 7 10062 Program 7 686 Program 7 4 Program 7 190693 Program 7 16452 Program 7 77824 Program 7 81920 Program 7 -69632 Program 7 15019 Program 7 23614 Program 7 -3463 Program 7 4 Program 7 660278 Program 7 25728 Program 7 10612 Program 7 4814 Program 7 0 Program 7 -525945 Program 7 -565287 Program 8 -1 Program 8 -150902 Program 8 -1 Program 8 -81987 Program 8 0 Program 8 -97433 Program 8 16384 Program 8 15542 Program 8 17956 Program 8 0 Program 8 29734 Program 8 16384 Program 8 0 Program 8 0 Program 8 0 Program 8 242 Program 8 320 Program 8 -131072 Program 8 -75245 Program 8 0 Program 8 0 Program 8 -88562 Program 8 -163840 Program 8 221 Program 8 -131072 Program 8 62087 Program 8 0 Program 8 0 Program 8 9333 Program 8 127795 Program 8 111 Program 8 -131072 Program 8 80798 Program 8 7294 Program 8 5499 Program 8 15373 Program 8 163840 Program 8 -61826 Program 8 0 Program 8 4 Program 8 117537 Program 8 16060 Program 8 163840 Program 8 81920 Program 8 -245760 Program 8 2785 Program 8 23614 Program 8 -3463 Program 8 4 Program 8 660278 Program 8 25728 Program 8 10612 Program 8 4814 Program 8 0 Program 8 -525945 Program 8 -565287 Program 9 0 Program 9 -150902 Program 9 0 Program 9 -97433 Program 9 0 Program 9 -103374 Program 9 15593 Program 9 0 Program 9 0 Program 9 0 Program 9 29734 Program 9 16384 Program 9 0 Program 9 0 Program 9 0 Program 9 242 Program 9 320 Program 9 -40251 Program 9 -58828 Program 9 0 Program 9 8069 Program 9 -93918 Program 9 -163840 Program 9 -443 Program 9 -25802 Program 9 -29930 Program 9 0 Program 9 8066 Program 9 -9289 Program 9 -24512 Program 9 0 Program 9 -131072 Program 9 -19610 Program 9 5088 Program 9 8882 Program 9 -29930 Program 9 163840 Program 9 93659 Program 9 1983 Program 9 4 Program 9 245760 Program 9 10008 Program 9 163840 Program 9 81920 Program 9 -127530 Program 9 9742 Program 9 23614 Program 9 -3463 Program 9 4 Program 9 660278 Program 9 25728 Program 9 10612 Program 9 4814 Program 9 0 Program 9 -525945 Program 9 -565287 Program 10 -2 Program 10 -150902 Program 10 -2 Program 10 -85551 Program 10 -2 Program 10 -78422 Program 10 16384 Program 10 15308 Program 10 15486 Program 10 10495 Program 10 29734 Program 10 16384 Program 10 0 Program 10 0 Program 10 0 Program 10 242 Program 10 320 Program 10 -131072 Program 10 -72046 Program 10 0 Program 10 8192 Program 10 -53068 Program 10 -163840 Program 10 0 Program 10 -131072 Program 10 -9808 Program 10 0 Program 10 4492 Program 10 -4458 Program 10 25635 Program 10 129 Program 10 -131072 Program 10 0 Program 10 0 Program 10 12576 Program 10 -1846 Program 10 97216 Program 10 -2040 Program 10 0 Program 10 4 Program 10 164180 Program 10 16074 Program 10 163840 Program 10 81920 Program 10 -245760 Program 10 0 Program 10 23614 Program 10 -3463 Program 10 4 Program 10 660278 Program 10 25728 Program 10 10612 Program 10 4814 Program 10 0 Program 10 -525945 Program 10 -565287 Program 11 0 Program 11 -150902 Program 11 0 Program 11 -102186 Program 11 -3 Program 11 -92680 Program 11 16384 Program 11 15672 Program 11 0 Program 11 0 Program 11 29734 Program 11 16384 Program 11 0 Program 11 0 Program 11 0 Program 11 242 Program 11 320 Program 11 -90979 Program 11 -63856 Program 11 0 Program 11 0 Program 11 -87895 Program 11 -95734 Program 11 -4789 Program 11 -73693 Program 11 11813 Program 11 0 Program 11 1969 Program 11 -563 Program 11 21798 Program 11 0 Program 11 -131072 Program 11 7394 Program 11 0 Program 11 1958 Program 11 563 Program 11 163840 Program 11 5418 Program 11 6072 Program 11 4 Program 11 245760 Program 11 16074 Program 11 163840 Program 11 81920 Program 11 -34406 Program 11 2322 Program 11 23614 Program 11 -3463 Program 11 4 Program 11 660278 Program 11 25728 Program 11 10612 Program 11 4814 Program 11 0 Program 11 -525945 Program 11 -565287 Program 12 -1 Program 12 -150902 Program 12 -1 Program 12 -105751 Program 12 0 Program 12 -93869 Program 12 16384 Program 12 16435 Program 12 8116 Program 12 0 Program 12 29734 Program 12 16384 Program 12 0 Program 12 0 Program 12 0 Program 12 242 Program 12 320 Program 12 -112495 Program 12 -58828 Program 12 0 Program 12 0 Program 12 -87895 Program 12 -163840 Program 12 -8355 Program 12 -71213 Program 12 5160 Program 12 387 Program 12 1953 Program 12 2675 Program 12 104496 Program 12 0 Program 12 -131072 Program 12 67154 Program 12 12663 Program 12 1958 Program 12 -20814 Program 12 163840 Program 12 -37929 Program 12 0 Program 12 4 Program 12 164485 Program 12 16452 Program 12 163840 Program 12 81920 Program 12 -164486 Program 12 22705 Program 12 23614 Program 12 -3463 Program 12 4 Program 12 660278 Program 12 25728 Program 12 10612 Program 12 4814 Program 12 0 Program 12 -525945 Program 12 -565287 Program 13 -1 Program 13 -150902 Program 13 0 Program 13 -87928 Program 13 2 Program 13 -99810 Program 13 4565 Program 13 17057 Program 13 5162 Program 13 0 Program 13 29734 Program 13 16384 Program 13 0 Program 13 0 Program 13 0 Program 13 242 Program 13 320 Program 13 -131072 Program 13 -50572 Program 13 0 Program 13 0 Program 13 -45566 Program 13 -163840 Program 13 -6978 Program 13 -82923 Program 13 45043 Program 13 0 Program 13 1953 Program 13 -11768 Program 13 76114 Program 13 0 Program 13 -80443 Program 13 29815 Program 13 13642 Program 13 1958 Program 13 -20227 Program 13 -26514 Program 13 -5419 Program 13 2322 Program 13 4 Program 13 245760 Program 13 16074 Program 13 163840 Program 13 81920 Program 13 -203188 Program 13 26575 Program 13 23614 Program 13 -3463 Program 13 4 Program 13 660278 Program 13 25728 Program 13 10612 Program 13 4814 Program 13 0 Program 13 -525945 Program 13 -565287 Program 14 0 Program 14 -150902 Program 14 1 Program 14 -111692 Program 14 0 Program 14 -86739 Program 14 16384 Program 14 15672 Program 14 0 Program 14 0 Program 14 29734 Program 14 16384 Program 14 0 Program 14 0 Program 14 0 Program 14 242 Program 14 320 Program 14 -79469 Program 14 -50572 Program 14 0 Program 14 0 Program 14 -87895 Program 14 -95734 Program 14 -9188 Program 14 -79724 Program 14 -1032 Program 14 10385 Program 14 1953 Program 14 -36122 Program 14 21931 Program 14 0 Program 14 -131072 Program 14 4700 Program 14 12663 Program 14 1958 Program 14 -31457 Program 14 -1047 Program 14 17803 Program 14 11610 Program 14 4 Program 14 245760 Program 14 26591 Program 14 163840 Program 14 81920 Program 14 -56714 Program 14 2322 Program 14 23614 Program 14 -3463 Program 14 4 Program 14 660278 Program 14 25728 Program 14 10612 Program 14 4814 Program 14 0 Program 14 -525945 Program 14 -565287 Program 15 2 Program 15 -14259 Program 15 1 Program 15 -150902 Program 15 3 Program 15 -104122 Program 15 11112 Program 15 16214 Program 15 15534 Program 15 0 Program 15 29734 Program 15 16384 Program 15 0 Program 15 0 Program 15 0 Program 15 242 Program 15 320 Program 15 -88562 Program 15 -85020 Program 15 0 Program 15 0 Program 15 -102732 Program 15 -139485 Program 15 -397 Program 15 -131072 Program 15 -11591 Program 15 0 Program 15 3290 Program 15 -18725 Program 15 163840 Program 15 170 Program 15 -131072 Program 15 -13055 Program 15 12533 Program 15 3525 Program 15 -15367 Program 15 44869 Program 15 -47217 Program 15 686 Program 15 4 Program 15 190693 Program 15 16452 Program 15 77824 Program 15 81920 Program 15 -69632 Program 15 15019 Program 15 23614 Program 15 -3463 Program 15 4 Program 15 1193841 Program 15 28281 Program 15 10612 Program 15 4814 Program 15 0 Program 15 -125228 Program 15 -217062 Program 16 -1 Program 16 -150902 Program 16 0 Program 16 -96245 Program 16 2 Program 16 -109315 Program 16 11112 Program 16 16214 Program 16 15534 Program 16 0 Program 16 29734 Program 16 16384 Program 16 0 Program 16 0 Program 16 0 Program 16 242 Program 16 320 Program 16 -131072 Program 16 -57672 Program 16 0 Program 16 0 Program 16 -102732 Program 16 -139485 Program 16 -397 Program 16 -72090 Program 16 5243 Program 16 0 Program 16 3290 Program 16 -18725 Program 16 163840 Program 16 170 Program 16 -131072 Program 16 4611 Program 16 12533 Program 16 3525 Program 16 -15367 Program 16 44869 Program 16 -61150 Program 16 686 Program 16 4 Program 16 190693 Program 16 16452 Program 16 77824 Program 16 81920 Program 16 -69632 Program 16 15019 Program 16 23614 Program 16 -3463 Program 16 4 Program 16 660278 Program 16 25728 Program 16 10612 Program 16 4814 Program 16 0 Program 16 -525945 Program 16 -565287 Program 17 -1 Program 17 -150902 Program 17 0 Program 17 -96245 Program 17 2 Program 17 -123574 Program 17 11112 Program 17 16214 Program 17 15534 Program 17 0 Program 17 29734 Program 17 16384 Program 17 0 Program 17 0 Program 17 0 Program 17 242 Program 17 320 Program 17 -131072 Program 17 -38187 Program 17 0 Program 17 516 Program 17 -75341 Program 17 -139485 Program 17 16384 Program 17 -59455 Program 17 -2703 Program 17 0 Program 17 3290 Program 17 -9289 Program 17 130297 Program 17 170 Program 17 -131072 Program 17 -13055 Program 17 12533 Program 17 4644 Program 17 -15367 Program 17 97885 Program 17 -95208 Program 17 6063 Program 17 3 Program 17 190693 Program 17 32768 Program 17 77824 Program 17 81920 Program 17 -69632 Program 17 17539 Program 17 23614 Program 17 -3463 Program 17 4 Program 17 660278 Program 17 25728 Program 17 10612 Program 17 4814 Program 17 0 Program 17 -525945 Program 17 -565287 PresetName "Lead Synth" PresetName "Bright Baroque Solo Voice" PresetName "Fat Baroque Solo Voice" PresetName "Bass" PresetName "Noisy Bass" PresetName "Percussion" PresetName "Very Bright Baroque Solo Voice" PresetName "Sinfonia Track 1" PresetName "Sinfonia Track 2" PresetName "Sinfonia Track 3 7 8" PresetName "Sinfonia Track 4" PresetName "Sinfonia Track 5" PresetName "Sinfonia Track 9" PresetName "Sinfonia Track 6" PresetName "Sinfonia Track 5" PresetName "Greetings from Asia" PresetName "HPLP Lead with Double Attack" PresetName "Baroque Drops" ams-2.0.1/instruments/README_hplp_instrument_pocketdial0000664000076400007640000000262610050435571020220 00000000000000Controller layout for Doepfer Pocket Dial and hplp_instrument_pocketdial.ams ---------------------------------------------------------------------------- Bank1: Ctrl 16-31 Bank2: Ctrl 32-47 Bank3: Ctrl 48-63 Bank4: Ctrl 64-79 Bank 1: ------ 1 2 3 4 5 6 7 8 Freq Freq Freq VCO1 VCO2 VCO1 VCO2 VCO3 Mixer 9 10 11 12 13 14 15 16 Oct Oct Oct VCO3 Noise Bank 2: ------ 1 2 3 4 5 6 7 8 Freq Poles In Freq In Lowpass Highpass 9 10 11 12 13 14 15 16 Reso EnvAmt Out Level EnvAmt Out Bank 3: ------ 1 2 3 4 5 6 7 8 Att Dec Sus Rel Att Dec Sus Rel HP Envelope Volume Envelope LP Envelope HPEnvToReso Envelope Ratios 9 10 11 12 13 14 15 16 Att Dec Sus Rel ResoEnv LPRatio HPRatio VolRatio Bank 4: ------ 1 2 3 4 5 6 7 8 Freq Saw PitchMod PanGain Room InputBW Reflections LFO LFO Mod Pan Reverb 9 10 11 12 13 14 15 16 Tri Rect S&H FiltMod PanOfs Time Damping Tail ams-2.0.1/instruments/phaser_instrument_pan.ams0000664000076400007640000004716610072545655016761 00000000000000Module 35 1 26 180 0 0 FSlider 1 0 0 0 -16384 16384 1 ISlider 1 0 36 1 ISlider 1 1 0 1 ISlider 1 2 0 1 ISlider 1 3 0 1 ISlider 1 4 0 1 Module 34 2 229 23 0 0 ColorP 0 0 2 1 250 200 50 180 180 180 ColorP 1 3 2 1 250 200 50 180 180 180 FSlider 2 0 52 0 0 16384 1 FSlider 2 1 10348 0 0 16384 1 FSlider 2 2 0 0 0 16384 1 FSlider 2 3 2509 0 0 16384 1 FSlider 2 4 0 0 -16384 16384 1 FSlider 2 5 0 0 -16384 16384 1 FSlider 2 6 0 0 -16384 16384 1 FSlider 2 7 0 0 -16384 16384 1 ComboBox 2 0 2 1 ComboBox 2 1 1 1 Module 34 3 229 343 0 0 ColorP 0 0 3 1 250 200 50 180 180 180 ColorP 1 3 3 1 250 200 50 180 180 180 FSlider 3 0 82 0 0 16384 1 FSlider 3 1 13173 0 0 16384 1 FSlider 3 2 13008 0 0 16384 1 FSlider 3 3 2635 0 0 16384 1 FSlider 3 4 0 0 -16384 16384 1 FSlider 3 5 0 0 -16384 16384 1 FSlider 3 6 0 0 -16384 16384 1 FSlider 3 7 0 0 -16384 16384 1 ComboBox 3 0 2 1 ComboBox 3 1 1 1 Module 6 8 449 19 2 blvco Saw-VCO ColorP 0 0 8 44 250 200 50 180 180 180 ColorP 1 0 8 25 250 200 50 180 180 180 FSlider 8 0 115 0 0 545 1 FSlider 8 1 16480 0 0 65536 1 FSlider 8 2 0 0 0 65536 1 FSlider 8 3 8233 0 0 16384 1 LSlider 8 0 -4 1 Module 6 9 449 158 2 blvco Saw-VCO ColorP 0 1 9 44 250 200 50 180 180 180 ColorP 1 0 9 25 250 200 50 180 180 180 FSlider 9 0 257 0 0 545 1 FSlider 9 1 16480 0 0 65536 1 FSlider 9 2 0 0 0 65536 1 FSlider 9 3 8233 0 0 16384 1 LSlider 9 0 -4 1 Module 6 10 448 297 2 blvco Saw-VCO ColorP 0 2 10 44 250 200 50 180 180 180 ColorP 1 0 10 25 250 200 50 180 180 180 FSlider 10 0 0 0 0 545 1 FSlider 10 1 16480 0 0 65536 1 FSlider 10 2 0 0 0 65536 1 FSlider 10 3 8233 0 0 16384 1 LSlider 10 0 -4 1 Module 2 12 805 558 0 0 ColorP 0 0 12 3 250 200 50 180 180 180 ColorP 1 0 12 30 250 200 50 180 180 180 ColorP 2 0 12 23 250 200 50 180 180 180 ColorP 3 0 12 37 250 200 50 180 180 180 FSlider 12 0 0 0 0 163840 1 FSlider 12 1 0 0 0 16384 1 FSlider 12 2 0 0 0 32768 1 FSlider 12 3 3738 0 0 32768 1 FSlider 12 4 16384 0 0 32768 1 Module 8 13 386 613 4 0 ColorP 0 0 13 2 250 200 50 180 180 180 ColorP 1 0 13 8 250 200 50 180 180 180 ColorP 2 0 13 34 250 200 50 180 180 180 ColorP 3 1 13 26 250 200 50 180 180 180 FSlider 13 0 16384 0 0 32768 1 FSlider 13 1 20641 0 0 32768 1 FSlider 13 2 0 0 0 32768 1 FSlider 13 3 0 0 0 32768 1 FSlider 13 4 32768 0 0 32768 1 Module 8 14 735 168 4 0 ColorP 0 0 14 8 250 200 50 180 180 180 ColorP 1 0 14 9 250 200 50 180 180 180 ColorP 2 0 14 10 250 200 50 180 180 180 ColorP 3 1 14 32 250 200 50 180 180 180 FSlider 14 0 16384 0 0 32768 1 FSlider 14 1 32768 0 0 32768 1 FSlider 14 2 32768 0 0 32768 1 FSlider 14 3 32768 0 0 32768 1 FSlider 14 4 0 0 0 32768 1 Module 23 19 1137 478 0 0 ColorP 0 0 19 21 250 200 50 180 180 180 ColorP 1 1 19 21 250 200 50 180 180 180 FSlider 19 0 2600 0 0 16384 1 FSlider 19 1 8192 0 0 16384 1 FSlider 19 2 8192 0 0 16384 1 ComboBox 19 0 0 1 Module 7 20 1135 375 0 0 ColorP 0 0 20 21 250 200 50 180 180 180 ColorP 1 1 20 21 250 200 50 180 180 180 FSlider 20 0 2697 0 0 16384 1 FSlider 20 1 8192 0 0 16384 1 FSlider 20 2 8192 0 0 16384 1 ComboBox 20 0 0 1 Module 6 21 850 377 0 g2reverb G2reverb ColorP 0 0 21 42 250 200 50 180 180 180 ColorP 1 1 21 42 250 200 50 180 180 180 FSlider 21 0 2457600 0 163840 2457600 1 FSlider 21 1 40057 0 16384 327680 1 FSlider 21 2 7413 0 0 16384 1 FSlider 21 3 2012 0 0 16384 1 FSlider 21 4 0 0 -1310720 0 1 FSlider 21 5 -94691 0 -1310720 0 1 FSlider 21 6 -103638 0 -1310720 0 1 Module 6 23 878 167 2 mvclpf24 Mvclpf-3 ColorP 0 0 23 14 250 200 50 180 180 180 ColorP 1 3 23 44 250 200 50 180 180 180 ColorP 2 0 23 13 250 200 50 180 180 180 ColorP 3 0 23 28 250 200 50 180 180 180 FSlider 23 0 163840 0 -172155 163840 1 FSlider 23 1 -9452 0 -81920 81920 1 FSlider 23 2 115934 0 0 163840 1 FSlider 23 3 15943 0 0 16384 1 FSlider 23 4 9159 0 0 16384 1 FSlider 23 5 -14233 0 -245760 245760 1 FSMIDI 23 1 10 0 1 Module 8 25 204 697 2 0 ColorP 0 5 25 1 250 200 50 180 180 180 ColorP 1 1 25 26 250 200 50 180 180 180 FSlider 25 0 16384 0 0 32768 1 FSlider 25 1 16384 0 0 32768 1 FSlider 25 2 0 0 0 3283 1 Module 3 26 29 472 0 0 FSlider 26 0 -56365 1 -75451 75451 1 FSlider 26 1 0 0 0 102940 1 Module 8 28 510 553 2 0 ColorP 0 0 28 2 250 200 50 180 180 180 ColorP 1 1 28 26 250 200 50 180 180 180 FSlider 28 0 16384 0 0 32768 1 FSlider 28 1 0 0 0 32768 1 FSlider 28 2 0 0 0 16384 1 Module 5 30 614 635 0 0 ColorP 0 1 30 26 250 200 50 180 180 180 ColorP 1 0 30 3 250 200 50 180 180 180 FSlider 30 0 8192 0 0 81920 1 Module 14 32 715 372 0 0 FSlider 32 0 81920 0 0 163840 1 FSlider 32 1 8192 0 0 16384 1 Module 13 34 243 553 0 0 ColorP 0 0 34 2 250 200 50 180 180 180 Module 6 37 873 18 2 cs_phaser Phaser1 ColorP 0 0 37 38 250 200 50 180 180 180 ColorP 1 0 37 40 250 200 50 180 180 180 FSlider 37 0 163840 0 -655360 163840 1 FSlider 37 1 -66738 0 -81920 81920 1 FSlider 37 2 0 0 0 163840 1 FSlider 37 3 0 0 0 163840 1 FSlider 37 4 16131 0 -16384 16384 1 FSlider 37 5 8192 0 -16384 16384 1 LSlider 37 0 12 1 Module 8 38 739 13 4 0 ColorP 0 0 38 8 250 200 50 180 180 180 ColorP 1 0 38 9 250 200 50 180 180 180 ColorP 2 0 38 14 250 200 50 180 180 180 ColorP 3 0 38 23 250 200 50 180 180 180 FSlider 38 0 16384 0 0 32768 1 FSlider 38 1 16384 0 0 32768 1 FSlider 38 2 16384 0 0 32768 1 FSlider 38 3 16384 0 0 32768 1 FSlider 38 4 16384 0 0 32768 1 Module 15 39 245 215 0 0 ColorP 0 1 39 1 250 200 50 180 180 180 FSlider 39 0 8192 0 0 163840 1 FSlider 39 1 8192 0 0 163840 1 Module 8 40 513 432 2 0 ColorP 0 0 40 13 250 200 50 180 180 180 ColorP 1 0 40 39 250 200 50 180 180 180 FSlider 40 0 16384 0 0 32768 1 FSlider 40 1 13284 0 0 32768 1 FSlider 40 2 8224 0 0 32768 1 Module 37 42 968 561 0 0 ColorP 0 0 42 12 250 200 50 180 180 180 FSlider 42 0 -2874 0 -16384 16384 1 FSlider 42 1 17821 0 0 32768 1 ComboBox 42 0 4 1 Module 42 44 22 15 4 0 ColorP 0 1 44 1 250 200 50 180 180 180 FSlider 44 0 -86807 1 -150902 -40582 1 FSlider 44 1 -75451 1 -75451 0 1 FSlider 44 2 0 1 -75451 37725 1 FSlider 44 3 -86807 1 -150902 -40582 1 FSlider 44 4 -75451 1 -75451 0 1 FSlider 44 5 17999 1 -75451 37725 1 ComboBox 44 0 0 1 ComboBox 44 1 1 1 CheckBox 44 0 0 1 Tab "Oscillators / LFO / Mixer / Phaser" Tab "Filter / Envelopes / Reverb" Frame "Oscillators" 0 Parameter "VCO 1 Octave" 10 0 Parameter "VCO 1 Tune" 10 1 0 545 0 Parameter "VCO 2 Octave" 8 0 Parameter "VCO 2 Tune" 8 1 0 545 0 Parameter "VCO 3 Octave" 9 0 Parameter "VCO 3 Tune" 9 1 0 545 0 Frame "LFO" 0 Parameter "Frequency" 26 0 -75451 75448 1 Parameter "Pitch Modulation" 25 2 0 3277 0 Parameter "Filter Modulation" 13 4 0 32768 0 Parameter "Resonance Modulation" 28 2 0 16384 0 Parameter "Amplitude Modulation" 12 1 0 16384 0 Frame "Mixer" 0 Parameter "VCO 1 Level" 14 1 0 32768 0 Parameter "VCO 2 Level" 14 2 0 32768 0 Parameter "VCO 3 Level" 14 3 0 32768 0 Parameter "Noise" 14 4 0 32768 0 Parameter "VCO 1 to Phaser Input" 38 1 0 32768 0 Parameter "VCO 2 to Phaser Input" 38 2 0 32768 0 Parameter "Mix to Phaser Input" 38 3 0 32768 0 Parameter "Filter Output to Phaser Input" 38 4 0 32768 0 Frame "Filter" 1 Parameter "Cutoff Frequency" 23 1 -81920 81920 0 Parameter "Resonance" 23 3 0 16384 0 Parameter "Input gain (dB)" 23 0 -172155 163840 0 Parameter "Output gain (dB)" 23 5 -245760 245760 0 Parameter "VCO 1 to Filter Cutoff" 13 2 0 32768 0 Frame "Filter Envelope" 1 Parameter "Attack" 2 0 0 16384 0 Parameter "Decay" 2 1 0 16384 0 Parameter "Sustain" 2 2 0 16384 0 Parameter "Release" 2 3 0 16384 0 Parameter "Time Scale" 2 8 Parameter "Envelope to Filter Cutoff" 13 1 0 32768 0 Parameter "Inverse Envelope to Filter Cutoff" 13 3 0 32768 0 Parameter "Envelope to Resonance" 28 1 0 16384 0 Frame "Volume Envelope" 1 Parameter "Attack" 3 0 0 16384 0 Parameter "Decay" 3 1 0 16384 0 Parameter "Sustain" 3 2 0 16384 0 Parameter "Release" 3 3 0 16384 0 Parameter "Time Scale" 3 8 Frame "Reverb" 1 Parameter "Early Reflections" 21 5 -1310720 0 0 Parameter "Reverb Tail" 21 6 -1310720 0 0 Parameter "Reverb Time" 21 1 16384 327680 0 Parameter "Room Size" 21 0 163840 2457600 0 Parameter "Input Bandwidth" 21 2 0 16384 0 Parameter "Damping" 21 3 0 16384 0 Parameter "Input from Filter" 12 2 0 32768 0 Parameter "Input from Phaser" 12 3 0 32768 0 Frame "Phaser" 0 Parameter "Frequency" 37 2 -81920 81920 0 Parameter "Feedback gain" 37 5 -16384 16384 0 Parameter "Sections" 37 1 Parameter "Input gain (dB)" 37 0 -655360 163840 0 Parameter "Output mix" 37 6 -16384 16384 0 Parameter "Phaser Modulation Amount" 40 1 0 32768 0 Parameter "Pitch to Phaser Frequency" 40 2 0 32768 0 Parameter "Portamento Up" 39 0 0 163840 0 Parameter "Portamento Down" 39 1 0 163840 0 Program 0 -4 Program 0 0 Program 0 -4 Program 0 115 Program 0 -4 Program 0 257 Program 0 29628 Program 0 106 Program 0 133 Program 0 0 Program 0 0 Program 0 32768 Program 0 32768 Program 0 32768 Program 0 0 Program 0 16384 Program 0 16384 Program 0 16384 Program 0 16384 Program 0 -19206 Program 0 0 Program 0 163840 Program 0 -245760 Program 0 0 Program 0 52 Program 0 10348 Program 0 0 Program 0 2509 Program 0 2 Program 0 14581 Program 0 0 Program 0 0 Program 0 82 Program 0 13173 Program 0 13008 Program 0 2635 Program 0 2 Program 0 -176795 Program 0 -103638 Program 0 29415 Program 0 793290 Program 0 6706 Program 0 2012 Program 0 16384 Program 0 16384 Program 0 0 Program 0 0 Program 0 6 Program 0 -163840 Program 0 8192 Program 0 16384 Program 0 16384 Program 0 8192 Program 0 8192 Program 1 -4 Program 1 0 Program 1 -4 Program 1 115 Program 1 -4 Program 1 257 Program 1 -56365 Program 1 0 Program 1 32768 Program 1 0 Program 1 0 Program 1 32768 Program 1 32768 Program 1 32768 Program 1 0 Program 1 16384 Program 1 16384 Program 1 16384 Program 1 16384 Program 1 -9452 Program 1 15943 Program 1 163840 Program 1 -14233 Program 1 0 Program 1 52 Program 1 10348 Program 1 0 Program 1 2509 Program 1 2 Program 1 20641 Program 1 0 Program 1 0 Program 1 82 Program 1 13173 Program 1 13008 Program 1 2635 Program 1 2 Program 1 -94691 Program 1 -103638 Program 1 40057 Program 1 2457600 Program 1 7413 Program 1 2012 Program 1 0 Program 1 3738 Program 1 -66738 Program 1 16131 Program 1 12 Program 1 163840 Program 1 8192 Program 1 13284 Program 1 8224 Program 1 8192 Program 1 8192 Program 2 -4 Program 2 0 Program 2 -4 Program 2 115 Program 2 -4 Program 2 257 Program 2 23576 Program 2 0 Program 2 2944 Program 2 0 Program 2 0 Program 2 0 Program 2 0 Program 2 0 Program 2 9344 Program 2 0 Program 2 0 Program 2 15677 Program 2 0 Program 2 -19206 Program 2 0 Program 2 163840 Program 2 -245760 Program 2 0 Program 2 52 Program 2 1419 Program 2 0 Program 2 774 Program 2 2 Program 2 14581 Program 2 0 Program 2 0 Program 2 82 Program 2 13173 Program 2 13008 Program 2 2635 Program 2 2 Program 2 -176795 Program 2 -103638 Program 2 29415 Program 2 793290 Program 2 6706 Program 2 2012 Program 2 0 Program 2 16384 Program 2 -81920 Program 2 15104 Program 2 30 Program 2 -92160 Program 2 8192 Program 2 23808 Program 2 8318 Program 2 8192 Program 2 8192 Program 3 -4 Program 3 0 Program 3 -4 Program 3 115 Program 3 -4 Program 3 257 Program 3 29628 Program 3 106 Program 3 129 Program 3 0 Program 3 0 Program 3 32768 Program 3 32768 Program 3 32768 Program 3 0 Program 3 0 Program 3 0 Program 3 0 Program 3 16448 Program 3 45939 Program 3 0 Program 3 -15357 Program 3 -29877 Program 3 0 Program 3 5676 Program 3 5612 Program 3 0 Program 3 1742 Program 3 2 Program 3 0 Program 3 2967 Program 3 0 Program 3 3118 Program 3 8822 Program 3 13008 Program 3 2635 Program 3 2 Program 3 -94691 Program 3 -103638 Program 3 60523 Program 3 2457600 Program 3 6113 Program 3 2012 Program 3 0 Program 3 16384 Program 3 -33280 Program 3 11136 Program 3 30 Program 3 -2560 Program 3 8192 Program 3 32768 Program 3 0 Program 3 8192 Program 3 8192 Program 4 -4 Program 4 0 Program 4 -4 Program 4 115 Program 4 -4 Program 4 257 Program 4 29628 Program 4 106 Program 4 256 Program 4 0 Program 4 0 Program 4 32768 Program 4 32768 Program 4 32768 Program 4 0 Program 4 0 Program 4 0 Program 4 0 Program 4 16448 Program 4 14456 Program 4 14842 Program 4 -863 Program 4 -29877 Program 4 0 Program 4 5676 Program 4 5612 Program 4 0 Program 4 1742 Program 4 2 Program 4 0 Program 4 2967 Program 4 0 Program 4 3118 Program 4 8822 Program 4 13008 Program 4 2635 Program 4 2 Program 4 -94691 Program 4 -103638 Program 4 60523 Program 4 2457600 Program 4 6113 Program 4 2012 Program 4 0 Program 4 16384 Program 4 -33280 Program 4 4352 Program 4 30 Program 4 -2560 Program 4 8192 Program 4 32768 Program 4 0 Program 4 8192 Program 4 8192 Program 5 -4 Program 5 0 Program 5 -4 Program 5 115 Program 5 -4 Program 5 257 Program 5 29628 Program 5 106 Program 5 256 Program 5 0 Program 5 0 Program 5 32768 Program 5 32768 Program 5 32768 Program 5 32768 Program 5 0 Program 5 0 Program 5 0 Program 5 16448 Program 5 14456 Program 5 14842 Program 5 -863 Program 5 -29877 Program 5 0 Program 5 5676 Program 5 5612 Program 5 0 Program 5 1742 Program 5 2 Program 5 0 Program 5 2967 Program 5 0 Program 5 3118 Program 5 8822 Program 5 13008 Program 5 2635 Program 5 2 Program 5 -94691 Program 5 -103638 Program 5 60523 Program 5 2457600 Program 5 6113 Program 5 2012 Program 5 0 Program 5 16384 Program 5 -33280 Program 5 4352 Program 5 30 Program 5 -2560 Program 5 8192 Program 5 32768 Program 5 0 Program 5 8192 Program 5 8192 Program 6 -4 Program 6 0 Program 6 -4 Program 6 115 Program 6 -4 Program 6 257 Program 6 30650 Program 6 106 Program 6 384 Program 6 0 Program 6 0 Program 6 32768 Program 6 32768 Program 6 32768 Program 6 32768 Program 6 0 Program 6 0 Program 6 0 Program 6 16448 Program 6 7389 Program 6 13043 Program 6 -863 Program 6 -29877 Program 6 0 Program 6 7998 Program 6 7482 Program 6 0 Program 6 1742 Program 6 2 Program 6 0 Program 6 2967 Program 6 0 Program 6 3118 Program 6 8822 Program 6 13008 Program 6 2635 Program 6 2 Program 6 -34235 Program 6 -103638 Program 6 73300 Program 6 2457600 Program 6 3913 Program 6 2012 Program 6 0 Program 6 10637 Program 6 -52480 Program 6 15488 Program 6 24 Program 6 -2560 Program 6 8192 Program 6 32768 Program 6 0 Program 6 8192 Program 6 8192 Program 7 -4 Program 7 0 Program 7 -4 Program 7 181 Program 7 -4 Program 7 287 Program 7 30650 Program 7 106 Program 7 1152 Program 7 2304 Program 7 0 Program 7 19328 Program 7 19840 Program 7 19584 Program 7 32768 Program 7 0 Program 7 0 Program 7 0 Program 7 16448 Program 7 13171 Program 7 14842 Program 7 -863 Program 7 -2891 Program 7 0 Program 7 7998 Program 7 7482 Program 7 0 Program 7 1742 Program 7 2 Program 7 0 Program 7 2967 Program 7 0 Program 7 3118 Program 7 8822 Program 7 13008 Program 7 2635 Program 7 2 Program 7 0 Program 7 -92924 Program 7 96531 Program 7 2457600 Program 7 3913 Program 7 2012 Program 7 0 Program 7 7092 Program 7 -5760 Program 7 15232 Program 7 30 Program 7 -2560 Program 7 8192 Program 7 32768 Program 7 0 Program 7 8192 Program 7 8192 Program 8 -4 Program 8 0 Program 8 -4 Program 8 115 Program 8 -4 Program 8 257 Program 8 29628 Program 8 106 Program 8 256 Program 8 0 Program 8 0 Program 8 32768 Program 8 32768 Program 8 32768 Program 8 0 Program 8 0 Program 8 0 Program 8 0 Program 8 0 Program 8 13814 Program 8 0 Program 8 163840 Program 8 -29877 Program 8 0 Program 8 65 Program 8 5225 Program 8 0 Program 8 1742 Program 8 2 Program 8 7611 Program 8 0 Program 8 0 Program 8 66 Program 8 8822 Program 8 13008 Program 8 2635 Program 8 2 Program 8 -151613 Program 8 -103638 Program 8 31484 Program 8 1790013 Program 8 4402 Program 8 2012 Program 8 15895 Program 8 0 Program 8 -33280 Program 8 4352 Program 8 30 Program 8 -2560 Program 8 8192 Program 8 32768 Program 8 0 Program 8 8192 Program 8 8192 Program 9 -4 Program 9 0 Program 9 -4 Program 9 115 Program 9 -4 Program 9 257 Program 9 29628 Program 9 106 Program 9 128 Program 9 0 Program 9 0 Program 9 32768 Program 9 32768 Program 9 32768 Program 9 0 Program 9 0 Program 9 0 Program 9 0 Program 9 14848 Program 9 13814 Program 9 0 Program 9 163840 Program 9 -29877 Program 9 0 Program 9 774 Program 9 5225 Program 9 0 Program 9 1742 Program 9 2 Program 9 7611 Program 9 0 Program 9 0 Program 9 66 Program 9 8822 Program 9 13008 Program 9 2635 Program 9 2 Program 9 -151613 Program 9 -103638 Program 9 31484 Program 9 1790013 Program 9 4402 Program 9 2012 Program 9 0 Program 9 15650 Program 9 -53120 Program 9 9344 Program 9 16 Program 9 -2560 Program 9 8192 Program 9 17280 Program 9 6784 Program 9 8192 Program 9 8192 Program 10 -4 Program 10 0 Program 10 -3 Program 10 115 Program 10 -4 Program 10 257 Program 10 29628 Program 10 106 Program 10 128 Program 10 0 Program 10 0 Program 10 32768 Program 10 32768 Program 10 32768 Program 10 0 Program 10 7168 Program 10 0 Program 10 0 Program 10 0 Program 10 -45230 Program 10 5883 Program 10 163840 Program 10 -29877 Program 10 0 Program 10 903 Program 10 2064 Program 10 0 Program 10 1742 Program 10 2 Program 10 12901 Program 10 0 Program 10 0 Program 10 66 Program 10 8822 Program 10 13008 Program 10 2635 Program 10 2 Program 10 -151613 Program 10 -103638 Program 10 31484 Program 10 1790013 Program 10 4402 Program 10 2012 Program 10 7458 Program 10 15650 Program 10 -37120 Program 10 5504 Program 10 16 Program 10 -2560 Program 10 8192 Program 10 17280 Program 10 6784 Program 10 8192 Program 10 8192 Program 11 -4 Program 11 0 Program 11 -2 Program 11 68 Program 11 -3 Program 11 185 Program 11 29628 Program 11 106 Program 11 128 Program 11 0 Program 11 0 Program 11 32768 Program 11 32768 Program 11 32768 Program 11 0 Program 11 7168 Program 11 0 Program 11 0 Program 11 0 Program 11 -45230 Program 11 5883 Program 11 163840 Program 11 -29877 Program 11 0 Program 11 65 Program 11 1677 Program 11 0 Program 11 1742 Program 11 2 Program 11 12901 Program 11 0 Program 11 0 Program 11 66 Program 11 3978 Program 11 0 Program 11 2635 Program 11 2 Program 11 -151613 Program 11 -103638 Program 11 31484 Program 11 1790013 Program 11 4402 Program 11 2012 Program 11 7458 Program 11 15650 Program 11 -81920 Program 11 13440 Program 11 30 Program 11 -2560 Program 11 8192 Program 11 32768 Program 11 6784 Program 11 8192 Program 11 8192 Program 12 -4 Program 12 0 Program 12 -4 Program 12 115 Program 12 -4 Program 12 257 Program 12 29628 Program 12 106 Program 12 133 Program 12 0 Program 12 0 Program 12 8248 Program 12 8916 Program 12 8025 Program 12 0 Program 12 0 Program 12 0 Program 12 0 Program 12 16384 Program 12 -25157 Program 12 0 Program 12 163840 Program 12 -245760 Program 12 0 Program 12 52 Program 12 10348 Program 12 0 Program 12 2509 Program 12 2 Program 12 14581 Program 12 0 Program 12 0 Program 12 82 Program 12 13173 Program 12 13008 Program 12 2635 Program 12 2 Program 12 -176795 Program 12 -103638 Program 12 29415 Program 12 793290 Program 12 6706 Program 12 2012 Program 12 16384 Program 12 16384 Program 12 0 Program 12 8138 Program 12 6 Program 12 -163840 Program 12 8192 Program 12 0 Program 12 0 Program 12 8192 Program 12 8192 Program 13 -4 Program 13 0 Program 13 -4 Program 13 115 Program 13 -4 Program 13 257 Program 13 29628 Program 13 106 Program 13 133 Program 13 0 Program 13 0 Program 13 7085 Program 13 7306 Program 13 6421 Program 13 0 Program 13 0 Program 13 0 Program 13 0 Program 13 16384 Program 13 -25157 Program 13 0 Program 13 163840 Program 13 -245760 Program 13 0 Program 13 52 Program 13 10348 Program 13 0 Program 13 2509 Program 13 2 Program 13 14581 Program 13 0 Program 13 0 Program 13 82 Program 13 13173 Program 13 13008 Program 13 2635 Program 13 2 Program 13 -176795 Program 13 -103638 Program 13 29415 Program 13 793290 Program 13 6706 Program 13 2012 Program 13 16384 Program 13 16384 Program 13 -71070 Program 13 15082 Program 13 6 Program 13 -163840 Program 13 8192 Program 13 32768 Program 13 0 Program 13 8192 Program 13 8192 PresetName "Lead Synth with Phaser" PresetName "Slow Phaser Pad" PresetName "Phaser Noise" PresetName "Slow Pad with Phaser at high Feedback" PresetName "Slow Bass Pad with Phaser and high Filter Resonance" PresetName "Haunted Castle" PresetName "Haunted Castle II" PresetName "Haunted Castle III" PresetName "Powerful Bass" PresetName "Phaser Bass" PresetName "Phaser and Lowpass Mix" PresetName "Phaser Chimes" PresetName "Soft Strings" PresetName "Soft Strings II" ams-2.0.1/instruments/phaser_instrument_pan_lfo.ams0000664000076400007640000004742210072545655017614 00000000000000Module 35 1 32 186 0 0 FSlider 1 0 0 0 -16384 16384 1 ISlider 1 0 36 1 ISlider 1 1 0 1 ISlider 1 2 0 1 ISlider 1 3 0 1 ISlider 1 4 0 1 Module 34 2 229 23 0 0 ColorP 0 0 2 1 250 200 50 180 180 180 ColorP 1 3 2 1 250 200 50 180 180 180 FSlider 2 0 52 0 0 16384 1 FSlider 2 1 10348 0 0 16384 1 FSlider 2 2 0 0 0 16384 1 FSlider 2 3 2509 0 0 16384 1 FSlider 2 4 0 0 -16384 16384 1 FSlider 2 5 0 0 -16384 16384 1 FSlider 2 6 0 0 -16384 16384 1 FSlider 2 7 0 0 -16384 16384 1 ComboBox 2 0 2 1 ComboBox 2 1 1 1 Module 34 3 229 343 0 0 ColorP 0 0 3 1 250 200 50 180 180 180 ColorP 1 3 3 1 250 200 50 180 180 180 FSlider 3 0 82 0 0 16384 1 FSlider 3 1 13173 0 0 16384 1 FSlider 3 2 13008 0 0 16384 1 FSlider 3 3 2635 0 0 16384 1 FSlider 3 4 0 0 -16384 16384 1 FSlider 3 5 0 0 -16384 16384 1 FSlider 3 6 0 0 -16384 16384 1 FSlider 3 7 0 0 -16384 16384 1 ComboBox 3 0 2 1 ComboBox 3 1 1 1 Module 6 8 449 19 2 blvco Saw-VCO ColorP 0 0 8 45 250 200 50 180 180 180 ColorP 1 0 8 25 250 200 50 180 180 180 FSlider 8 0 115 0 0 545 1 FSlider 8 1 16480 0 0 65536 1 FSlider 8 2 0 0 0 65536 1 FSlider 8 3 8233 0 0 16384 1 LSlider 8 0 -4 1 Module 6 9 449 158 2 blvco Saw-VCO ColorP 0 1 9 45 250 200 50 180 180 180 ColorP 1 0 9 25 250 200 50 180 180 180 FSlider 9 0 257 0 0 545 1 FSlider 9 1 16480 0 0 65536 1 FSlider 9 2 0 0 0 65536 1 FSlider 9 3 8233 0 0 16384 1 LSlider 9 0 -4 1 Module 6 10 448 297 2 blvco Saw-VCO ColorP 0 2 10 45 250 200 50 180 180 180 ColorP 1 0 10 25 250 200 50 180 180 180 FSlider 10 0 0 0 0 545 1 FSlider 10 1 16480 0 0 65536 1 FSlider 10 2 0 0 0 65536 1 FSlider 10 3 8233 0 0 16384 1 LSlider 10 0 -4 1 Module 2 12 805 558 0 0 ColorP 0 0 12 3 250 200 50 180 180 180 ColorP 1 0 12 30 250 200 50 180 180 180 ColorP 2 0 12 23 250 200 50 180 180 180 ColorP 3 0 12 37 250 200 50 180 180 180 FSlider 12 0 0 0 0 163840 1 FSlider 12 1 0 0 0 16384 1 FSlider 12 2 16384 0 0 32768 1 FSlider 12 3 16384 0 0 32768 1 FSlider 12 4 16384 0 0 32768 1 Module 8 13 386 613 4 0 ColorP 0 0 13 2 250 200 50 180 180 180 ColorP 1 0 13 8 250 200 50 180 180 180 ColorP 2 0 13 34 250 200 50 180 180 180 ColorP 3 1 13 26 250 200 50 180 180 180 FSlider 13 0 16384 0 0 32768 1 FSlider 13 1 14581 0 0 32768 1 FSlider 13 2 0 0 0 32768 1 FSlider 13 3 0 0 0 32768 1 FSlider 13 4 133 0 0 32768 1 Module 8 14 735 168 4 0 ColorP 0 0 14 8 250 200 50 180 180 180 ColorP 1 0 14 9 250 200 50 180 180 180 ColorP 2 0 14 10 250 200 50 180 180 180 ColorP 3 1 14 32 250 200 50 180 180 180 FSlider 14 0 16384 0 0 32768 1 FSlider 14 1 32768 0 0 32768 1 FSlider 14 2 32768 0 0 32768 1 FSlider 14 3 32768 0 0 32768 1 FSlider 14 4 0 0 0 32768 1 Module 23 19 1137 478 0 0 ColorP 0 0 19 21 250 200 50 180 180 180 ColorP 1 1 19 21 250 200 50 180 180 180 FSlider 19 0 2600 0 0 16384 1 FSlider 19 1 8192 0 0 16384 1 FSlider 19 2 8192 0 0 16384 1 ComboBox 19 0 0 1 Module 7 20 1135 375 0 0 ColorP 0 0 20 21 250 200 50 180 180 180 ColorP 1 1 20 21 250 200 50 180 180 180 FSlider 20 0 2697 0 0 16384 1 FSlider 20 1 8192 0 0 16384 1 FSlider 20 2 8192 0 0 16384 1 ComboBox 20 0 0 1 Module 6 21 850 377 0 g2reverb G2reverb ColorP 0 0 21 42 250 200 50 180 180 180 ColorP 1 1 21 42 250 200 50 180 180 180 FSlider 21 0 793290 0 163840 2457600 1 FSlider 21 1 29415 0 16384 327680 1 FSlider 21 2 6706 0 0 16384 1 FSlider 21 3 2012 0 0 16384 1 FSlider 21 4 0 0 -1310720 0 1 FSlider 21 5 -176795 0 -1310720 0 1 FSlider 21 6 -103638 0 -1310720 0 1 Module 6 23 878 167 2 mvclpf24 Mvclpf-3 ColorP 0 0 23 14 250 200 50 180 180 180 ColorP 1 3 23 45 250 200 50 180 180 180 ColorP 2 0 23 13 250 200 50 180 180 180 ColorP 3 0 23 28 250 200 50 180 180 180 FSlider 23 0 163840 0 -172155 163840 1 FSlider 23 1 -19206 0 -81920 81920 1 FSlider 23 2 115934 0 0 163840 1 FSlider 23 3 0 0 0 16384 1 FSlider 23 4 9159 0 0 16384 1 FSlider 23 5 -245760 0 -245760 245760 1 FSMIDI 23 1 10 0 1 Module 8 25 204 697 2 0 ColorP 0 5 25 1 250 200 50 180 180 180 ColorP 1 1 25 26 250 200 50 180 180 180 FSlider 25 0 16384 0 0 32768 1 FSlider 25 1 16384 0 0 32768 1 FSlider 25 2 106 0 0 3283 1 Module 3 26 29 472 0 0 FSlider 26 0 29628 1 -75451 75451 1 FSlider 26 1 0 0 0 102940 1 Module 8 28 510 553 2 0 ColorP 0 0 28 2 250 200 50 180 180 180 ColorP 1 1 28 26 250 200 50 180 180 180 FSlider 28 0 16384 0 0 32768 1 FSlider 28 1 0 0 0 32768 1 FSlider 28 2 0 0 0 16384 1 Module 5 30 614 635 0 0 ColorP 0 1 30 26 250 200 50 180 180 180 ColorP 1 0 30 3 250 200 50 180 180 180 FSlider 30 0 8192 0 0 81920 1 Module 14 32 715 372 0 0 FSlider 32 0 81920 0 0 163840 1 FSlider 32 1 8192 0 0 16384 1 Module 13 34 243 553 0 0 ColorP 0 0 34 2 250 200 50 180 180 180 Module 6 37 873 18 2 cs_phaser Phaser1 ColorP 0 0 37 38 250 200 50 180 180 180 ColorP 1 0 37 40 250 200 50 180 180 180 FSlider 37 0 -163840 0 -655360 163840 1 FSlider 37 1 0 0 -81920 81920 1 FSlider 37 2 0 0 0 163840 1 FSlider 37 3 0 0 0 163840 1 FSlider 37 4 0 0 -16384 16384 1 FSlider 37 5 8192 0 -16384 16384 1 LSlider 37 0 6 1 Module 8 38 739 13 4 0 ColorP 0 0 38 8 250 200 50 180 180 180 ColorP 1 0 38 9 250 200 50 180 180 180 ColorP 2 0 38 14 250 200 50 180 180 180 ColorP 3 0 38 23 250 200 50 180 180 180 FSlider 38 0 16384 0 0 32768 1 FSlider 38 1 16384 0 0 32768 1 FSlider 38 2 16384 0 0 32768 1 FSlider 38 3 16384 0 0 32768 1 FSlider 38 4 16384 0 0 32768 1 Module 15 39 245 215 0 0 ColorP 0 1 39 1 250 200 50 180 180 180 FSlider 39 0 8192 0 0 163840 1 FSlider 39 1 8192 0 0 163840 1 Module 8 40 513 432 2 0 ColorP 0 0 40 13 250 200 50 180 180 180 ColorP 1 0 40 39 250 200 50 180 180 180 FSlider 40 0 16384 0 0 32768 1 FSlider 40 1 16384 0 0 32768 1 FSlider 40 2 16384 0 0 32768 1 Module 37 42 968 561 0 0 ColorP 0 0 42 12 250 200 50 180 180 180 ColorP 1 1 42 43 250 200 50 180 180 180 FSlider 42 0 0 0 -16384 16384 1 FSlider 42 1 16373 0 0 32768 1 ComboBox 42 0 0 1 Module 3 43 34 662 0 0 ColorP 0 3 43 1 250 200 50 180 180 180 FSlider 43 0 10478 1 -75451 75451 1 FSlider 43 1 0 0 0 102940 1 Module 42 45 24 15 4 0 ColorP 0 1 45 1 250 200 50 180 180 180 FSlider 45 0 -86807 1 -150902 -40582 1 FSlider 45 1 -75451 1 -75451 0 1 FSlider 45 2 0 1 -75451 37725 1 FSlider 45 3 -86807 1 -150902 -40582 1 FSlider 45 4 -75451 1 -75451 0 1 FSlider 45 5 17999 1 -75451 37725 1 ComboBox 45 0 0 1 ComboBox 45 1 1 1 CheckBox 45 0 0 1 Tab "Oscillators / LFO / Mixer / Phaser" Tab "Filter / Envelopes / Reverb" Frame "Oscillators" 0 Parameter "VCO 1 Octave" 10 0 Parameter "VCO 1 Tune" 10 1 0 545 0 Parameter "VCO 2 Octave" 8 0 Parameter "VCO 2 Tune" 8 1 0 545 0 Parameter "VCO 3 Octave" 9 0 Parameter "VCO 3 Tune" 9 1 0 545 0 Frame "LFO" 0 Parameter "Frequency" 26 0 -75451 75448 1 Parameter "Pitch Modulation" 25 2 0 3277 0 Parameter "Filter Modulation" 13 4 0 32768 0 Parameter "Resonance Modulation" 28 2 0 16384 0 Parameter "Amplitude Modulation" 12 1 0 16384 0 Frame "Mixer" 0 Parameter "VCO 1 Level" 14 1 0 32768 0 Parameter "VCO 2 Level" 14 2 0 32768 0 Parameter "VCO 3 Level" 14 3 0 32768 0 Parameter "Noise" 14 4 0 32768 0 Parameter "VCO 1 to Phaser Input" 38 1 0 32768 0 Parameter "VCO 2 to Phaser Input" 38 2 0 32768 0 Parameter "Mix to Phaser Input" 38 3 0 32768 0 Parameter "Filter Output to Phaser Input" 38 4 0 32768 0 Frame "Filter" 1 Parameter "Cutoff Frequency" 23 1 -81920 81920 0 Parameter "Resonance" 23 3 0 16384 0 Parameter "Input gain (dB)" 23 0 -172155 163840 0 Parameter "Output gain (dB)" 23 5 -245760 245760 0 Parameter "VCO 1 to Filter Cutoff" 13 2 0 32768 0 Frame "Filter Envelope" 1 Parameter "Attack" 2 0 0 16384 0 Parameter "Decay" 2 1 0 16384 0 Parameter "Sustain" 2 2 0 16384 0 Parameter "Release" 2 3 0 16384 0 Parameter "Time Scale" 2 8 Parameter "Envelope to Filter Cutoff" 13 1 0 32768 0 Parameter "Inverse Envelope to Filter Cutoff" 13 3 0 32768 0 Parameter "Envelope to Resonance" 28 1 0 16384 0 Frame "Volume Envelope" 1 Parameter "Attack" 3 0 0 16384 0 Parameter "Decay" 3 1 0 16384 0 Parameter "Sustain" 3 2 0 16384 0 Parameter "Release" 3 3 0 16384 0 Parameter "Time Scale" 3 8 Frame "Reverb" 1 Parameter "Early Reflections" 21 5 -1310720 0 0 Parameter "Reverb Tail" 21 6 -1310720 0 0 Parameter "Reverb Time" 21 1 16384 327680 0 Parameter "Room Size" 21 0 163840 2457600 0 Parameter "Input Bandwidth" 21 2 0 16384 0 Parameter "Damping" 21 3 0 16384 0 Parameter "Input from Filter" 12 2 0 32768 0 Parameter "Input from Phaser" 12 3 0 32768 0 Frame "Phaser" 0 Parameter "Frequency" 37 2 -81920 81920 0 Parameter "Feedback gain" 37 5 -16384 16384 0 Parameter "Sections" 37 1 Parameter "Input gain (dB)" 37 0 -655360 163840 0 Parameter "Output mix" 37 6 -16384 16384 0 Parameter "Phaser Modulation Amount" 40 1 0 32768 0 Parameter "Pitch to Phaser Frequency" 40 2 0 32768 0 Parameter "Portamento Up" 39 0 0 163840 0 Parameter "Portamento Down" 39 1 0 163840 0 Program 0 -4 Program 0 0 Program 0 -4 Program 0 115 Program 0 -4 Program 0 257 Program 0 29628 Program 0 106 Program 0 133 Program 0 0 Program 0 0 Program 0 32768 Program 0 32768 Program 0 32768 Program 0 0 Program 0 16384 Program 0 16384 Program 0 16384 Program 0 16384 Program 0 -19206 Program 0 0 Program 0 163840 Program 0 -245760 Program 0 0 Program 0 52 Program 0 10348 Program 0 0 Program 0 2509 Program 0 2 Program 0 14581 Program 0 0 Program 0 0 Program 0 82 Program 0 13173 Program 0 13008 Program 0 2635 Program 0 2 Program 0 -176795 Program 0 -103638 Program 0 29415 Program 0 793290 Program 0 6706 Program 0 2012 Program 0 16384 Program 0 16384 Program 0 0 Program 0 0 Program 0 6 Program 0 -163840 Program 0 8192 Program 0 16384 Program 0 16384 Program 0 8192 Program 0 8192 Program 1 -4 Program 1 0 Program 1 -4 Program 1 115 Program 1 -4 Program 1 257 Program 1 -56365 Program 1 0 Program 1 32768 Program 1 0 Program 1 0 Program 1 32768 Program 1 32768 Program 1 32768 Program 1 0 Program 1 16384 Program 1 16384 Program 1 16384 Program 1 16384 Program 1 -9452 Program 1 15943 Program 1 163840 Program 1 -14233 Program 1 0 Program 1 52 Program 1 10348 Program 1 0 Program 1 2509 Program 1 2 Program 1 20641 Program 1 0 Program 1 0 Program 1 82 Program 1 13173 Program 1 13008 Program 1 2635 Program 1 2 Program 1 -94691 Program 1 -103638 Program 1 40057 Program 1 2457600 Program 1 7413 Program 1 2012 Program 1 0 Program 1 3738 Program 1 -66738 Program 1 16131 Program 1 12 Program 1 163840 Program 1 8192 Program 1 13284 Program 1 8224 Program 1 8192 Program 1 8192 Program 2 -4 Program 2 0 Program 2 -4 Program 2 115 Program 2 -4 Program 2 257 Program 2 23576 Program 2 0 Program 2 2944 Program 2 0 Program 2 0 Program 2 0 Program 2 0 Program 2 0 Program 2 9344 Program 2 0 Program 2 0 Program 2 15677 Program 2 0 Program 2 -19206 Program 2 0 Program 2 163840 Program 2 -245760 Program 2 0 Program 2 52 Program 2 1419 Program 2 0 Program 2 774 Program 2 2 Program 2 14581 Program 2 0 Program 2 0 Program 2 82 Program 2 13173 Program 2 13008 Program 2 2635 Program 2 2 Program 2 -176795 Program 2 -103638 Program 2 29415 Program 2 793290 Program 2 6706 Program 2 2012 Program 2 0 Program 2 16384 Program 2 -81920 Program 2 15104 Program 2 30 Program 2 -92160 Program 2 8192 Program 2 23808 Program 2 8318 Program 2 8192 Program 2 8192 Program 3 -4 Program 3 0 Program 3 -4 Program 3 115 Program 3 -4 Program 3 257 Program 3 29628 Program 3 106 Program 3 129 Program 3 0 Program 3 0 Program 3 32768 Program 3 32768 Program 3 32768 Program 3 0 Program 3 0 Program 3 0 Program 3 0 Program 3 16448 Program 3 45939 Program 3 0 Program 3 -15357 Program 3 -29877 Program 3 0 Program 3 5676 Program 3 5612 Program 3 0 Program 3 1742 Program 3 2 Program 3 0 Program 3 2967 Program 3 0 Program 3 3118 Program 3 8822 Program 3 13008 Program 3 2635 Program 3 2 Program 3 -94691 Program 3 -103638 Program 3 60523 Program 3 2457600 Program 3 6113 Program 3 2012 Program 3 0 Program 3 16384 Program 3 -33280 Program 3 11136 Program 3 30 Program 3 -2560 Program 3 8192 Program 3 32768 Program 3 0 Program 3 8192 Program 3 8192 Program 4 -4 Program 4 0 Program 4 -4 Program 4 115 Program 4 -4 Program 4 257 Program 4 29628 Program 4 106 Program 4 256 Program 4 0 Program 4 0 Program 4 32768 Program 4 32768 Program 4 32768 Program 4 0 Program 4 0 Program 4 0 Program 4 0 Program 4 16448 Program 4 14456 Program 4 14842 Program 4 -863 Program 4 -29877 Program 4 0 Program 4 5676 Program 4 5612 Program 4 0 Program 4 1742 Program 4 2 Program 4 0 Program 4 2967 Program 4 0 Program 4 3118 Program 4 8822 Program 4 13008 Program 4 2635 Program 4 2 Program 4 -94691 Program 4 -103638 Program 4 60523 Program 4 2457600 Program 4 6113 Program 4 2012 Program 4 0 Program 4 16384 Program 4 -33280 Program 4 4352 Program 4 30 Program 4 -2560 Program 4 8192 Program 4 32768 Program 4 0 Program 4 8192 Program 4 8192 Program 5 -4 Program 5 0 Program 5 -4 Program 5 115 Program 5 -4 Program 5 257 Program 5 29628 Program 5 106 Program 5 256 Program 5 0 Program 5 0 Program 5 32768 Program 5 32768 Program 5 32768 Program 5 32768 Program 5 0 Program 5 0 Program 5 0 Program 5 16448 Program 5 14456 Program 5 14842 Program 5 -863 Program 5 -29877 Program 5 0 Program 5 5676 Program 5 5612 Program 5 0 Program 5 1742 Program 5 2 Program 5 0 Program 5 2967 Program 5 0 Program 5 3118 Program 5 8822 Program 5 13008 Program 5 2635 Program 5 2 Program 5 -94691 Program 5 -103638 Program 5 60523 Program 5 2457600 Program 5 6113 Program 5 2012 Program 5 0 Program 5 16384 Program 5 -33280 Program 5 4352 Program 5 30 Program 5 -2560 Program 5 8192 Program 5 32768 Program 5 0 Program 5 8192 Program 5 8192 Program 6 -4 Program 6 0 Program 6 -4 Program 6 115 Program 6 -4 Program 6 257 Program 6 30650 Program 6 106 Program 6 384 Program 6 0 Program 6 0 Program 6 32768 Program 6 32768 Program 6 32768 Program 6 32768 Program 6 0 Program 6 0 Program 6 0 Program 6 16448 Program 6 7389 Program 6 13043 Program 6 -863 Program 6 -29877 Program 6 0 Program 6 7998 Program 6 7482 Program 6 0 Program 6 1742 Program 6 2 Program 6 0 Program 6 2967 Program 6 0 Program 6 3118 Program 6 8822 Program 6 13008 Program 6 2635 Program 6 2 Program 6 -34235 Program 6 -103638 Program 6 73300 Program 6 2457600 Program 6 3913 Program 6 2012 Program 6 0 Program 6 10637 Program 6 -52480 Program 6 15488 Program 6 24 Program 6 -2560 Program 6 8192 Program 6 32768 Program 6 0 Program 6 8192 Program 6 8192 Program 7 -4 Program 7 0 Program 7 -4 Program 7 181 Program 7 -4 Program 7 287 Program 7 30650 Program 7 106 Program 7 1152 Program 7 2304 Program 7 0 Program 7 19328 Program 7 19840 Program 7 19584 Program 7 32768 Program 7 0 Program 7 0 Program 7 0 Program 7 16448 Program 7 13171 Program 7 14842 Program 7 -863 Program 7 -2891 Program 7 0 Program 7 7998 Program 7 7482 Program 7 0 Program 7 1742 Program 7 2 Program 7 0 Program 7 2967 Program 7 0 Program 7 3118 Program 7 8822 Program 7 13008 Program 7 2635 Program 7 2 Program 7 0 Program 7 -92924 Program 7 96531 Program 7 2457600 Program 7 3913 Program 7 2012 Program 7 0 Program 7 7092 Program 7 -5760 Program 7 15232 Program 7 30 Program 7 -2560 Program 7 8192 Program 7 32768 Program 7 0 Program 7 8192 Program 7 8192 Program 8 -4 Program 8 0 Program 8 -4 Program 8 115 Program 8 -4 Program 8 257 Program 8 29628 Program 8 106 Program 8 256 Program 8 0 Program 8 0 Program 8 32768 Program 8 32768 Program 8 32768 Program 8 0 Program 8 0 Program 8 0 Program 8 0 Program 8 0 Program 8 13814 Program 8 0 Program 8 163840 Program 8 -29877 Program 8 0 Program 8 65 Program 8 5225 Program 8 0 Program 8 1742 Program 8 2 Program 8 7611 Program 8 0 Program 8 0 Program 8 66 Program 8 8822 Program 8 13008 Program 8 2635 Program 8 2 Program 8 -151613 Program 8 -103638 Program 8 31484 Program 8 1790013 Program 8 4402 Program 8 2012 Program 8 15895 Program 8 0 Program 8 -33280 Program 8 4352 Program 8 30 Program 8 -2560 Program 8 8192 Program 8 32768 Program 8 0 Program 8 8192 Program 8 8192 Program 9 -4 Program 9 0 Program 9 -4 Program 9 115 Program 9 -4 Program 9 257 Program 9 29628 Program 9 106 Program 9 128 Program 9 0 Program 9 0 Program 9 32768 Program 9 32768 Program 9 32768 Program 9 0 Program 9 0 Program 9 0 Program 9 0 Program 9 14848 Program 9 13814 Program 9 0 Program 9 163840 Program 9 -29877 Program 9 0 Program 9 774 Program 9 5225 Program 9 0 Program 9 1742 Program 9 2 Program 9 7611 Program 9 0 Program 9 0 Program 9 66 Program 9 8822 Program 9 13008 Program 9 2635 Program 9 2 Program 9 -151613 Program 9 -103638 Program 9 31484 Program 9 1790013 Program 9 4402 Program 9 2012 Program 9 0 Program 9 15650 Program 9 -53120 Program 9 9344 Program 9 16 Program 9 -2560 Program 9 8192 Program 9 17280 Program 9 6784 Program 9 8192 Program 9 8192 Program 10 -4 Program 10 0 Program 10 -3 Program 10 115 Program 10 -4 Program 10 257 Program 10 29628 Program 10 106 Program 10 128 Program 10 0 Program 10 0 Program 10 32768 Program 10 32768 Program 10 32768 Program 10 0 Program 10 7168 Program 10 0 Program 10 0 Program 10 0 Program 10 -45230 Program 10 5883 Program 10 163840 Program 10 -29877 Program 10 0 Program 10 903 Program 10 2064 Program 10 0 Program 10 1742 Program 10 2 Program 10 12901 Program 10 0 Program 10 0 Program 10 66 Program 10 8822 Program 10 13008 Program 10 2635 Program 10 2 Program 10 -151613 Program 10 -103638 Program 10 31484 Program 10 1790013 Program 10 4402 Program 10 2012 Program 10 7458 Program 10 15650 Program 10 -37120 Program 10 5504 Program 10 16 Program 10 -2560 Program 10 8192 Program 10 17280 Program 10 6784 Program 10 8192 Program 10 8192 Program 11 -4 Program 11 0 Program 11 -2 Program 11 68 Program 11 -3 Program 11 185 Program 11 29628 Program 11 106 Program 11 128 Program 11 0 Program 11 0 Program 11 32768 Program 11 32768 Program 11 32768 Program 11 0 Program 11 7168 Program 11 0 Program 11 0 Program 11 0 Program 11 -45230 Program 11 5883 Program 11 163840 Program 11 -29877 Program 11 0 Program 11 65 Program 11 1677 Program 11 0 Program 11 1742 Program 11 2 Program 11 12901 Program 11 0 Program 11 0 Program 11 66 Program 11 3978 Program 11 0 Program 11 2635 Program 11 2 Program 11 -151613 Program 11 -103638 Program 11 31484 Program 11 1790013 Program 11 4402 Program 11 2012 Program 11 7458 Program 11 15650 Program 11 -81920 Program 11 13440 Program 11 30 Program 11 -2560 Program 11 8192 Program 11 32768 Program 11 6784 Program 11 8192 Program 11 8192 Program 12 -4 Program 12 0 Program 12 -4 Program 12 115 Program 12 -4 Program 12 257 Program 12 29628 Program 12 106 Program 12 133 Program 12 0 Program 12 0 Program 12 8248 Program 12 8916 Program 12 8025 Program 12 0 Program 12 0 Program 12 0 Program 12 0 Program 12 16384 Program 12 -25157 Program 12 0 Program 12 163840 Program 12 -245760 Program 12 0 Program 12 52 Program 12 10348 Program 12 0 Program 12 2509 Program 12 2 Program 12 14581 Program 12 0 Program 12 0 Program 12 82 Program 12 13173 Program 12 13008 Program 12 2635 Program 12 2 Program 12 -176795 Program 12 -103638 Program 12 29415 Program 12 793290 Program 12 6706 Program 12 2012 Program 12 16384 Program 12 16384 Program 12 0 Program 12 8138 Program 12 6 Program 12 -163840 Program 12 8192 Program 12 0 Program 12 0 Program 12 8192 Program 12 8192 Program 13 -4 Program 13 0 Program 13 -4 Program 13 115 Program 13 -4 Program 13 257 Program 13 29628 Program 13 106 Program 13 133 Program 13 0 Program 13 0 Program 13 7085 Program 13 7306 Program 13 6421 Program 13 0 Program 13 0 Program 13 0 Program 13 0 Program 13 16384 Program 13 -25157 Program 13 0 Program 13 163840 Program 13 -245760 Program 13 0 Program 13 52 Program 13 10348 Program 13 0 Program 13 2509 Program 13 2 Program 13 14581 Program 13 0 Program 13 0 Program 13 82 Program 13 13173 Program 13 13008 Program 13 2635 Program 13 2 Program 13 -176795 Program 13 -103638 Program 13 29415 Program 13 793290 Program 13 6706 Program 13 2012 Program 13 16384 Program 13 16384 Program 13 -71070 Program 13 15082 Program 13 6 Program 13 -163840 Program 13 8192 Program 13 32768 Program 13 0 Program 13 8192 Program 13 8192 PresetName "Lead Synth with Phaser" PresetName "Slow Phaser Pad" PresetName "Phaser Noise" PresetName "Slow Pad with Phaser at high Feedback" PresetName "Slow Bass Pad with Phaser and high Filter Resonance" PresetName "Haunted Castle" PresetName "Haunted Castle II" PresetName "Haunted Castle III" PresetName "Powerful Bass" PresetName "Phaser Bass" PresetName "Phaser and Lowpass Mix" PresetName "Phaser Chimes" PresetName "Soft Strings" PresetName "Soft Strings II" ams-2.0.1/instruments/miniams_vcenv2.ams0000664000076400007640000001567510047700634015261 00000000000000Module 35 1 22 174 0 0 FSlider 1 0 0 0 -16384 16384 1 ISlider 1 0 36 1 ISlider 1 1 0 1 ISlider 1 2 0 1 ISlider 1 3 0 1 ISlider 1 4 0 1 Module 38 2 295 20 0 0 ColorP 0 0 2 1 250 200 50 180 180 180 ColorP 1 3 2 1 250 200 50 180 180 180 ColorP 2 2 2 1 250 200 50 180 180 180 ColorP 3 2 2 1 250 200 50 180 180 180 ColorP 4 2 2 1 250 200 50 180 180 180 ColorP 5 2 2 1 250 200 50 180 180 180 FSlider 2 0 652 0 -131072 131072 1 FSlider 2 1 9781 0 -131072 131072 1 FSlider 2 2 0 0 0 16384 1 FSlider 2 3 2509 0 -131072 131072 1 FSlider 2 4 -67166 0 -131072 131072 1 FSlider 2 5 -59341 0 -131072 131072 1 FSlider 2 6 16384 0 0 16384 1 FSlider 2 7 43691 0 -131072 131072 1 Module 38 3 308 306 0 0 ColorP 0 0 3 1 250 200 50 180 180 180 ColorP 1 3 3 1 250 200 50 180 180 180 ColorP 2 2 3 1 250 200 50 180 180 180 ColorP 3 2 3 1 250 200 50 180 180 180 ColorP 4 2 3 1 250 200 50 180 180 180 ColorP 5 2 3 1 250 200 50 180 180 180 FSlider 3 0 -652 0 -131072 131072 1 FSlider 3 1 9781 0 -131072 131072 1 FSlider 3 2 11738 0 0 16384 1 FSlider 3 3 2635 0 -131072 131072 1 FSlider 3 4 -74991 0 -131072 131072 1 FSlider 3 5 -60645 0 -131072 131072 1 FSlider 3 6 16384 0 0 16384 1 FSlider 3 7 44995 0 -131072 131072 1 Module 6 8 449 19 2 blvco Saw-VCO ColorP 0 1 8 1 250 200 50 180 180 180 ColorP 1 0 8 25 250 200 50 180 180 180 FSlider 8 0 26 0 0 545 1 FSlider 8 1 16480 0 0 65536 1 FSlider 8 2 0 0 0 65536 1 FSlider 8 3 8233 0 0 16384 1 LSlider 8 0 -3 1 Module 6 9 449 158 2 blvco Saw-VCO ColorP 0 1 9 1 250 200 50 180 180 180 ColorP 1 0 9 25 250 200 50 180 180 180 FSlider 9 0 81 0 0 545 1 FSlider 9 1 16480 0 0 65536 1 FSlider 9 2 0 0 0 65536 1 FSlider 9 3 8233 0 0 16384 1 LSlider 9 0 -1 1 Module 6 10 448 297 2 blvco Saw-VCO ColorP 0 1 10 1 250 200 50 180 180 180 ColorP 1 0 10 25 250 200 50 180 180 180 FSlider 10 0 0 0 0 545 1 FSlider 10 1 16480 0 0 65536 1 FSlider 10 2 0 0 0 65536 1 FSlider 10 3 8233 0 0 16384 1 LSlider 10 0 -4 1 Module 2 12 818 492 0 0 ColorP 0 0 12 3 250 200 50 180 180 180 ColorP 1 0 12 30 250 200 50 180 180 180 ColorP 2 0 12 23 250 200 50 180 180 180 FSlider 12 0 0 0 0 163840 1 FSlider 12 1 0 0 0 16384 1 FSlider 12 2 16384 0 0 32768 1 FSlider 12 3 16384 0 0 32768 1 FSlider 12 4 16384 0 0 32768 1 Module 8 13 386 613 4 0 ColorP 0 0 13 2 250 200 50 180 180 180 ColorP 1 0 13 8 250 200 50 180 180 180 ColorP 2 0 13 34 250 200 50 180 180 180 ColorP 3 1 13 26 250 200 50 180 180 180 FSlider 13 0 16384 0 0 32768 1 FSlider 13 1 12229 0 0 32768 1 FSlider 13 2 0 0 0 32768 1 FSlider 13 3 0 0 0 32768 1 FSlider 13 4 133 0 0 32768 1 Module 8 14 773 123 4 0 ColorP 0 0 14 8 250 200 50 180 180 180 ColorP 1 0 14 9 250 200 50 180 180 180 ColorP 2 0 14 10 250 200 50 180 180 180 ColorP 3 1 14 32 250 200 50 180 180 180 FSlider 14 0 16384 0 0 32768 1 FSlider 14 1 32768 0 0 32768 1 FSlider 14 2 32768 0 0 32768 1 FSlider 14 3 32768 0 0 32768 1 FSlider 14 4 0 0 0 32768 1 Module 23 19 977 585 0 0 ColorP 0 0 19 21 250 200 50 180 180 180 ColorP 1 1 19 21 250 200 50 180 180 180 FSlider 19 0 3265 0 0 16384 1 FSlider 19 1 8192 0 0 16384 1 FSlider 19 2 8192 0 0 16384 1 ComboBox 19 0 0 1 Module 7 20 809 658 0 0 ColorP 0 0 20 21 250 200 50 180 180 180 ColorP 1 1 20 21 250 200 50 180 180 180 FSlider 20 0 3304 0 0 16384 1 FSlider 20 1 8192 0 0 16384 1 FSlider 20 2 8192 0 0 16384 1 ComboBox 20 0 0 1 Module 6 21 850 377 0 g2reverb G2reverb ColorP 0 0 21 12 250 200 50 180 180 180 ColorP 1 0 21 12 250 200 50 180 180 180 FSlider 21 0 793290 0 163840 2457600 1 FSlider 21 1 29415 0 16384 327680 1 FSlider 21 2 5563 0 0 16384 1 FSlider 21 3 2012 0 0 16384 1 FSlider 21 4 0 0 -1310720 0 1 FSlider 21 5 -585252 0 -1310720 0 1 FSlider 21 6 -469421 0 -1310720 0 1 Module 6 23 878 167 2 mvclpf24 Mvclpf-3 ColorP 0 0 23 14 250 200 50 180 180 180 ColorP 1 1 23 1 250 200 50 180 180 180 ColorP 2 0 23 13 250 200 50 180 180 180 ColorP 3 0 23 28 250 200 50 180 180 180 FSlider 23 0 -12999 0 -172155 163840 1 FSlider 23 1 -30181 0 -81920 81920 1 FSlider 23 2 115934 0 0 163840 1 FSlider 23 3 0 0 0 16384 1 FSlider 23 4 9159 0 0 16384 1 FSlider 23 5 -15287 0 -245760 245760 1 FSMIDI 23 1 10 0 1 Module 8 25 204 697 2 0 ColorP 0 5 25 1 250 200 50 180 180 180 ColorP 1 1 25 26 250 200 50 180 180 180 FSlider 25 0 16384 0 0 32768 1 FSlider 25 1 16384 0 0 32768 1 FSlider 25 2 34 0 0 3283 1 Module 3 26 29 472 0 0 FSlider 26 0 29628 1 -75451 75451 1 FSlider 26 1 0 0 0 102940 1 Module 8 28 540 501 2 0 ColorP 0 0 28 2 250 200 50 180 180 180 ColorP 1 1 28 26 250 200 50 180 180 180 FSlider 28 0 16384 0 0 32768 1 FSlider 28 1 0 0 0 32768 1 FSlider 28 2 0 0 0 16384 1 Module 5 30 611 642 0 0 ColorP 0 1 30 26 250 200 50 180 180 180 ColorP 1 0 30 3 250 200 50 180 180 180 FSlider 30 0 8192 0 0 81920 1 Module 14 32 715 372 0 0 FSlider 32 0 81920 0 0 163840 1 FSlider 32 1 8192 0 0 16384 1 Module 13 34 243 553 0 0 ColorP 0 0 34 2 250 200 50 180 180 180 Tab "Oscillators / LFO / Mixer" Tab "Filter / Envelopes / Reverb" Frame "Oscillators" 0 Parameter "VCO 1 Octave" 10 0 Parameter "VCO 1 Tune" 10 1 0 545 0 Parameter "VCO 2 Octave" 8 0 Parameter "VCO 2 Tune" 8 1 0 545 0 Parameter "VCO 3 Octave" 9 0 Parameter "VCO 3 Tune" 9 1 0 545 0 Frame "LFO" 0 Parameter "Frequency" 26 0 -75451 75448 1 Parameter "Pitch Modulation" 25 2 0 3277 0 Parameter "Filter Modulation" 13 4 0 32768 0 Parameter "Resonance Modulation" 28 2 0 16384 0 Parameter "Amplitude Modulation" 12 1 0 16384 0 Frame "Mixer" 0 Parameter "VCO 1 Level" 14 1 0 32768 0 Parameter "VCO 2 Level" 14 2 0 32768 0 Parameter "VCO 3 Level" 14 3 0 32768 0 Parameter "Noise" 14 4 0 32768 0 Frame "Filter" 1 Parameter "Cutoff Frequency" 23 1 -81920 81920 0 Parameter "Resonance" 23 3 0 16384 0 Parameter "Input gain (dB)" 23 0 -172155 163840 0 Parameter "Output gain (dB)" 23 5 -245760 245760 0 Parameter "VCO 1 to Filter Cutoff" 13 2 0 32768 0 Frame "Filter Envelope" 1 Parameter "Attack" 2 0 -131072 131072 0 Parameter "Decay" 2 1 -131072 131072 0 Parameter "Sustain" 2 2 0 16384 0 Parameter "Release" 2 3 -131072 131072 0 Parameter "Envelope to Filter Cutoff" 13 1 0 32768 0 Parameter "Inverse Envelope to Filter Cutoff" 13 3 0 32768 0 Parameter "Envelope to Resonance" 28 1 0 16384 0 Frame "Volume Envelope" 1 Parameter "Attack" 3 0 -131072 131072 0 Parameter "Decay" 3 1 -131072 131072 0 Parameter "Sustain" 3 2 0 16384 0 Parameter "Release" 3 3 -131072 131072 0 Frame "Reverb" 1 Parameter "Early Reflections" 21 5 -1310720 0 0 Parameter "Reverb Tail" 21 6 -1310720 0 0 Parameter "Reverb Time" 21 1 16384 327680 0 Parameter "Room Size" 21 0 163840 2457600 0 Parameter "Input Bandwidth" 21 2 0 16384 0 Parameter "Damping" 21 3 0 16384 0 Program 0 -4 Program 0 0 Program 0 -3 Program 0 26 Program 0 -1 Program 0 81 Program 0 29628 Program 0 34 Program 0 133 Program 0 0 Program 0 0 Program 0 32768 Program 0 32768 Program 0 32768 Program 0 0 Program 0 -30181 Program 0 0 Program 0 -12999 Program 0 -15287 Program 0 0 Program 0 652 Program 0 9781 Program 0 0 Program 0 2509 Program 0 12229 Program 0 0 Program 0 0 Program 0 -652 Program 0 9781 Program 0 11738 Program 0 2635 Program 0 -585252 Program 0 -469421 Program 0 29415 Program 0 793290 Program 0 5563 Program 0 2012 ams-2.0.1/instruments/organ.ams0000664000076400007640000001220107770061731013434 00000000000000Module 7 1 580 106 0 0 Port 0 0 1 13 Port 1 1 1 13 FSlider 1 0 8172 0 0 16384 1 FSlider 1 1 8172 0 0 16384 1 FSlider 1 2 8132 0 0 16384 1 ComboBox 1 0 0 1 Module 30 2 15 79 werck3.scl FSlider 2 0 0 0 -16384 16384 1 ISlider 2 0 -24 1 ComboBox 2 0 0 1 Module 21 3 176 80 8 0 Port 0 1 3 2 Port 3 0 3 2 FSlider 3 0 0 0 0 16384 1 FSlider 3 1 0 0 0 163840 1 FSlider 3 2 0 0 0 163840 1 FSlider 3 3 15591 0 1638 163840 1 FSlider 3 4 0 1 -113176 0 1 FSlider 3 5 -65714 1 -113176 0 1 FSlider 3 6 -60378 1 -113176 0 1 FSlider 3 7 -42686 1 -113176 0 1 FSlider 3 8 -102045 1 -113176 0 1 FSlider 3 9 -82845 1 -113176 0 1 FSlider 3 10 -95790 1 -113176 0 1 FSlider 3 11 -60378 1 -113176 0 1 FSlider 3 12 0 0 0 16384 1 FSlider 3 13 0 0 0 102940 1 FSlider 3 14 0 0 0 16384 1 FSlider 3 15 0 0 0 102940 1 FSlider 3 16 0 0 0 16384 1 FSlider 3 17 0 0 0 102940 1 FSlider 3 18 0 0 0 16384 1 FSlider 3 19 0 0 0 102940 1 FSlider 3 20 0 0 0 16384 1 FSlider 3 21 0 0 0 102940 1 FSlider 3 22 0 0 0 16384 1 FSlider 3 23 0 0 0 102940 1 FSlider 3 24 0 0 0 16384 1 FSlider 3 25 0 0 0 102940 1 FSlider 3 26 0 0 0 16384 1 FSlider 3 27 0 0 0 102940 1 FSlider 3 28 0 0 0 16384 1 FSlider 3 29 160 0 0 16384 1 FSlider 3 30 16384 0 0 16384 1 FSlider 3 31 180 0 0 16384 1 FSlider 3 32 16384 0 0 16384 1 FSlider 3 33 200 0 0 16384 1 FSlider 3 34 16384 0 0 16384 1 FSlider 3 35 180 0 0 16384 1 FSlider 3 36 16384 0 0 16384 1 FSlider 3 37 200 0 0 16384 1 FSlider 3 38 0 0 0 16384 1 FSlider 3 39 0 0 0 16384 1 FSlider 3 40 0 0 0 16384 1 FSlider 3 41 0 0 0 16384 1 FSlider 3 42 0 0 0 16384 1 FSlider 3 43 160 0 0 16384 1 FSlider 3 44 16384 0 0 16384 1 FSlider 3 45 160 0 0 16384 1 FSlider 3 46 16384 0 0 16384 1 FSlider 3 47 160 0 0 16384 1 FSlider 3 48 16384 0 0 16384 1 FSlider 3 49 200 0 0 16384 1 FSlider 3 50 16384 0 0 16384 1 FSlider 3 51 280 0 0 16384 1 FSlider 3 52 0 0 0 16384 1 FSlider 3 53 0 0 0 16384 1 FSlider 3 54 0 0 0 16384 1 FSlider 3 55 0 0 0 16384 1 FSlider 3 56 0 0 0 16384 1 FSlider 3 57 163 0 0 16384 1 FSlider 3 58 16384 0 0 16384 1 FSlider 3 59 180 0 0 16384 1 FSlider 3 60 16384 0 0 16384 1 FSlider 3 61 200 0 0 16384 1 FSlider 3 62 16304 0 0 16384 1 FSlider 3 63 220 0 0 16384 1 FSlider 3 64 16384 0 0 16384 1 FSlider 3 65 163 0 0 16384 1 FSlider 3 66 0 0 0 16384 1 FSlider 3 67 0 0 0 16384 1 FSlider 3 68 0 0 0 16384 1 FSlider 3 69 0 0 0 16384 1 FSlider 3 70 0 0 0 16384 1 FSlider 3 71 163 0 0 16384 1 FSlider 3 72 16384 0 0 16384 1 FSlider 3 73 160 0 0 16384 1 FSlider 3 74 16384 0 0 16384 1 FSlider 3 75 160 0 0 16384 1 FSlider 3 76 16384 0 0 16384 1 FSlider 3 77 140 0 0 16384 1 FSlider 3 78 16384 0 0 16384 1 FSlider 3 79 163 0 0 16384 1 FSlider 3 80 0 0 0 16384 1 FSlider 3 81 0 0 0 16384 1 FSlider 3 82 0 0 0 16384 1 FSlider 3 83 0 0 0 16384 1 FSlider 3 84 0 0 0 16384 1 FSlider 3 85 180 0 0 16384 1 FSlider 3 86 16384 0 0 16384 1 FSlider 3 87 220 0 0 16384 1 FSlider 3 88 16384 0 0 16384 1 FSlider 3 89 200 0 0 16384 1 FSlider 3 90 16384 0 0 16384 1 FSlider 3 91 220 0 0 16384 1 FSlider 3 92 16384 0 0 16384 1 FSlider 3 93 163 0 0 16384 1 FSlider 3 94 0 0 0 16384 1 FSlider 3 95 0 0 0 16384 1 FSlider 3 96 0 0 0 16384 1 FSlider 3 97 0 0 0 16384 1 FSlider 3 98 0 0 0 16384 1 FSlider 3 99 163 0 0 16384 1 FSlider 3 100 16384 0 0 16384 1 FSlider 3 101 160 0 0 16384 1 FSlider 3 102 16384 0 0 16384 1 FSlider 3 103 220 0 0 16384 1 FSlider 3 104 16384 0 0 16384 1 FSlider 3 105 220 0 0 16384 1 FSlider 3 106 16384 0 0 16384 1 FSlider 3 107 280 0 0 16384 1 FSlider 3 108 0 0 0 16384 1 FSlider 3 109 0 0 0 16384 1 FSlider 3 110 0 0 0 16384 1 FSlider 3 111 0 0 0 16384 1 FSlider 3 112 0 0 0 16384 1 FSlider 3 113 163 0 0 16384 1 FSlider 3 114 16384 0 0 16384 1 FSlider 3 115 163 0 0 16384 1 FSlider 3 116 16384 0 0 16384 1 FSlider 3 117 120 0 0 16384 1 FSlider 3 118 16384 0 0 16384 1 FSlider 3 119 180 0 0 16384 1 FSlider 3 120 16384 0 0 16384 1 FSlider 3 121 157 0 0 16384 1 FSlider 3 122 0 0 0 16384 1 FSlider 3 123 0 0 0 16384 1 FSlider 3 124 0 0 0 16384 1 FSlider 3 125 0 0 0 16384 1 FSlider 3 126 0 0 0 16384 1 FSlider 3 127 163 0 0 16384 1 FSlider 3 128 16384 0 0 16384 1 FSlider 3 129 163 0 0 16384 1 FSlider 3 130 16384 0 0 16384 1 FSlider 3 131 140 0 0 16384 1 FSlider 3 132 16384 0 0 16384 1 FSlider 3 133 200 0 0 16384 1 FSlider 3 134 16384 0 0 16384 1 FSlider 3 135 163 0 0 16384 1 FSlider 3 136 0 0 0 16384 1 FSlider 3 137 0 0 0 16384 1 FSlider 3 138 0 0 0 16384 1 FSlider 3 139 0 0 0 16384 1 ISlider 3 0 1 1 ISlider 3 1 0 1 ISlider 3 2 1 1 ISlider 3 3 1 1 ISlider 3 4 0 1 ISlider 3 5 2 1 ISlider 3 6 1 1 ISlider 3 7 0 1 ISlider 3 8 3 1 ISlider 3 9 1 1 ISlider 3 10 0 1 ISlider 3 11 4 1 ISlider 3 12 1 1 ISlider 3 13 0 1 ISlider 3 14 5 1 ISlider 3 15 1 1 ISlider 3 16 0 1 ISlider 3 17 6 1 ISlider 3 18 1 1 ISlider 3 19 0 1 ISlider 3 20 7 1 ISlider 3 21 1 1 ISlider 3 22 0 1 ISlider 3 23 8 1 ISlider 3 24 1 1 ComboBox 3 0 0 1 ComboBox 3 1 0 1 ComboBox 3 2 0 1 ComboBox 3 3 0 1 ComboBox 3 4 0 1 ComboBox 3 5 0 1 ComboBox 3 6 0 1 ComboBox 3 7 0 1 Module 6 13 323 109 0 g2reverb Stereo reverb Port 0 0 13 3 Port 1 0 13 3 FSlider 13 0 1313538 0 163840 2457600 1 FSlider 13 1 95929 0 16384 327680 1 FSlider 13 2 9621 0 0 16384 1 FSlider 13 3 4911 0 0 16384 1 FSlider 13 4 0 0 -1310720 0 1 FSlider 13 5 -125597 0 -1310720 0 1 FSlider 13 6 -380012 0 -1310720 0 1 ams-2.0.1/instruments/miniams_pan_drift.ams0000664000076400007640000003077210072545655016027 00000000000000Module 35 1 28 176 0 0 FSlider 1 0 0 0 -16384 16384 1 ISlider 1 0 36 1 ISlider 1 1 0 1 ISlider 1 2 0 1 ISlider 1 3 0 1 ISlider 1 4 0 1 Module 34 2 229 23 0 0 ColorP 0 0 2 1 250 200 50 180 180 180 ColorP 1 3 2 1 250 200 50 180 180 180 FSlider 2 0 52 0 0 16384 1 FSlider 2 1 10348 0 0 16384 1 FSlider 2 2 0 0 0 16384 1 FSlider 2 3 2509 0 0 16384 1 FSlider 2 4 0 0 -16384 16384 1 FSlider 2 5 0 0 -16384 16384 1 FSlider 2 6 0 0 -16384 16384 1 FSlider 2 7 0 0 -16384 16384 1 ComboBox 2 0 2 1 ComboBox 2 1 1 1 Module 34 3 229 343 0 0 ColorP 0 0 3 1 250 200 50 180 180 180 ColorP 1 3 3 1 250 200 50 180 180 180 FSlider 3 0 82 0 0 16384 1 FSlider 3 1 13173 0 0 16384 1 FSlider 3 2 13008 0 0 16384 1 FSlider 3 3 2635 0 0 16384 1 FSlider 3 4 0 0 -16384 16384 1 FSlider 3 5 0 0 -16384 16384 1 FSlider 3 6 0 0 -16384 16384 1 FSlider 3 7 0 0 -16384 16384 1 ComboBox 3 0 2 1 ComboBox 3 1 1 1 Module 6 8 449 19 2 blvco Saw-VCO ColorP 0 0 8 46 250 200 50 180 180 180 ColorP 1 0 8 25 250 200 50 180 180 180 FSlider 8 0 115 0 0 545 1 FSlider 8 1 16480 0 0 65536 1 FSlider 8 2 0 0 0 65536 1 FSlider 8 3 8233 0 0 16384 1 LSlider 8 0 -4 1 Module 6 9 449 158 2 blvco Saw-VCO ColorP 0 1 9 46 250 200 50 180 180 180 ColorP 1 0 9 25 250 200 50 180 180 180 FSlider 9 0 257 0 0 545 1 FSlider 9 1 16480 0 0 65536 1 FSlider 9 2 0 0 0 65536 1 FSlider 9 3 8233 0 0 16384 1 LSlider 9 0 -4 1 Module 6 10 448 297 2 blvco Saw-VCO ColorP 0 2 10 46 250 200 50 180 180 180 ColorP 1 0 10 25 250 200 50 180 180 180 FSlider 10 0 0 0 0 545 1 FSlider 10 1 16480 0 0 65536 1 FSlider 10 2 0 0 0 65536 1 FSlider 10 3 8233 0 0 16384 1 LSlider 10 0 -4 1 Module 2 12 777 538 0 0 ColorP 0 0 12 3 250 200 50 180 180 180 ColorP 1 0 12 30 250 200 50 180 180 180 ColorP 2 0 12 23 250 200 50 180 180 180 FSlider 12 0 0 0 0 163840 1 FSlider 12 1 0 0 0 16384 1 FSlider 12 2 16384 0 0 32768 1 FSlider 12 3 16384 0 0 32768 1 FSlider 12 4 16384 0 0 32768 1 Module 8 13 386 613 4 0 ColorP 0 0 13 2 250 200 50 180 180 180 ColorP 1 0 13 8 250 200 50 180 180 180 ColorP 2 0 13 34 250 200 50 180 180 180 ColorP 3 1 13 26 250 200 50 180 180 180 FSlider 13 0 16384 0 0 32768 1 FSlider 13 1 14581 0 0 32768 1 FSlider 13 2 0 0 0 32768 1 FSlider 13 3 0 0 0 32768 1 FSlider 13 4 133 0 0 32768 1 Module 8 14 773 123 4 0 ColorP 0 0 14 8 250 200 50 180 180 180 ColorP 1 0 14 9 250 200 50 180 180 180 ColorP 2 0 14 10 250 200 50 180 180 180 ColorP 3 1 14 32 250 200 50 180 180 180 FSlider 14 0 16384 0 0 32768 1 FSlider 14 1 32768 0 0 32768 1 FSlider 14 2 32768 0 0 32768 1 FSlider 14 3 32768 0 0 32768 1 FSlider 14 4 0 0 0 32768 1 Module 23 19 1117 492 0 0 ColorP 0 0 19 21 250 200 50 180 180 180 ColorP 1 1 19 21 250 200 50 180 180 180 FSlider 19 0 3265 0 0 16384 1 FSlider 19 1 8192 0 0 16384 1 FSlider 19 2 8192 0 0 16384 1 ComboBox 19 0 0 1 Module 7 20 1112 378 0 0 ColorP 0 0 20 21 250 200 50 180 180 180 ColorP 1 1 20 21 250 200 50 180 180 180 FSlider 20 0 3304 0 0 16384 1 FSlider 20 1 8192 0 0 16384 1 FSlider 20 2 8192 0 0 16384 1 ComboBox 20 0 0 1 Module 6 21 850 377 0 g2reverb G2reverb ColorP 0 0 21 36 250 200 50 180 180 180 ColorP 1 1 21 36 250 200 50 180 180 180 FSlider 21 0 793290 0 163840 2457600 1 FSlider 21 1 29415 0 16384 327680 1 FSlider 21 2 6706 0 0 16384 1 FSlider 21 3 2012 0 0 16384 1 FSlider 21 4 0 0 -1310720 0 1 FSlider 21 5 -176795 0 -1310720 0 1 FSlider 21 6 -103638 0 -1310720 0 1 Module 6 23 878 167 2 mvclpf24 Mvclpf-3 ColorP 0 0 23 14 250 200 50 180 180 180 ColorP 1 3 23 46 250 200 50 180 180 180 ColorP 2 0 23 13 250 200 50 180 180 180 ColorP 3 0 23 28 250 200 50 180 180 180 FSlider 23 0 163840 0 -172155 163840 1 FSlider 23 1 -19206 0 -81920 81920 1 FSlider 23 2 115934 0 0 163840 1 FSlider 23 3 0 0 0 16384 1 FSlider 23 4 9159 0 0 16384 1 FSlider 23 5 -148383 0 -245760 245760 1 FSMIDI 23 1 10 0 1 Module 8 25 204 697 2 0 ColorP 0 5 25 1 250 200 50 180 180 180 ColorP 1 1 25 26 250 200 50 180 180 180 FSlider 25 0 16384 0 0 32768 1 FSlider 25 1 16384 0 0 32768 1 FSlider 25 2 106 0 0 3283 1 Module 3 26 29 472 0 0 FSlider 26 0 29628 1 -75451 75451 1 FSlider 26 1 0 0 0 102940 1 Module 8 28 540 501 2 0 ColorP 0 0 28 2 250 200 50 180 180 180 ColorP 1 1 28 26 250 200 50 180 180 180 FSlider 28 0 16384 0 0 32768 1 FSlider 28 1 0 0 0 32768 1 FSlider 28 2 0 0 0 16384 1 Module 5 30 611 642 0 0 ColorP 0 1 30 26 250 200 50 180 180 180 ColorP 1 0 30 3 250 200 50 180 180 180 FSlider 30 0 8192 0 0 81920 1 Module 14 32 715 372 0 0 FSlider 32 0 81920 0 0 163840 1 FSlider 32 1 8192 0 0 16384 1 Module 13 34 243 553 0 0 ColorP 0 0 34 2 250 200 50 180 180 180 Module 37 36 924 547 0 0 ColorP 0 0 36 12 250 200 50 180 180 180 FSlider 36 0 -2683 0 -16384 16384 1 FSlider 36 1 17821 0 0 32768 1 ComboBox 36 0 4 1 Module 42 46 26 13 4 0 ColorP 0 1 46 1 250 200 50 180 180 180 FSlider 46 0 -86807 1 -150902 -40582 1 FSlider 46 1 -75451 1 -75451 0 1 FSlider 46 2 0 1 -75451 37725 1 FSlider 46 3 -86807 1 -150902 -40582 1 FSlider 46 4 -75451 1 -75451 0 1 FSlider 46 5 17999 1 -75451 37725 1 ComboBox 46 0 0 1 ComboBox 46 1 1 1 CheckBox 46 0 0 1 Tab "Oscillators / LFO / Mixer" Tab "Filter / Envelopes / Reverb" Frame "Oscillators" 0 Parameter "VCO 1 Octave" 10 0 Parameter "VCO 1 Tune" 10 1 0 545 0 Parameter "VCO 2 Octave" 8 0 Parameter "VCO 2 Tune" 8 1 0 545 0 Parameter "VCO 3 Octave" 9 0 Parameter "VCO 3 Tune" 9 1 0 545 0 Frame "LFO" 0 Parameter "Frequency" 26 0 -75451 75448 1 Parameter "Pitch Modulation" 25 2 0 3277 0 Parameter "Filter Modulation" 13 4 0 32768 0 Parameter "Resonance Modulation" 28 2 0 16384 0 Parameter "Amplitude Modulation" 12 1 0 16384 0 Frame "Mixer" 0 Parameter "VCO 1 Level" 14 1 0 32768 0 Parameter "VCO 2 Level" 14 2 0 32768 0 Parameter "VCO 3 Level" 14 3 0 32768 0 Parameter "Noise" 14 4 0 32768 0 Frame "Filter" 1 Parameter "Cutoff Frequency" 23 1 -81920 81920 0 Parameter "Resonance" 23 3 0 16384 0 Parameter "Input gain (dB)" 23 0 -172155 163840 0 Parameter "Output gain (dB)" 23 5 -245760 245760 0 Parameter "VCO 1 to Filter Cutoff" 13 2 0 32768 0 Frame "Filter Envelope" 1 Parameter "Attack" 2 0 0 16384 0 Parameter "Decay" 2 1 0 16384 0 Parameter "Sustain" 2 2 0 16384 0 Parameter "Release" 2 3 0 16384 0 Parameter "Time Scale" 2 8 Parameter "Envelope to Filter Cutoff" 13 1 0 32768 0 Parameter "Inverse Envelope to Filter Cutoff" 13 3 0 32768 0 Parameter "Envelope to Resonance" 28 1 0 16384 0 Frame "Volume Envelope" 1 Parameter "Attack" 3 0 0 16384 0 Parameter "Decay" 3 1 0 16384 0 Parameter "Sustain" 3 2 0 16384 0 Parameter "Release" 3 3 0 16384 0 Parameter "Time Scale" 3 8 Frame "Reverb" 1 Parameter "Early Reflections" 21 5 -1310720 0 0 Parameter "Reverb Tail" 21 6 -1310720 0 0 Parameter "Reverb Time" 21 1 16384 327680 0 Parameter "Room Size" 21 0 163840 2457600 0 Parameter "Input Bandwidth" 21 2 0 16384 0 Parameter "Damping" 21 3 0 16384 0 Program 0 -4 Program 0 0 Program 0 -4 Program 0 115 Program 0 -4 Program 0 257 Program 0 29628 Program 0 106 Program 0 133 Program 0 0 Program 0 0 Program 0 32768 Program 0 32768 Program 0 32768 Program 0 0 Program 0 -19206 Program 0 0 Program 0 163840 Program 0 -148383 Program 0 0 Program 0 52 Program 0 10348 Program 0 0 Program 0 2509 Program 0 2 Program 0 14581 Program 0 0 Program 0 0 Program 0 82 Program 0 13173 Program 0 13008 Program 0 2635 Program 0 2 Program 0 -176795 Program 0 -103638 Program 0 29415 Program 0 793290 Program 0 6706 Program 0 2012 Program 1 -4 Program 1 0 Program 1 -3 Program 1 115 Program 1 -2 Program 1 257 Program 1 29628 Program 1 106 Program 1 133 Program 1 0 Program 1 0 Program 1 32768 Program 1 32768 Program 1 32768 Program 1 4746 Program 1 -10047 Program 1 0 Program 1 163840 Program 1 -148383 Program 1 0 Program 1 3606 Program 1 10348 Program 1 0 Program 1 2509 Program 1 2 Program 1 13327 Program 1 0 Program 1 16384 Program 1 82 Program 1 13173 Program 1 13008 Program 1 2635 Program 1 2 Program 1 -79253 Program 1 -182891 Program 1 29415 Program 1 793290 Program 1 6706 Program 1 2012 Program 2 -4 Program 2 0 Program 2 -3 Program 2 115 Program 2 -2 Program 2 257 Program 2 29628 Program 2 106 Program 2 133 Program 2 0 Program 2 0 Program 2 32768 Program 2 32768 Program 2 32768 Program 2 0 Program 2 -17775 Program 2 0 Program 2 163840 Program 2 -104332 Program 2 0 Program 2 52 Program 2 3998 Program 2 0 Program 2 2509 Program 2 2 Program 2 9094 Program 2 0 Program 2 12464 Program 2 82 Program 2 5352 Program 2 10538 Program 2 2635 Program 2 2 Program 2 -298722 Program 2 -182891 Program 2 29415 Program 2 793290 Program 2 5563 Program 2 2012 Program 3 -4 Program 3 0 Program 3 -3 Program 3 26 Program 3 -1 Program 3 81 Program 3 29628 Program 3 34 Program 3 133 Program 3 0 Program 3 0 Program 3 32768 Program 3 32768 Program 3 32768 Program 3 0 Program 3 -30181 Program 3 0 Program 3 -12999 Program 3 -15287 Program 3 0 Program 3 52 Program 3 1960 Program 3 0 Program 3 2509 Program 3 2 Program 3 12229 Program 3 0 Program 3 0 Program 3 82 Program 3 5352 Program 3 10538 Program 3 2635 Program 3 2 Program 3 -585252 Program 3 -469421 Program 3 29415 Program 3 793290 Program 3 5563 Program 3 2012 Program 4 -4 Program 4 0 Program 4 -4 Program 4 39 Program 4 -4 Program 4 75 Program 4 29628 Program 4 34 Program 4 133 Program 4 0 Program 4 0 Program 4 32768 Program 4 32768 Program 4 32768 Program 4 0 Program 4 -81920 Program 4 0 Program 4 70597 Program 4 -78784 Program 4 0 Program 4 2587 Program 4 7839 Program 4 0 Program 4 2267 Program 4 2 Program 4 14014 Program 4 0 Program 4 0 Program 4 324 Program 4 8735 Program 4 10538 Program 4 3153 Program 4 2 Program 4 -585252 Program 4 -469421 Program 4 29415 Program 4 793290 Program 4 5563 Program 4 2012 Program 5 -4 Program 5 0 Program 5 -3 Program 5 115 Program 5 -2 Program 5 257 Program 5 29628 Program 5 106 Program 5 133 Program 5 0 Program 5 0 Program 5 0 Program 5 0 Program 5 0 Program 5 13785 Program 5 -10047 Program 5 0 Program 5 163840 Program 5 -148383 Program 5 0 Program 5 3606 Program 5 10348 Program 5 0 Program 5 2509 Program 5 2 Program 5 13327 Program 5 0 Program 5 16384 Program 5 82 Program 5 13173 Program 5 13008 Program 5 2635 Program 5 2 Program 5 -79253 Program 5 -182891 Program 5 29415 Program 5 793290 Program 5 6706 Program 5 2012 Program 6 -4 Program 6 0 Program 6 -3 Program 6 115 Program 6 -2 Program 6 257 Program 6 29628 Program 6 106 Program 6 133 Program 6 0 Program 6 0 Program 6 32768 Program 6 0 Program 6 0 Program 6 13785 Program 6 -81920 Program 6 0 Program 6 163840 Program 6 -148383 Program 6 1546 Program 6 78 Program 6 2430 Program 6 0 Program 6 2509 Program 6 2 Program 6 15522 Program 6 0 Program 6 13719 Program 6 82 Program 6 3540 Program 6 0 Program 6 2635 Program 6 2 Program 6 -493806 Program 6 -182891 Program 6 29415 Program 6 793290 Program 6 0 Program 6 2012 Program 7 -3 Program 7 0 Program 7 -3 Program 7 26 Program 7 -1 Program 7 81 Program 7 29628 Program 7 34 Program 7 133 Program 7 0 Program 7 0 Program 7 32768 Program 7 32768 Program 7 21770 Program 7 0 Program 7 24550 Program 7 0 Program 7 -12999 Program 7 -15287 Program 7 0 Program 7 1082 Program 7 4946 Program 7 0 Program 7 2509 Program 7 2 Program 7 5461 Program 7 0 Program 7 0 Program 7 1602 Program 7 5352 Program 7 10538 Program 7 2635 Program 7 2 Program 7 -585252 Program 7 -469421 Program 7 29415 Program 7 793290 Program 7 5563 Program 7 2012 Program 8 -3 Program 8 0 Program 8 -3 Program 8 26 Program 8 -1 Program 8 81 Program 8 29628 Program 8 34 Program 8 133 Program 8 0 Program 8 0 Program 8 32768 Program 8 0 Program 8 0 Program 8 0 Program 8 62280 Program 8 0 Program 8 63147 Program 8 -15287 Program 8 0 Program 8 979 Program 8 1133 Program 8 0 Program 8 464 Program 8 1 Program 8 0 Program 8 3194 Program 8 0 Program 8 1602 Program 8 4135 Program 8 10538 Program 8 775 Program 8 2 Program 8 -380398 Program 8 -450689 Program 8 29415 Program 8 793290 Program 8 2843 Program 8 2012 Program 9 -4 Program 9 0 Program 9 -4 Program 9 26 Program 9 -4 Program 9 81 Program 9 29628 Program 9 34 Program 9 151 Program 9 0 Program 9 0 Program 9 32768 Program 9 32768 Program 9 32768 Program 9 0 Program 9 -8011 Program 9 9252 Program 9 63147 Program 9 -15287 Program 9 10750 Program 9 979 Program 9 8759 Program 9 0 Program 9 876 Program 9 2 Program 9 10614 Program 9 3194 Program 9 13190 Program 9 1602 Program 9 9458 Program 9 15402 Program 9 1757 Program 9 2 Program 9 -380398 Program 9 -450689 Program 9 29415 Program 9 793290 Program 9 2843 Program 9 2012 PresetName "Slow Lead Synth With Powerful Bass" PresetName "Slow Powerful Noisy Synth Best Played In The Bass Region" PresetName "Three Octave Synth With Resonance Envelope" PresetName "Lead Synth For Baroque Music" PresetName "Soft Bass Synth" PresetName "Noise Explosion" PresetName "Percussive Noise " PresetName "Bright Synth For Baroque Music" PresetName "Synth Trumpet" PresetName "Filter Modulation With VCO 1 Best Played In Bass Region" ams-2.0.1/instruments/Makefile.in0000664000076400007640000002461411315245614013676 00000000000000# Makefile.in generated by automake 1.10.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Makefile.am for ams VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = instruments DIST_COMMON = $(dist_instrumentsdata_DATA) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/src/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(instrumentsdatadir)" dist_instrumentsdataDATA_INSTALL = $(INSTALL_DATA) DATA = $(dist_instrumentsdata_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMS_CXXFLAGS = @AMS_CXXFLAGS@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LADSPA_PATH = @LADSPA_PATH@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LN_S = @LN_S@ LRELEASE = @LRELEASE@ LTLIBOBJS = @LTLIBOBJS@ LUPDATE = @LUPDATE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MOC = @MOC@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ QT_CFLAGS = @QT_CFLAGS@ QT_CXXFLAGS = @QT_CXXFLAGS@ QT_LIBS = @QT_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ instrumentsdatadir = $(pkgdatadir)/instruments dist_instrumentsdata_DATA = \ bass_presets.ams \ bass_presets_vcenv.ams \ example_presets_3vco.ams \ example_presets.ams \ hplp_instrument.ams \ hplp_instrument_pocketdial.ams \ miniams.ams \ miniams_pan.ams \ miniams_pan_drift.ams \ miniams_pan_lfo.ams \ miniams_vcenv2.ams \ organ.ams \ phaser_instrument.ams \ phaser_instrument_pan.ams \ phaser_instrument_pan_lfo.ams \ README_hplp_instrument_pocketdial all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu instruments/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu instruments/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh install-dist_instrumentsdataDATA: $(dist_instrumentsdata_DATA) @$(NORMAL_INSTALL) test -z "$(instrumentsdatadir)" || $(MKDIR_P) "$(DESTDIR)$(instrumentsdatadir)" @list='$(dist_instrumentsdata_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(dist_instrumentsdataDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(instrumentsdatadir)/$$f'"; \ $(dist_instrumentsdataDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(instrumentsdatadir)/$$f"; \ done uninstall-dist_instrumentsdataDATA: @$(NORMAL_UNINSTALL) @list='$(dist_instrumentsdata_DATA)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(instrumentsdatadir)/$$f'"; \ rm -f "$(DESTDIR)$(instrumentsdatadir)/$$f"; \ done tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(instrumentsdatadir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dist_instrumentsdataDATA install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-dist_instrumentsdataDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am \ install-dist_instrumentsdataDATA install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am \ uninstall-dist_instrumentsdataDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ams-2.0.1/instruments/example_presets_3vco.ams0000664000076400007640000001500610072545655016467 00000000000000Module 22 1 141 179 0 0 ColorP 0 0 1 9 250 200 50 180 180 180 ColorP 1 3 1 9 250 200 50 180 180 180 FSlider 1 0 16384 0 1638 163840 1 FSlider 1 1 11468 0 0 16384 1 FSlider 1 2 0 0 0 16384 1 FSlider 1 3 541 0 0 16384 1 FSlider 1 4 11438 0 0 16384 1 FSlider 1 5 309 0 0 16384 1 FSlider 1 6 3632 0 0 16384 1 FSlider 1 7 927 0 0 16384 1 FSlider 1 8 14745 0 0 16384 1 FSlider 1 9 2164 0 0 16384 1 FSlider 1 10 819 0 0 16384 1 FSlider 1 11 8192 0 0 16384 1 FSlider 1 12 819 0 0 16384 1 FSlider 1 13 3276 0 0 16384 1 FSlider 1 14 819 0 0 16384 1 Module 6 3 141 33 2 mvclpf24 Mvclpf-3 ColorP 0 0 3 12 250 200 50 180 180 180 ColorP 1 3 3 14 250 200 50 180 180 180 ColorP 2 0 3 1 250 200 50 180 180 180 FSlider 3 0 -65536 0 -983040 163840 1 FSlider 3 1 -35478 0 -81920 81920 1 FSlider 3 2 56343 0 0 163840 1 FSlider 3 3 1290 0 0 16384 1 FSlider 3 4 0 0 0 16384 1 FSlider 3 5 65610 0 -245760 245760 1 FSMIDI 3 1 13 0 0 FSMIDI 3 3 10 0 1 Module 1 4 390 183 0 0 ColorP 1 1 4 14 250 200 50 180 180 180 FSlider 4 0 0 0 0 16384 1 FSlider 4 1 8192 0 1638 14745 1 FSlider 4 2 0 0 0 16384 1 FSlider 4 3 0 0 0 102940 1 FSlider 4 4 0 0 0 163840 1 FSlider 4 5 0 0 0 163840 1 ISlider 4 0 1 1 ISlider 4 1 1 1 ISlider 4 2 1 1 ComboBox 4 0 0 1 Module 7 5 602 182 0 0 ColorP 0 0 5 7 250 200 50 180 180 180 ColorP 1 1 5 7 250 200 50 180 180 180 FSlider 5 0 2697 0 0 16384 1 FSlider 5 1 8192 0 0 16384 1 FSlider 5 2 8192 0 0 16384 1 ComboBox 5 0 0 1 Module 6 7 507 72 0 gverb_1216 gverb ColorP 0 0 7 8 250 200 50 180 180 180 FSlider 7 0 1790093 0 16384 4915200 1 FSlider 7 1 30685 0 1638 5898240 1 FSlider 7 2 2018 0 0 16384 1 FSlider 7 3 14729 0 0 16384 1 FSlider 7 4 0 0 -1146880 0 1 FSlider 7 5 -107343 0 -1146880 0 1 FSlider 7 6 -50847 0 -1146880 0 1 Module 2 8 392 16 0 0 ColorP 0 0 8 1 250 200 50 180 180 180 ColorP 2 0 8 3 250 200 50 180 180 180 FSlider 8 0 0 0 0 16384 1 FSlider 8 1 0 0 0 16384 1 FSlider 8 2 16384 0 0 32768 1 FSlider 8 3 16384 0 0 32768 1 FSlider 8 4 16384 0 0 32768 1 Module 10 9 5 81 0 0 FSlider 9 0 0 0 -16384 16384 1 ISlider 9 0 24 1 ComboBox 9 0 0 1 Module 1 10 495 183 0 0 ColorP 1 2 10 14 250 200 50 180 180 180 FSlider 10 0 122 0 0 16384 1 FSlider 10 1 8192 0 1638 14745 1 FSlider 10 2 0 0 0 16384 1 FSlider 10 3 0 0 0 102940 1 FSlider 10 4 0 0 0 163840 1 FSlider 10 5 0 0 0 163840 1 ISlider 10 0 1 1 ISlider 10 1 1 1 ISlider 10 2 1 1 ComboBox 10 0 0 1 Module 1 11 280 182 0 0 ColorP 1 0 11 14 250 200 50 180 180 180 FSlider 11 0 203 0 0 16384 1 FSlider 11 1 8192 0 1638 14745 1 FSlider 11 2 0 0 0 16384 1 FSlider 11 3 0 0 0 102940 1 FSlider 11 4 0 0 0 163840 1 FSlider 11 5 0 0 0 163840 1 ISlider 11 0 1 1 ISlider 11 1 1 1 ISlider 11 2 1 1 ComboBox 11 0 0 1 Module 8 12 611 298 4 0 ColorP 0 2 12 4 250 200 50 180 180 180 ColorP 1 2 12 10 250 200 50 180 180 180 ColorP 2 2 12 11 250 200 50 180 180 180 FSlider 12 0 16384 0 0 32768 1 FSlider 12 1 16384 0 0 32768 1 FSlider 12 2 16384 0 0 32768 1 FSlider 12 3 16384 0 0 32768 1 FSlider 12 4 16384 0 0 32768 1 Module 42 14 40 323 4 0 ColorP 0 1 14 9 250 200 50 180 180 180 FSlider 14 0 -86807 1 -150902 -40582 1 FSlider 14 1 -75451 1 -75451 0 1 FSlider 14 2 0 1 -75451 37725 1 FSlider 14 3 -86807 1 -150902 -40582 1 FSlider 14 4 -75451 1 -75451 0 1 FSlider 14 5 17999 1 -75451 37725 1 ComboBox 14 0 0 1 ComboBox 14 1 1 1 CheckBox 14 0 0 1 Tab "Envelope" Tab "Filter" Frame "Envelope Attack Level" 0 Parameter "Attack Level 0 ID 1" 1 4 0 16384 0 Parameter "Attack Level 1 ID 1" 1 6 0 16384 0 Parameter "Attack Level 2 ID 1" 1 8 0 16384 0 Frame "Envelope Attack Time" 0 Parameter "Attack Time 0 ID 1" 1 3 0 16384 0 Parameter "Attack Time 1 ID 1" 1 5 0 16384 0 Parameter "Attack Time 2 ID 1" 1 7 0 16384 0 Parameter "Attack Time 3 ID 1" 1 9 0 16384 0 Frame "Envelope Release Level" 0 Parameter "Release Level 0 ID 1" 1 11 0 16384 0 Parameter "Release Level 1 ID 1" 1 13 0 16384 0 Frame "Envelope Release Time" 0 Parameter "Release Time 0 ID 1" 1 10 0 16384 0 Parameter "Release Time 1 ID 1" 1 12 0 16384 0 Parameter "Release Time 2 ID 1" 1 14 0 16384 0 Frame "Envelope General Settings" 0 Parameter "Sustain ID 1" 1 1 0 16384 0 Parameter "Time Scale ID 1" 1 0 1638 163840 0 Parameter "Delay ID 1" 1 2 0 16384 0 Frame "Filter" 1 Parameter "Cutoff" 3 1 -81920 81920 0 Parameter "Resonance" 3 3 0 16384 0 Parameter "Filter Envelope Amount" 3 2 0 163840 0 Parameter "Input gain (dB) " 3 0 -983040 163840 0 Parameter "Output gain (dB)" 3 5 -245760 245760 0 Program 0 11438 Program 0 3632 Program 0 14745 Program 0 541 Program 0 309 Program 0 927 Program 0 2164 Program 0 8192 Program 0 3276 Program 0 819 Program 0 819 Program 0 819 Program 0 11468 Program 0 16384 Program 0 0 Program 0 -35478 Program 0 1290 Program 0 56343 Program 0 -65536 Program 0 65610 Program 1 11438 Program 1 16384 Program 1 16384 Program 1 155 Program 1 77 Program 1 0 Program 1 7496 Program 1 8192 Program 1 3276 Program 1 819 Program 1 819 Program 1 819 Program 1 9526 Program 1 16384 Program 1 0 Program 1 -35478 Program 1 1290 Program 1 56343 Program 1 -65536 Program 1 65610 Program 2 11438 Program 2 16384 Program 2 16384 Program 2 155 Program 2 77 Program 2 0 Program 2 7496 Program 2 2859 Program 2 16384 Program 2 819 Program 2 155 Program 2 3323 Program 2 9526 Program 2 16384 Program 2 0 Program 2 -35478 Program 2 1290 Program 2 56343 Program 2 -65536 Program 2 65610 Program 3 11438 Program 3 16384 Program 3 16384 Program 3 155 Program 3 77 Program 3 0 Program 3 7496 Program 3 2859 Program 3 16384 Program 3 819 Program 3 155 Program 3 3323 Program 3 9526 Program 3 16384 Program 3 0 Program 3 -61162 Program 3 12900 Program 3 56343 Program 3 -65536 Program 3 65610 Program 4 11438 Program 4 3632 Program 4 14745 Program 4 541 Program 4 309 Program 4 927 Program 4 2164 Program 4 8192 Program 4 3276 Program 4 819 Program 4 819 Program 4 819 Program 4 11468 Program 4 16384 Program 4 0 Program 4 -61162 Program 4 12900 Program 4 56343 Program 4 -65536 Program 4 65610 Program 5 11438 Program 5 16384 Program 5 16384 Program 5 155 Program 5 77 Program 5 0 Program 5 7496 Program 5 8192 Program 5 3276 Program 5 819 Program 5 819 Program 5 819 Program 5 9526 Program 5 16384 Program 5 0 Program 5 -61162 Program 5 12900 Program 5 56343 Program 5 -65536 Program 5 65610 Program 6 11438 Program 6 16384 Program 6 16384 Program 6 155 Program 6 77 Program 6 0 Program 6 12984 Program 6 4814 Program 6 3184 Program 6 819 Program 6 819 Program 6 2329 Program 6 7925 Program 6 16384 Program 6 0 Program 6 -81920 Program 6 0 Program 6 163840 Program 6 163840 Program 6 -81189 PresetName "Preset 00" PresetName "Preset 01" PresetName "Preset 02" PresetName "Preset 03" PresetName "Preset 04" PresetName "Preset 05" PresetName "Preset 06" ams-2.0.1/instruments/Makefile.am0000664000076400007640000000075611051107140013652 00000000000000# Makefile.am for ams instrumentsdatadir = $(pkgdatadir)/instruments dist_instrumentsdata_DATA = \ bass_presets.ams \ bass_presets_vcenv.ams \ example_presets_3vco.ams \ example_presets.ams \ hplp_instrument.ams \ hplp_instrument_pocketdial.ams \ miniams.ams \ miniams_pan.ams \ miniams_pan_drift.ams \ miniams_pan_lfo.ams \ miniams_vcenv2.ams \ organ.ams \ phaser_instrument.ams \ phaser_instrument_pan.ams \ phaser_instrument_pan_lfo.ams \ README_hplp_instrument_pocketdial ams-2.0.1/instruments/miniams_pan.ams0000664000076400007640000003025610047700634014624 00000000000000Module 35 1 22 174 0 0 FSlider 1 0 0 0 -16384 16384 1 ISlider 1 0 36 1 ISlider 1 1 0 1 ISlider 1 2 0 1 ISlider 1 3 0 1 ISlider 1 4 0 1 Module 34 2 229 23 0 0 ColorP 0 0 2 1 250 200 50 180 180 180 ColorP 1 3 2 1 250 200 50 180 180 180 FSlider 2 0 52 0 0 16384 1 FSlider 2 1 10348 0 0 16384 1 FSlider 2 2 0 0 0 16384 1 FSlider 2 3 2509 0 0 16384 1 FSlider 2 4 0 0 -16384 16384 1 FSlider 2 5 0 0 -16384 16384 1 FSlider 2 6 0 0 -16384 16384 1 FSlider 2 7 0 0 -16384 16384 1 ComboBox 2 0 2 1 ComboBox 2 1 1 1 Module 34 3 229 343 0 0 ColorP 0 0 3 1 250 200 50 180 180 180 ColorP 1 3 3 1 250 200 50 180 180 180 FSlider 3 0 82 0 0 16384 1 FSlider 3 1 13173 0 0 16384 1 FSlider 3 2 13008 0 0 16384 1 FSlider 3 3 2635 0 0 16384 1 FSlider 3 4 0 0 -16384 16384 1 FSlider 3 5 0 0 -16384 16384 1 FSlider 3 6 0 0 -16384 16384 1 FSlider 3 7 0 0 -16384 16384 1 ComboBox 3 0 2 1 ComboBox 3 1 1 1 Module 6 8 449 19 2 blvco Saw-VCO ColorP 0 1 8 1 250 200 50 180 180 180 ColorP 1 0 8 25 250 200 50 180 180 180 FSlider 8 0 115 0 0 545 1 FSlider 8 1 16480 0 0 65536 1 FSlider 8 2 0 0 0 65536 1 FSlider 8 3 8233 0 0 16384 1 LSlider 8 0 -4 1 Module 6 9 449 158 2 blvco Saw-VCO ColorP 0 1 9 1 250 200 50 180 180 180 ColorP 1 0 9 25 250 200 50 180 180 180 FSlider 9 0 257 0 0 545 1 FSlider 9 1 16480 0 0 65536 1 FSlider 9 2 0 0 0 65536 1 FSlider 9 3 8233 0 0 16384 1 LSlider 9 0 -4 1 Module 6 10 448 297 2 blvco Saw-VCO ColorP 0 1 10 1 250 200 50 180 180 180 ColorP 1 0 10 25 250 200 50 180 180 180 FSlider 10 0 0 0 0 545 1 FSlider 10 1 16480 0 0 65536 1 FSlider 10 2 0 0 0 65536 1 FSlider 10 3 8233 0 0 16384 1 LSlider 10 0 -4 1 Module 2 12 777 538 0 0 ColorP 0 0 12 3 250 200 50 180 180 180 ColorP 1 0 12 30 250 200 50 180 180 180 ColorP 2 0 12 23 250 200 50 180 180 180 FSlider 12 0 0 0 0 163840 1 FSlider 12 1 0 0 0 16384 1 FSlider 12 2 16384 0 0 32768 1 FSlider 12 3 16384 0 0 32768 1 FSlider 12 4 16384 0 0 32768 1 Module 8 13 386 613 4 0 ColorP 0 0 13 2 250 200 50 180 180 180 ColorP 1 0 13 8 250 200 50 180 180 180 ColorP 2 0 13 34 250 200 50 180 180 180 ColorP 3 1 13 26 250 200 50 180 180 180 FSlider 13 0 16384 0 0 32768 1 FSlider 13 1 14581 0 0 32768 1 FSlider 13 2 0 0 0 32768 1 FSlider 13 3 0 0 0 32768 1 FSlider 13 4 133 0 0 32768 1 Module 8 14 773 123 4 0 ColorP 0 0 14 8 250 200 50 180 180 180 ColorP 1 0 14 9 250 200 50 180 180 180 ColorP 2 0 14 10 250 200 50 180 180 180 ColorP 3 1 14 32 250 200 50 180 180 180 FSlider 14 0 16384 0 0 32768 1 FSlider 14 1 32768 0 0 32768 1 FSlider 14 2 32768 0 0 32768 1 FSlider 14 3 32768 0 0 32768 1 FSlider 14 4 0 0 0 32768 1 Module 23 19 1117 492 0 0 ColorP 0 0 19 21 250 200 50 180 180 180 ColorP 1 1 19 21 250 200 50 180 180 180 FSlider 19 0 3265 0 0 16384 1 FSlider 19 1 8192 0 0 16384 1 FSlider 19 2 8192 0 0 16384 1 ComboBox 19 0 0 1 Module 7 20 1112 378 0 0 ColorP 0 0 20 21 250 200 50 180 180 180 ColorP 1 1 20 21 250 200 50 180 180 180 FSlider 20 0 3304 0 0 16384 1 FSlider 20 1 8192 0 0 16384 1 FSlider 20 2 8192 0 0 16384 1 ComboBox 20 0 0 1 Module 6 21 850 377 0 g2reverb G2reverb ColorP 0 0 21 36 250 200 50 180 180 180 ColorP 1 1 21 36 250 200 50 180 180 180 FSlider 21 0 793290 0 163840 2457600 1 FSlider 21 1 29415 0 16384 327680 1 FSlider 21 2 6706 0 0 16384 1 FSlider 21 3 2012 0 0 16384 1 FSlider 21 4 0 0 -1310720 0 1 FSlider 21 5 -176795 0 -1310720 0 1 FSlider 21 6 -103638 0 -1310720 0 1 Module 6 23 878 167 2 mvclpf24 Mvclpf-3 ColorP 0 0 23 14 250 200 50 180 180 180 ColorP 1 1 23 1 250 200 50 180 180 180 ColorP 2 0 23 13 250 200 50 180 180 180 ColorP 3 0 23 28 250 200 50 180 180 180 FSlider 23 0 163840 0 -172155 163840 1 FSlider 23 1 -19206 0 -81920 81920 1 FSlider 23 2 115934 0 0 163840 1 FSlider 23 3 0 0 0 16384 1 FSlider 23 4 9159 0 0 16384 1 FSlider 23 5 -148383 0 -245760 245760 1 FSMIDI 23 1 10 0 1 Module 8 25 204 697 2 0 ColorP 0 5 25 1 250 200 50 180 180 180 ColorP 1 1 25 26 250 200 50 180 180 180 FSlider 25 0 16384 0 0 32768 1 FSlider 25 1 16384 0 0 32768 1 FSlider 25 2 106 0 0 3283 1 Module 3 26 29 472 0 0 FSlider 26 0 29628 1 -75451 75451 1 FSlider 26 1 0 0 0 102940 1 Module 8 28 540 501 2 0 ColorP 0 0 28 2 250 200 50 180 180 180 ColorP 1 1 28 26 250 200 50 180 180 180 FSlider 28 0 16384 0 0 32768 1 FSlider 28 1 0 0 0 32768 1 FSlider 28 2 0 0 0 16384 1 Module 5 30 611 642 0 0 ColorP 0 1 30 26 250 200 50 180 180 180 ColorP 1 0 30 3 250 200 50 180 180 180 FSlider 30 0 8192 0 0 81920 1 Module 14 32 715 372 0 0 FSlider 32 0 81920 0 0 163840 1 FSlider 32 1 8192 0 0 16384 1 Module 13 34 243 553 0 0 ColorP 0 0 34 2 250 200 50 180 180 180 Module 37 36 924 547 0 0 ColorP 0 0 36 12 250 200 50 180 180 180 FSlider 36 0 -2683 0 -16384 16384 1 FSlider 36 1 17821 0 0 32768 1 ComboBox 36 0 4 1 Tab "Oscillators / LFO / Mixer" Tab "Filter / Envelopes / Reverb" Frame "Oscillators" 0 Parameter "VCO 1 Octave" 10 0 Parameter "VCO 1 Tune" 10 1 0 545 0 Parameter "VCO 2 Octave" 8 0 Parameter "VCO 2 Tune" 8 1 0 545 0 Parameter "VCO 3 Octave" 9 0 Parameter "VCO 3 Tune" 9 1 0 545 0 Frame "LFO" 0 Parameter "Frequency" 26 0 -75451 75448 1 Parameter "Pitch Modulation" 25 2 0 3277 0 Parameter "Filter Modulation" 13 4 0 32768 0 Parameter "Resonance Modulation" 28 2 0 16384 0 Parameter "Amplitude Modulation" 12 1 0 16384 0 Frame "Mixer" 0 Parameter "VCO 1 Level" 14 1 0 32768 0 Parameter "VCO 2 Level" 14 2 0 32768 0 Parameter "VCO 3 Level" 14 3 0 32768 0 Parameter "Noise" 14 4 0 32768 0 Frame "Filter" 1 Parameter "Cutoff Frequency" 23 1 -81920 81920 0 Parameter "Resonance" 23 3 0 16384 0 Parameter "Input gain (dB)" 23 0 -172155 163840 0 Parameter "Output gain (dB)" 23 5 -245760 245760 0 Parameter "VCO 1 to Filter Cutoff" 13 2 0 32768 0 Frame "Filter Envelope" 1 Parameter "Attack" 2 0 0 16384 0 Parameter "Decay" 2 1 0 16384 0 Parameter "Sustain" 2 2 0 16384 0 Parameter "Release" 2 3 0 16384 0 Parameter "Time Scale" 2 8 Parameter "Envelope to Filter Cutoff" 13 1 0 32768 0 Parameter "Inverse Envelope to Filter Cutoff" 13 3 0 32768 0 Parameter "Envelope to Resonance" 28 1 0 16384 0 Frame "Volume Envelope" 1 Parameter "Attack" 3 0 0 16384 0 Parameter "Decay" 3 1 0 16384 0 Parameter "Sustain" 3 2 0 16384 0 Parameter "Release" 3 3 0 16384 0 Parameter "Time Scale" 3 8 Frame "Reverb" 1 Parameter "Early Reflections" 21 5 -1310720 0 0 Parameter "Reverb Tail" 21 6 -1310720 0 0 Parameter "Reverb Time" 21 1 16384 327680 0 Parameter "Room Size" 21 0 163840 2457600 0 Parameter "Input Bandwidth" 21 2 0 16384 0 Parameter "Damping" 21 3 0 16384 0 Program 0 -4 Program 0 0 Program 0 -4 Program 0 115 Program 0 -4 Program 0 257 Program 0 29628 Program 0 106 Program 0 133 Program 0 0 Program 0 0 Program 0 32768 Program 0 32768 Program 0 32768 Program 0 0 Program 0 -19206 Program 0 0 Program 0 163840 Program 0 -148383 Program 0 0 Program 0 52 Program 0 10348 Program 0 0 Program 0 2509 Program 0 2 Program 0 14581 Program 0 0 Program 0 0 Program 0 82 Program 0 13173 Program 0 13008 Program 0 2635 Program 0 2 Program 0 -176795 Program 0 -103638 Program 0 29415 Program 0 793290 Program 0 6706 Program 0 2012 Program 1 -4 Program 1 0 Program 1 -3 Program 1 115 Program 1 -2 Program 1 257 Program 1 29628 Program 1 106 Program 1 133 Program 1 0 Program 1 0 Program 1 32768 Program 1 32768 Program 1 32768 Program 1 4746 Program 1 -10047 Program 1 0 Program 1 163840 Program 1 -148383 Program 1 0 Program 1 3606 Program 1 10348 Program 1 0 Program 1 2509 Program 1 2 Program 1 13327 Program 1 0 Program 1 16384 Program 1 82 Program 1 13173 Program 1 13008 Program 1 2635 Program 1 2 Program 1 -79253 Program 1 -182891 Program 1 29415 Program 1 793290 Program 1 6706 Program 1 2012 Program 2 -4 Program 2 0 Program 2 -3 Program 2 115 Program 2 -2 Program 2 257 Program 2 29628 Program 2 106 Program 2 133 Program 2 0 Program 2 0 Program 2 32768 Program 2 32768 Program 2 32768 Program 2 0 Program 2 -17775 Program 2 0 Program 2 163840 Program 2 -104332 Program 2 0 Program 2 52 Program 2 3998 Program 2 0 Program 2 2509 Program 2 2 Program 2 9094 Program 2 0 Program 2 12464 Program 2 82 Program 2 5352 Program 2 10538 Program 2 2635 Program 2 2 Program 2 -298722 Program 2 -182891 Program 2 29415 Program 2 793290 Program 2 5563 Program 2 2012 Program 3 -4 Program 3 0 Program 3 -3 Program 3 26 Program 3 -1 Program 3 81 Program 3 29628 Program 3 34 Program 3 133 Program 3 0 Program 3 0 Program 3 32768 Program 3 32768 Program 3 32768 Program 3 0 Program 3 -30181 Program 3 0 Program 3 -12999 Program 3 -15287 Program 3 0 Program 3 52 Program 3 1960 Program 3 0 Program 3 2509 Program 3 2 Program 3 12229 Program 3 0 Program 3 0 Program 3 82 Program 3 5352 Program 3 10538 Program 3 2635 Program 3 2 Program 3 -585252 Program 3 -469421 Program 3 29415 Program 3 793290 Program 3 5563 Program 3 2012 Program 4 -4 Program 4 0 Program 4 -4 Program 4 39 Program 4 -4 Program 4 75 Program 4 29628 Program 4 34 Program 4 133 Program 4 0 Program 4 0 Program 4 32768 Program 4 32768 Program 4 32768 Program 4 0 Program 4 -81920 Program 4 0 Program 4 70597 Program 4 -78784 Program 4 0 Program 4 2587 Program 4 7839 Program 4 0 Program 4 2267 Program 4 2 Program 4 14014 Program 4 0 Program 4 0 Program 4 324 Program 4 8735 Program 4 10538 Program 4 3153 Program 4 2 Program 4 -585252 Program 4 -469421 Program 4 29415 Program 4 793290 Program 4 5563 Program 4 2012 Program 5 -4 Program 5 0 Program 5 -3 Program 5 115 Program 5 -2 Program 5 257 Program 5 29628 Program 5 106 Program 5 133 Program 5 0 Program 5 0 Program 5 0 Program 5 0 Program 5 0 Program 5 13785 Program 5 -10047 Program 5 0 Program 5 163840 Program 5 -148383 Program 5 0 Program 5 3606 Program 5 10348 Program 5 0 Program 5 2509 Program 5 2 Program 5 13327 Program 5 0 Program 5 16384 Program 5 82 Program 5 13173 Program 5 13008 Program 5 2635 Program 5 2 Program 5 -79253 Program 5 -182891 Program 5 29415 Program 5 793290 Program 5 6706 Program 5 2012 Program 6 -4 Program 6 0 Program 6 -3 Program 6 115 Program 6 -2 Program 6 257 Program 6 29628 Program 6 106 Program 6 133 Program 6 0 Program 6 0 Program 6 32768 Program 6 0 Program 6 0 Program 6 13785 Program 6 -81920 Program 6 0 Program 6 163840 Program 6 -148383 Program 6 1546 Program 6 78 Program 6 2430 Program 6 0 Program 6 2509 Program 6 2 Program 6 15522 Program 6 0 Program 6 13719 Program 6 82 Program 6 3540 Program 6 0 Program 6 2635 Program 6 2 Program 6 -493806 Program 6 -182891 Program 6 29415 Program 6 793290 Program 6 0 Program 6 2012 Program 7 -3 Program 7 0 Program 7 -3 Program 7 26 Program 7 -1 Program 7 81 Program 7 29628 Program 7 34 Program 7 133 Program 7 0 Program 7 0 Program 7 32768 Program 7 32768 Program 7 21770 Program 7 0 Program 7 24550 Program 7 0 Program 7 -12999 Program 7 -15287 Program 7 0 Program 7 1082 Program 7 4946 Program 7 0 Program 7 2509 Program 7 2 Program 7 5461 Program 7 0 Program 7 0 Program 7 1602 Program 7 5352 Program 7 10538 Program 7 2635 Program 7 2 Program 7 -585252 Program 7 -469421 Program 7 29415 Program 7 793290 Program 7 5563 Program 7 2012 Program 8 -3 Program 8 0 Program 8 -3 Program 8 26 Program 8 -1 Program 8 81 Program 8 29628 Program 8 34 Program 8 133 Program 8 0 Program 8 0 Program 8 32768 Program 8 0 Program 8 0 Program 8 0 Program 8 62280 Program 8 0 Program 8 63147 Program 8 -15287 Program 8 0 Program 8 979 Program 8 1133 Program 8 0 Program 8 464 Program 8 1 Program 8 0 Program 8 3194 Program 8 0 Program 8 1602 Program 8 4135 Program 8 10538 Program 8 775 Program 8 2 Program 8 -380398 Program 8 -450689 Program 8 29415 Program 8 793290 Program 8 2843 Program 8 2012 Program 9 -4 Program 9 0 Program 9 -4 Program 9 26 Program 9 -4 Program 9 81 Program 9 29628 Program 9 34 Program 9 151 Program 9 0 Program 9 0 Program 9 32768 Program 9 32768 Program 9 32768 Program 9 0 Program 9 -8011 Program 9 9252 Program 9 63147 Program 9 -15287 Program 9 10750 Program 9 979 Program 9 8759 Program 9 0 Program 9 876 Program 9 2 Program 9 10614 Program 9 3194 Program 9 13190 Program 9 1602 Program 9 9458 Program 9 15402 Program 9 1757 Program 9 2 Program 9 -380398 Program 9 -450689 Program 9 29415 Program 9 793290 Program 9 2843 Program 9 2012 PresetName "Slow Lead Synth With Powerful Bass" PresetName "Slow Powerful Noisy Synth Best Played In The Bass Region" PresetName "Three Octave Synth With Resonance Envelope" PresetName "Lead Synth For Baroque Music" PresetName "Soft Bass Synth" PresetName "Noise Explosion" PresetName "Percussive Noise " PresetName "Bright Synth For Baroque Music" PresetName "Synth Trumpet" PresetName "Filter Modulation With VCO 1 Best Played In Bass Region" ams-2.0.1/instruments/bass_presets.ams0000664000076400007640000001275310072545655015040 00000000000000Module 7 1 584 142 0 0 ColorP 0 0 1 22 250 200 50 180 180 180 ColorP 1 1 1 22 250 200 50 180 180 180 FSlider 1 0 674 0 0 16384 1 FSlider 1 1 16384 0 0 16384 1 FSlider 1 2 16384 0 0 16384 1 ComboBox 1 0 0 1 Module 11 3 145 13 0 0 ColorP 0 0 3 12 250 200 50 180 180 180 ColorP 1 3 3 12 250 200 50 180 180 180 FSlider 3 0 0 0 0 16384 1 FSlider 3 1 -107579 1 -113176 0 1 FSlider 3 2 98 0 0 16384 1 FSlider 3 3 6797 0 0 16384 1 FSlider 3 4 9902 0 0 16384 1 FSlider 3 5 -2176 1 -113176 0 1 FSlider 3 6 16384 0 1638 163840 1 Module 2 4 432 23 0 0 ColorP 0 0 4 3 250 200 50 180 180 180 ColorP 2 0 4 20 250 200 50 180 180 180 FSlider 4 0 0 0 0 163840 1 FSlider 4 1 0 0 0 163840 1 FSlider 4 2 19529 0 0 32768 1 FSlider 4 3 8192 0 0 32768 1 FSlider 4 4 8192 0 0 32768 1 Module 1 5 168 275 0 0 ColorP 1 0 5 24 250 200 50 180 180 180 FSlider 5 0 0 0 0 16384 1 FSlider 5 1 1638 0 0 163840 1 FSlider 5 2 0 0 0 163840 1 FSlider 5 3 8192 0 1638 14745 1 FSlider 5 4 0 0 0 163840 1 FSlider 5 5 0 0 0 163840 1 ISlider 5 0 0 1 ISlider 5 1 1 1 ISlider 5 2 1 1 ComboBox 5 0 0 1 Module 10 12 13 120 0 0 FSlider 12 0 129 0 -16384 16384 1 ISlider 12 0 24 1 ComboBox 12 0 0 1 Module 1 14 358 292 0 0 ColorP 1 1 14 24 250 200 50 180 180 180 FSlider 14 0 180 0 0 16384 1 FSlider 14 1 8192 0 1638 14745 1 FSlider 14 2 0 0 0 16384 1 FSlider 14 3 0 0 0 102940 1 FSlider 14 4 0 0 0 163840 1 FSlider 14 5 0 0 0 163840 1 ISlider 14 0 0 1 ISlider 14 1 1 1 ISlider 14 2 1 1 ComboBox 14 0 0 1 Module 1 15 537 291 0 0 ColorP 1 2 15 24 250 200 50 180 180 180 FSlider 15 0 270 0 0 16384 1 FSlider 15 1 8192 0 1638 14745 1 FSlider 15 2 0 0 0 16384 1 FSlider 15 3 0 0 0 102940 1 FSlider 15 4 0 0 0 163840 1 FSlider 15 5 0 0 0 163840 1 ISlider 15 0 0 1 ISlider 15 1 1 1 ISlider 15 2 1 1 ComboBox 15 0 0 1 Module 8 16 693 319 4 0 ColorP 0 2 16 5 250 200 50 180 180 180 ColorP 1 2 16 14 250 200 50 180 180 180 ColorP 2 2 16 15 250 200 50 180 180 180 FSlider 16 0 16384 0 0 32768 1 FSlider 16 1 16384 0 0 32768 1 FSlider 16 2 16384 0 0 32768 1 FSlider 16 3 16384 0 0 32768 1 FSlider 16 4 16384 0 0 32768 1 Module 11 18 23 270 0 0 ColorP 0 0 18 12 250 200 50 180 180 180 ColorP 1 3 18 12 250 200 50 180 180 180 FSlider 18 0 0 0 0 16384 1 FSlider 18 1 360 0 0 16384 1 FSlider 18 2 0 0 0 16384 1 FSlider 18 3 12648 0 0 16384 1 FSlider 18 4 0 0 0 16384 1 FSlider 18 5 16384 0 0 16384 1 FSlider 18 6 23918 0 1638 163840 1 Module 6 20 195 144 2 mvclpf24 Mvclpf-3 ColorP 0 0 20 16 250 200 50 180 180 180 ColorP 1 3 20 24 250 200 50 180 180 180 ColorP 2 0 20 18 250 200 50 180 180 180 FSlider 20 0 163840 0 -983040 163840 1 FSlider 20 1 -54829 0 -81920 81920 1 FSlider 20 2 52981 0 0 163840 1 FSlider 20 3 7482 0 0 16384 1 FSlider 20 4 0 0 0 16384 1 FSlider 20 5 -9350 0 -245760 245760 1 FSMIDI 20 1 13 0 0 FSMIDI 20 3 10 0 1 Module 6 22 533 35 0 gverb_1216 gverb ColorP 0 0 22 4 250 200 50 180 180 180 FSlider 22 0 1828446 0 16384 4915200 1 FSlider 22 1 33255 0 1638 5898240 1 FSlider 22 2 3803 0 0 16384 1 FSlider 22 3 11536 0 0 16384 1 FSlider 22 4 0 0 -1146880 0 1 FSlider 22 5 0 0 -1146880 0 1 FSlider 22 6 0 0 -1146880 0 1 Module 42 24 36 521 4 0 ColorP 0 1 24 12 250 200 50 180 180 180 FSlider 24 0 -86807 1 -150902 -40582 1 FSlider 24 1 -75451 1 -75451 0 1 FSlider 24 2 0 1 -75451 37725 1 FSlider 24 3 -86807 1 -150902 -40582 1 FSlider 24 4 -75451 1 -75451 0 1 FSlider 24 5 17999 1 -75451 37725 1 ComboBox 24 0 0 1 ComboBox 24 1 1 1 CheckBox 24 0 0 1 Tab "Filter" Tab "Oscillators / Reverb" Frame "Filter Envelope" 0 Parameter "Attack" 18 1 0 16384 0 Parameter "Decay" 18 3 0 16384 0 Parameter "Exp FM gain" 20 2 0 163840 0 Frame "Filter" 0 Parameter "Frequency" 20 1 -81920 81920 0 Parameter "Resonance" 20 3 0 16384 0 Parameter "Input gain (dB)" 20 0 -983040 163840 0 Frame "Reverb" 1 Parameter "Early reflection level" 22 5 -983040 163840 0 Parameter "Reverb time (s)" 22 1 1638 5898240 0 Parameter "Tail level (dB)" 22 6 -1146880 0 0 Frame "Oscillators" 1 Parameter "Octave" 14 0 Parameter "Octave" 15 0 Parameter "Octave" 5 0 Program 0 360 Program 0 12648 Program 0 52981 Program 0 -54829 Program 0 7482 Program 0 163840 Program 0 163840 Program 0 33255 Program 0 0 Program 0 0 Program 0 0 Program 0 0 Program 1 360 Program 1 12648 Program 1 52981 Program 1 -54829 Program 1 7482 Program 1 163840 Program 1 163840 Program 1 33255 Program 1 0 Program 1 2 Program 1 0 Program 1 0 Program 2 360 Program 2 3990 Program 2 86454 Program 2 -65596 Program 2 10822 Program 2 163840 Program 2 163840 Program 2 33255 Program 2 -393579 Program 2 2 Program 2 0 Program 2 0 Program 3 360 Program 3 1874 Program 3 86454 Program 3 -73456 Program 3 0 Program 3 163840 Program 3 163840 Program 3 33255 Program 3 -393579 Program 3 2 Program 3 0 Program 3 0 Program 4 121 Program 4 1632 Program 4 94918 Program 4 -81920 Program 4 5018 Program 4 163840 Program 4 163840 Program 4 33255 Program 4 -148121 Program 4 3 Program 4 0 Program 4 0 Program 5 121 Program 5 10338 Program 5 149935 Program 5 -81920 Program 5 11547 Program 5 163840 Program 5 163840 Program 5 33255 Program 5 -148121 Program 5 2 Program 5 1 Program 5 0 Program 6 121 Program 6 7134 Program 6 149935 Program 6 -81920 Program 6 15477 Program 6 163840 Program 6 163840 Program 6 33255 Program 6 -148121 Program 6 1 Program 6 0 Program 6 0 Program 7 121 Program 7 4648 Program 7 47247 Program 7 -13897 Program 7 3730 Program 7 163840 Program 7 163840 Program 7 33255 Program 7 -76800 Program 7 2 Program 7 0 Program 7 0 PresetName "Preset 00" PresetName "Preset 01" PresetName "Preset 02" PresetName "Preset 03" PresetName "Preset 04" PresetName "Preset 05" PresetName "Preset 06" PresetName "Preset 07" ams-2.0.1/instruments/miniams_pan_lfo.ams0000664000076400007640000003051710047700634015464 00000000000000Module 35 1 22 174 0 0 FSlider 1 0 0 0 -16384 16384 1 ISlider 1 0 36 1 ISlider 1 1 0 1 ISlider 1 2 0 1 ISlider 1 3 0 1 ISlider 1 4 0 1 Module 34 2 229 23 0 0 ColorP 0 0 2 1 250 200 50 180 180 180 ColorP 1 3 2 1 250 200 50 180 180 180 FSlider 2 0 52 0 0 16384 1 FSlider 2 1 10348 0 0 16384 1 FSlider 2 2 0 0 0 16384 1 FSlider 2 3 2509 0 0 16384 1 FSlider 2 4 0 0 -16384 16384 1 FSlider 2 5 0 0 -16384 16384 1 FSlider 2 6 0 0 -16384 16384 1 FSlider 2 7 0 0 -16384 16384 1 ComboBox 2 0 2 1 ComboBox 2 1 1 1 Module 34 3 229 343 0 0 ColorP 0 0 3 1 250 200 50 180 180 180 ColorP 1 3 3 1 250 200 50 180 180 180 FSlider 3 0 82 0 0 16384 1 FSlider 3 1 13173 0 0 16384 1 FSlider 3 2 13008 0 0 16384 1 FSlider 3 3 2635 0 0 16384 1 FSlider 3 4 0 0 -16384 16384 1 FSlider 3 5 0 0 -16384 16384 1 FSlider 3 6 0 0 -16384 16384 1 FSlider 3 7 0 0 -16384 16384 1 ComboBox 3 0 2 1 ComboBox 3 1 1 1 Module 6 8 449 19 2 blvco Saw-VCO ColorP 0 1 8 1 250 200 50 180 180 180 ColorP 1 0 8 25 250 200 50 180 180 180 FSlider 8 0 115 0 0 545 1 FSlider 8 1 16480 0 0 65536 1 FSlider 8 2 0 0 0 65536 1 FSlider 8 3 8233 0 0 16384 1 LSlider 8 0 -4 1 Module 6 9 449 158 2 blvco Saw-VCO ColorP 0 1 9 1 250 200 50 180 180 180 ColorP 1 0 9 25 250 200 50 180 180 180 FSlider 9 0 257 0 0 545 1 FSlider 9 1 16480 0 0 65536 1 FSlider 9 2 0 0 0 65536 1 FSlider 9 3 8233 0 0 16384 1 LSlider 9 0 -4 1 Module 6 10 448 297 2 blvco Saw-VCO ColorP 0 1 10 1 250 200 50 180 180 180 ColorP 1 0 10 25 250 200 50 180 180 180 FSlider 10 0 0 0 0 545 1 FSlider 10 1 16480 0 0 65536 1 FSlider 10 2 0 0 0 65536 1 FSlider 10 3 8233 0 0 16384 1 LSlider 10 0 -4 1 Module 2 12 777 538 0 0 ColorP 0 0 12 3 250 200 50 180 180 180 ColorP 1 0 12 30 250 200 50 180 180 180 ColorP 2 0 12 23 250 200 50 180 180 180 FSlider 12 0 0 0 0 163840 1 FSlider 12 1 0 0 0 16384 1 FSlider 12 2 16384 0 0 32768 1 FSlider 12 3 16384 0 0 32768 1 FSlider 12 4 16384 0 0 32768 1 Module 8 13 386 613 4 0 ColorP 0 0 13 2 250 200 50 180 180 180 ColorP 1 0 13 8 250 200 50 180 180 180 ColorP 2 0 13 34 250 200 50 180 180 180 ColorP 3 1 13 26 250 200 50 180 180 180 FSlider 13 0 16384 0 0 32768 1 FSlider 13 1 14581 0 0 32768 1 FSlider 13 2 0 0 0 32768 1 FSlider 13 3 0 0 0 32768 1 FSlider 13 4 133 0 0 32768 1 Module 8 14 773 123 4 0 ColorP 0 0 14 8 250 200 50 180 180 180 ColorP 1 0 14 9 250 200 50 180 180 180 ColorP 2 0 14 10 250 200 50 180 180 180 ColorP 3 1 14 32 250 200 50 180 180 180 FSlider 14 0 16384 0 0 32768 1 FSlider 14 1 32768 0 0 32768 1 FSlider 14 2 32768 0 0 32768 1 FSlider 14 3 32768 0 0 32768 1 FSlider 14 4 0 0 0 32768 1 Module 23 19 1117 492 0 0 ColorP 0 0 19 21 250 200 50 180 180 180 ColorP 1 1 19 21 250 200 50 180 180 180 FSlider 19 0 3265 0 0 16384 1 FSlider 19 1 8192 0 0 16384 1 FSlider 19 2 8192 0 0 16384 1 ComboBox 19 0 0 1 Module 7 20 1112 378 0 0 ColorP 0 0 20 21 250 200 50 180 180 180 ColorP 1 1 20 21 250 200 50 180 180 180 FSlider 20 0 3304 0 0 16384 1 FSlider 20 1 8192 0 0 16384 1 FSlider 20 2 8192 0 0 16384 1 ComboBox 20 0 0 1 Module 6 21 850 377 0 g2reverb G2reverb ColorP 0 0 21 36 250 200 50 180 180 180 ColorP 1 1 21 36 250 200 50 180 180 180 FSlider 21 0 793290 0 163840 2457600 1 FSlider 21 1 29415 0 16384 327680 1 FSlider 21 2 6706 0 0 16384 1 FSlider 21 3 2012 0 0 16384 1 FSlider 21 4 0 0 -1310720 0 1 FSlider 21 5 -176795 0 -1310720 0 1 FSlider 21 6 -103638 0 -1310720 0 1 Module 6 23 878 167 2 mvclpf24 Mvclpf-3 ColorP 0 0 23 14 250 200 50 180 180 180 ColorP 1 1 23 1 250 200 50 180 180 180 ColorP 2 0 23 13 250 200 50 180 180 180 ColorP 3 0 23 28 250 200 50 180 180 180 FSlider 23 0 163840 0 -172155 163840 1 FSlider 23 1 -19206 0 -81920 81920 1 FSlider 23 2 115934 0 0 163840 1 FSlider 23 3 0 0 0 16384 1 FSlider 23 4 9159 0 0 16384 1 FSlider 23 5 -148383 0 -245760 245760 1 FSMIDI 23 1 10 0 1 Module 8 25 204 697 2 0 ColorP 0 5 25 1 250 200 50 180 180 180 ColorP 1 1 25 26 250 200 50 180 180 180 FSlider 25 0 16384 0 0 32768 1 FSlider 25 1 16384 0 0 32768 1 FSlider 25 2 106 0 0 3283 1 Module 3 26 29 472 0 0 FSlider 26 0 29628 1 -75451 75451 1 FSlider 26 1 0 0 0 102940 1 Module 8 28 540 501 2 0 ColorP 0 0 28 2 250 200 50 180 180 180 ColorP 1 1 28 26 250 200 50 180 180 180 FSlider 28 0 16384 0 0 32768 1 FSlider 28 1 0 0 0 32768 1 FSlider 28 2 0 0 0 16384 1 Module 5 30 611 642 0 0 ColorP 0 1 30 26 250 200 50 180 180 180 ColorP 1 0 30 3 250 200 50 180 180 180 FSlider 30 0 8192 0 0 81920 1 Module 14 32 715 372 0 0 FSlider 32 0 81920 0 0 163840 1 FSlider 32 1 8192 0 0 16384 1 Module 13 34 243 553 0 0 ColorP 0 0 34 2 250 200 50 180 180 180 Module 37 36 924 547 0 0 ColorP 0 0 36 12 250 200 50 180 180 180 ColorP 1 1 36 37 250 200 50 180 180 180 FSlider 36 0 0 0 -16384 16384 1 FSlider 36 1 16373 0 0 32768 1 ComboBox 36 0 0 1 Module 3 37 30 652 0 0 ColorP 0 3 37 1 250 200 50 180 180 180 FSlider 37 0 7456 1 -75451 75451 1 FSlider 37 1 0 0 0 102940 1 Tab "Oscillators / LFO / Mixer" Tab "Filter / Envelopes / Reverb" Frame "Oscillators" 0 Parameter "VCO 1 Octave" 10 0 Parameter "VCO 1 Tune" 10 1 0 545 0 Parameter "VCO 2 Octave" 8 0 Parameter "VCO 2 Tune" 8 1 0 545 0 Parameter "VCO 3 Octave" 9 0 Parameter "VCO 3 Tune" 9 1 0 545 0 Frame "LFO" 0 Parameter "Frequency" 26 0 -75451 75448 1 Parameter "Pitch Modulation" 25 2 0 3277 0 Parameter "Filter Modulation" 13 4 0 32768 0 Parameter "Resonance Modulation" 28 2 0 16384 0 Parameter "Amplitude Modulation" 12 1 0 16384 0 Frame "Mixer" 0 Parameter "VCO 1 Level" 14 1 0 32768 0 Parameter "VCO 2 Level" 14 2 0 32768 0 Parameter "VCO 3 Level" 14 3 0 32768 0 Parameter "Noise" 14 4 0 32768 0 Frame "Filter" 1 Parameter "Cutoff Frequency" 23 1 -81920 81920 0 Parameter "Resonance" 23 3 0 16384 0 Parameter "Input gain (dB)" 23 0 -172155 163840 0 Parameter "Output gain (dB)" 23 5 -245760 245760 0 Parameter "VCO 1 to Filter Cutoff" 13 2 0 32768 0 Frame "Filter Envelope" 1 Parameter "Attack" 2 0 0 16384 0 Parameter "Decay" 2 1 0 16384 0 Parameter "Sustain" 2 2 0 16384 0 Parameter "Release" 2 3 0 16384 0 Parameter "Time Scale" 2 8 Parameter "Envelope to Filter Cutoff" 13 1 0 32768 0 Parameter "Inverse Envelope to Filter Cutoff" 13 3 0 32768 0 Parameter "Envelope to Resonance" 28 1 0 16384 0 Frame "Volume Envelope" 1 Parameter "Attack" 3 0 0 16384 0 Parameter "Decay" 3 1 0 16384 0 Parameter "Sustain" 3 2 0 16384 0 Parameter "Release" 3 3 0 16384 0 Parameter "Time Scale" 3 8 Frame "Reverb" 1 Parameter "Early Reflections" 21 5 -1310720 0 0 Parameter "Reverb Tail" 21 6 -1310720 0 0 Parameter "Reverb Time" 21 1 16384 327680 0 Parameter "Room Size" 21 0 163840 2457600 0 Parameter "Input Bandwidth" 21 2 0 16384 0 Parameter "Damping" 21 3 0 16384 0 Program 0 -4 Program 0 0 Program 0 -4 Program 0 115 Program 0 -4 Program 0 257 Program 0 29628 Program 0 106 Program 0 133 Program 0 0 Program 0 0 Program 0 32768 Program 0 32768 Program 0 32768 Program 0 0 Program 0 -19206 Program 0 0 Program 0 163840 Program 0 -148383 Program 0 0 Program 0 52 Program 0 10348 Program 0 0 Program 0 2509 Program 0 2 Program 0 14581 Program 0 0 Program 0 0 Program 0 82 Program 0 13173 Program 0 13008 Program 0 2635 Program 0 2 Program 0 -176795 Program 0 -103638 Program 0 29415 Program 0 793290 Program 0 6706 Program 0 2012 Program 1 -4 Program 1 0 Program 1 -3 Program 1 115 Program 1 -2 Program 1 257 Program 1 29628 Program 1 106 Program 1 133 Program 1 0 Program 1 0 Program 1 32768 Program 1 32768 Program 1 32768 Program 1 4746 Program 1 -10047 Program 1 0 Program 1 163840 Program 1 -148383 Program 1 0 Program 1 3606 Program 1 10348 Program 1 0 Program 1 2509 Program 1 2 Program 1 13327 Program 1 0 Program 1 16384 Program 1 82 Program 1 13173 Program 1 13008 Program 1 2635 Program 1 2 Program 1 -79253 Program 1 -182891 Program 1 29415 Program 1 793290 Program 1 6706 Program 1 2012 Program 2 -4 Program 2 0 Program 2 -3 Program 2 115 Program 2 -2 Program 2 257 Program 2 29628 Program 2 106 Program 2 133 Program 2 0 Program 2 0 Program 2 32768 Program 2 32768 Program 2 32768 Program 2 0 Program 2 -17775 Program 2 0 Program 2 163840 Program 2 -104332 Program 2 0 Program 2 52 Program 2 3998 Program 2 0 Program 2 2509 Program 2 2 Program 2 9094 Program 2 0 Program 2 12464 Program 2 82 Program 2 5352 Program 2 10538 Program 2 2635 Program 2 2 Program 2 -298722 Program 2 -182891 Program 2 29415 Program 2 793290 Program 2 5563 Program 2 2012 Program 3 -4 Program 3 0 Program 3 -3 Program 3 26 Program 3 -1 Program 3 81 Program 3 29628 Program 3 34 Program 3 133 Program 3 0 Program 3 0 Program 3 32768 Program 3 32768 Program 3 32768 Program 3 0 Program 3 -30181 Program 3 0 Program 3 -12999 Program 3 -15287 Program 3 0 Program 3 52 Program 3 1960 Program 3 0 Program 3 2509 Program 3 2 Program 3 12229 Program 3 0 Program 3 0 Program 3 82 Program 3 5352 Program 3 10538 Program 3 2635 Program 3 2 Program 3 -585252 Program 3 -469421 Program 3 29415 Program 3 793290 Program 3 5563 Program 3 2012 Program 4 -4 Program 4 0 Program 4 -4 Program 4 39 Program 4 -4 Program 4 75 Program 4 29628 Program 4 34 Program 4 133 Program 4 0 Program 4 0 Program 4 32768 Program 4 32768 Program 4 32768 Program 4 0 Program 4 -81920 Program 4 0 Program 4 70597 Program 4 -78784 Program 4 0 Program 4 2587 Program 4 7839 Program 4 0 Program 4 2267 Program 4 2 Program 4 14014 Program 4 0 Program 4 0 Program 4 324 Program 4 8735 Program 4 10538 Program 4 3153 Program 4 2 Program 4 -585252 Program 4 -469421 Program 4 29415 Program 4 793290 Program 4 5563 Program 4 2012 Program 5 -4 Program 5 0 Program 5 -3 Program 5 115 Program 5 -2 Program 5 257 Program 5 29628 Program 5 106 Program 5 133 Program 5 0 Program 5 0 Program 5 0 Program 5 0 Program 5 0 Program 5 13785 Program 5 -10047 Program 5 0 Program 5 163840 Program 5 -148383 Program 5 0 Program 5 3606 Program 5 10348 Program 5 0 Program 5 2509 Program 5 2 Program 5 13327 Program 5 0 Program 5 16384 Program 5 82 Program 5 13173 Program 5 13008 Program 5 2635 Program 5 2 Program 5 -79253 Program 5 -182891 Program 5 29415 Program 5 793290 Program 5 6706 Program 5 2012 Program 6 -4 Program 6 0 Program 6 -3 Program 6 115 Program 6 -2 Program 6 257 Program 6 29628 Program 6 106 Program 6 133 Program 6 0 Program 6 0 Program 6 32768 Program 6 0 Program 6 0 Program 6 13785 Program 6 -81920 Program 6 0 Program 6 163840 Program 6 -148383 Program 6 1546 Program 6 78 Program 6 2430 Program 6 0 Program 6 2509 Program 6 2 Program 6 15522 Program 6 0 Program 6 13719 Program 6 82 Program 6 3540 Program 6 0 Program 6 2635 Program 6 2 Program 6 -493806 Program 6 -182891 Program 6 29415 Program 6 793290 Program 6 0 Program 6 2012 Program 7 -3 Program 7 0 Program 7 -3 Program 7 26 Program 7 -1 Program 7 81 Program 7 29628 Program 7 34 Program 7 133 Program 7 0 Program 7 0 Program 7 32768 Program 7 32768 Program 7 21770 Program 7 0 Program 7 24550 Program 7 0 Program 7 -12999 Program 7 -15287 Program 7 0 Program 7 1082 Program 7 4946 Program 7 0 Program 7 2509 Program 7 2 Program 7 5461 Program 7 0 Program 7 0 Program 7 1602 Program 7 5352 Program 7 10538 Program 7 2635 Program 7 2 Program 7 -585252 Program 7 -469421 Program 7 29415 Program 7 793290 Program 7 5563 Program 7 2012 Program 8 -3 Program 8 0 Program 8 -3 Program 8 26 Program 8 -1 Program 8 81 Program 8 29628 Program 8 34 Program 8 133 Program 8 0 Program 8 0 Program 8 32768 Program 8 0 Program 8 0 Program 8 0 Program 8 62280 Program 8 0 Program 8 63147 Program 8 -15287 Program 8 0 Program 8 979 Program 8 1133 Program 8 0 Program 8 464 Program 8 1 Program 8 0 Program 8 3194 Program 8 0 Program 8 1602 Program 8 4135 Program 8 10538 Program 8 775 Program 8 2 Program 8 -380398 Program 8 -450689 Program 8 29415 Program 8 793290 Program 8 2843 Program 8 2012 Program 9 -4 Program 9 0 Program 9 -4 Program 9 26 Program 9 -4 Program 9 81 Program 9 29628 Program 9 34 Program 9 151 Program 9 0 Program 9 0 Program 9 32768 Program 9 32768 Program 9 32768 Program 9 0 Program 9 -8011 Program 9 9252 Program 9 63147 Program 9 -15287 Program 9 10750 Program 9 979 Program 9 8759 Program 9 0 Program 9 876 Program 9 2 Program 9 10614 Program 9 3194 Program 9 13190 Program 9 1602 Program 9 9458 Program 9 15402 Program 9 1757 Program 9 2 Program 9 -380398 Program 9 -450689 Program 9 29415 Program 9 793290 Program 9 2843 Program 9 2012 PresetName "Slow Lead Synth With Powerful Bass" PresetName "Slow Powerful Noisy Synth Best Played In The Bass Region" PresetName "Three Octave Synth With Resonance Envelope" PresetName "Lead Synth For Baroque Music" PresetName "Soft Bass Synth" PresetName "Noise Explosion" PresetName "Percussive Noise " PresetName "Bright Synth For Baroque Music" PresetName "Synth Trumpet" PresetName "Filter Modulation With VCO 1 Best Played In Bass Region" ams-2.0.1/instruments/miniams.ams0000664000076400007640000003002610047700634013761 00000000000000Module 35 1 22 174 0 0 FSlider 1 0 0 0 -16384 16384 1 ISlider 1 0 36 1 ISlider 1 1 0 1 ISlider 1 2 0 1 ISlider 1 3 0 1 ISlider 1 4 0 1 Module 34 2 229 23 0 0 ColorP 0 0 2 1 250 200 50 180 180 180 ColorP 1 3 2 1 250 200 50 180 180 180 FSlider 2 0 52 0 0 16384 1 FSlider 2 1 10348 0 0 16384 1 FSlider 2 2 0 0 0 16384 1 FSlider 2 3 2509 0 0 16384 1 FSlider 2 4 0 0 -16384 16384 1 FSlider 2 5 0 0 -16384 16384 1 FSlider 2 6 0 0 -16384 16384 1 FSlider 2 7 0 0 -16384 16384 1 ComboBox 2 0 2 1 ComboBox 2 1 1 1 Module 34 3 229 343 0 0 ColorP 0 0 3 1 250 200 50 180 180 180 ColorP 1 3 3 1 250 200 50 180 180 180 FSlider 3 0 82 0 0 16384 1 FSlider 3 1 13173 0 0 16384 1 FSlider 3 2 13008 0 0 16384 1 FSlider 3 3 2635 0 0 16384 1 FSlider 3 4 0 0 -16384 16384 1 FSlider 3 5 0 0 -16384 16384 1 FSlider 3 6 0 0 -16384 16384 1 FSlider 3 7 0 0 -16384 16384 1 ComboBox 3 0 2 1 ComboBox 3 1 1 1 Module 6 8 449 19 2 blvco Saw-VCO ColorP 0 1 8 1 250 200 50 180 180 180 ColorP 1 0 8 25 250 200 50 180 180 180 FSlider 8 0 115 0 0 545 1 FSlider 8 1 16480 0 0 65536 1 FSlider 8 2 0 0 0 65536 1 FSlider 8 3 8233 0 0 16384 1 LSlider 8 0 -4 1 Module 6 9 449 158 2 blvco Saw-VCO ColorP 0 1 9 1 250 200 50 180 180 180 ColorP 1 0 9 25 250 200 50 180 180 180 FSlider 9 0 257 0 0 545 1 FSlider 9 1 16480 0 0 65536 1 FSlider 9 2 0 0 0 65536 1 FSlider 9 3 8233 0 0 16384 1 LSlider 9 0 -4 1 Module 6 10 448 297 2 blvco Saw-VCO ColorP 0 1 10 1 250 200 50 180 180 180 ColorP 1 0 10 25 250 200 50 180 180 180 FSlider 10 0 0 0 0 545 1 FSlider 10 1 16480 0 0 65536 1 FSlider 10 2 0 0 0 65536 1 FSlider 10 3 8233 0 0 16384 1 LSlider 10 0 -4 1 Module 2 12 818 492 0 0 ColorP 0 0 12 3 250 200 50 180 180 180 ColorP 1 0 12 30 250 200 50 180 180 180 ColorP 2 0 12 23 250 200 50 180 180 180 FSlider 12 0 0 0 0 163840 1 FSlider 12 1 0 0 0 16384 1 FSlider 12 2 16384 0 0 32768 1 FSlider 12 3 16384 0 0 32768 1 FSlider 12 4 16384 0 0 32768 1 Module 8 13 386 613 4 0 ColorP 0 0 13 2 250 200 50 180 180 180 ColorP 1 0 13 8 250 200 50 180 180 180 ColorP 2 0 13 34 250 200 50 180 180 180 ColorP 3 1 13 26 250 200 50 180 180 180 FSlider 13 0 16384 0 0 32768 1 FSlider 13 1 14581 0 0 32768 1 FSlider 13 2 0 0 0 32768 1 FSlider 13 3 0 0 0 32768 1 FSlider 13 4 133 0 0 32768 1 Module 8 14 773 123 4 0 ColorP 0 0 14 8 250 200 50 180 180 180 ColorP 1 0 14 9 250 200 50 180 180 180 ColorP 2 0 14 10 250 200 50 180 180 180 ColorP 3 1 14 32 250 200 50 180 180 180 FSlider 14 0 16384 0 0 32768 1 FSlider 14 1 32768 0 0 32768 1 FSlider 14 2 32768 0 0 32768 1 FSlider 14 3 32768 0 0 32768 1 FSlider 14 4 0 0 0 32768 1 Module 23 19 977 585 0 0 ColorP 0 0 19 21 250 200 50 180 180 180 ColorP 1 1 19 21 250 200 50 180 180 180 FSlider 19 0 3265 0 0 16384 1 FSlider 19 1 8192 0 0 16384 1 FSlider 19 2 8192 0 0 16384 1 ComboBox 19 0 0 1 Module 7 20 809 658 0 0 ColorP 0 0 20 21 250 200 50 180 180 180 ColorP 1 1 20 21 250 200 50 180 180 180 FSlider 20 0 3304 0 0 16384 1 FSlider 20 1 8192 0 0 16384 1 FSlider 20 2 8192 0 0 16384 1 ComboBox 20 0 0 1 Module 6 21 850 377 0 g2reverb G2reverb ColorP 0 0 21 12 250 200 50 180 180 180 ColorP 1 0 21 12 250 200 50 180 180 180 FSlider 21 0 793290 0 163840 2457600 1 FSlider 21 1 29415 0 16384 327680 1 FSlider 21 2 6706 0 0 16384 1 FSlider 21 3 2012 0 0 16384 1 FSlider 21 4 0 0 -1310720 0 1 FSlider 21 5 -176795 0 -1310720 0 1 FSlider 21 6 -103638 0 -1310720 0 1 Module 6 23 878 167 2 mvclpf24 Mvclpf-3 ColorP 0 0 23 14 250 200 50 180 180 180 ColorP 1 1 23 1 250 200 50 180 180 180 ColorP 2 0 23 13 250 200 50 180 180 180 ColorP 3 0 23 28 250 200 50 180 180 180 FSlider 23 0 163840 0 -172155 163840 1 FSlider 23 1 -19206 0 -81920 81920 1 FSlider 23 2 115934 0 0 163840 1 FSlider 23 3 0 0 0 16384 1 FSlider 23 4 9159 0 0 16384 1 FSlider 23 5 -148383 0 -245760 245760 1 FSMIDI 23 1 10 0 1 Module 8 25 204 697 2 0 ColorP 0 5 25 1 250 200 50 180 180 180 ColorP 1 1 25 26 250 200 50 180 180 180 FSlider 25 0 16384 0 0 32768 1 FSlider 25 1 16384 0 0 32768 1 FSlider 25 2 106 0 0 3283 1 Module 3 26 29 472 0 0 FSlider 26 0 29628 1 -75451 75451 1 FSlider 26 1 0 0 0 102940 1 Module 8 28 540 501 2 0 ColorP 0 0 28 2 250 200 50 180 180 180 ColorP 1 1 28 26 250 200 50 180 180 180 FSlider 28 0 16384 0 0 32768 1 FSlider 28 1 0 0 0 32768 1 FSlider 28 2 0 0 0 16384 1 Module 5 30 611 642 0 0 ColorP 0 1 30 26 250 200 50 180 180 180 ColorP 1 0 30 3 250 200 50 180 180 180 FSlider 30 0 8192 0 0 81920 1 Module 14 32 715 372 0 0 FSlider 32 0 81920 0 0 163840 1 FSlider 32 1 8192 0 0 16384 1 Module 13 34 243 553 0 0 ColorP 0 0 34 2 250 200 50 180 180 180 Tab "Oscillators / LFO / Mixer" Tab "Filter / Envelopes / Reverb" Frame "Oscillators" 0 Parameter "VCO 1 Octave" 10 0 Parameter "VCO 1 Tune" 10 1 0 545 0 Parameter "VCO 2 Octave" 8 0 Parameter "VCO 2 Tune" 8 1 0 545 0 Parameter "VCO 3 Octave" 9 0 Parameter "VCO 3 Tune" 9 1 0 545 0 Frame "LFO" 0 Parameter "Frequency" 26 0 -75451 75448 1 Parameter "Pitch Modulation" 25 2 0 3277 0 Parameter "Filter Modulation" 13 4 0 32768 0 Parameter "Resonance Modulation" 28 2 0 16384 0 Parameter "Amplitude Modulation" 12 1 0 16384 0 Frame "Mixer" 0 Parameter "VCO 1 Level" 14 1 0 32768 0 Parameter "VCO 2 Level" 14 2 0 32768 0 Parameter "VCO 3 Level" 14 3 0 32768 0 Parameter "Noise" 14 4 0 32768 0 Frame "Filter" 1 Parameter "Cutoff Frequency" 23 1 -81920 81920 0 Parameter "Resonance" 23 3 0 16384 0 Parameter "Input gain (dB)" 23 0 -172155 163840 0 Parameter "Output gain (dB)" 23 5 -245760 245760 0 Parameter "VCO 1 to Filter Cutoff" 13 2 0 32768 0 Frame "Filter Envelope" 1 Parameter "Attack" 2 0 0 16384 0 Parameter "Decay" 2 1 0 16384 0 Parameter "Sustain" 2 2 0 16384 0 Parameter "Release" 2 3 0 16384 0 Parameter "Time Scale" 2 8 Parameter "Envelope to Filter Cutoff" 13 1 0 32768 0 Parameter "Inverse Envelope to Filter Cutoff" 13 3 0 32768 0 Parameter "Envelope to Resonance" 28 1 0 16384 0 Frame "Volume Envelope" 1 Parameter "Attack" 3 0 0 16384 0 Parameter "Decay" 3 1 0 16384 0 Parameter "Sustain" 3 2 0 16384 0 Parameter "Release" 3 3 0 16384 0 Parameter "Time Scale" 3 8 Frame "Reverb" 1 Parameter "Early Reflections" 21 5 -1310720 0 0 Parameter "Reverb Tail" 21 6 -1310720 0 0 Parameter "Reverb Time" 21 1 16384 327680 0 Parameter "Room Size" 21 0 163840 2457600 0 Parameter "Input Bandwidth" 21 2 0 16384 0 Parameter "Damping" 21 3 0 16384 0 Program 0 -4 Program 0 0 Program 0 -4 Program 0 115 Program 0 -4 Program 0 257 Program 0 29628 Program 0 106 Program 0 133 Program 0 0 Program 0 0 Program 0 32768 Program 0 32768 Program 0 32768 Program 0 0 Program 0 -19206 Program 0 0 Program 0 163840 Program 0 -148383 Program 0 0 Program 0 52 Program 0 10348 Program 0 0 Program 0 2509 Program 0 2 Program 0 14581 Program 0 0 Program 0 0 Program 0 82 Program 0 13173 Program 0 13008 Program 0 2635 Program 0 2 Program 0 -176795 Program 0 -103638 Program 0 29415 Program 0 793290 Program 0 6706 Program 0 2012 Program 1 -4 Program 1 0 Program 1 -3 Program 1 115 Program 1 -2 Program 1 257 Program 1 29628 Program 1 106 Program 1 133 Program 1 0 Program 1 0 Program 1 32768 Program 1 32768 Program 1 32768 Program 1 4746 Program 1 -10047 Program 1 0 Program 1 163840 Program 1 -148383 Program 1 0 Program 1 3606 Program 1 10348 Program 1 0 Program 1 2509 Program 1 2 Program 1 13327 Program 1 0 Program 1 16384 Program 1 82 Program 1 13173 Program 1 13008 Program 1 2635 Program 1 2 Program 1 -79253 Program 1 -182891 Program 1 29415 Program 1 793290 Program 1 6706 Program 1 2012 Program 2 -4 Program 2 0 Program 2 -3 Program 2 115 Program 2 -2 Program 2 257 Program 2 29628 Program 2 106 Program 2 133 Program 2 0 Program 2 0 Program 2 32768 Program 2 32768 Program 2 32768 Program 2 0 Program 2 -17775 Program 2 0 Program 2 163840 Program 2 -104332 Program 2 0 Program 2 52 Program 2 3998 Program 2 0 Program 2 2509 Program 2 2 Program 2 9094 Program 2 0 Program 2 12464 Program 2 82 Program 2 5352 Program 2 10538 Program 2 2635 Program 2 2 Program 2 -298722 Program 2 -182891 Program 2 29415 Program 2 793290 Program 2 5563 Program 2 2012 Program 3 -4 Program 3 0 Program 3 -3 Program 3 26 Program 3 -1 Program 3 81 Program 3 29628 Program 3 34 Program 3 133 Program 3 0 Program 3 0 Program 3 32768 Program 3 32768 Program 3 32768 Program 3 0 Program 3 -30181 Program 3 0 Program 3 -12999 Program 3 -15287 Program 3 0 Program 3 52 Program 3 1960 Program 3 0 Program 3 2509 Program 3 2 Program 3 12229 Program 3 0 Program 3 0 Program 3 82 Program 3 5352 Program 3 10538 Program 3 2635 Program 3 2 Program 3 -585252 Program 3 -469421 Program 3 29415 Program 3 793290 Program 3 5563 Program 3 2012 Program 4 -4 Program 4 0 Program 4 -4 Program 4 39 Program 4 -4 Program 4 75 Program 4 29628 Program 4 34 Program 4 133 Program 4 0 Program 4 0 Program 4 32768 Program 4 32768 Program 4 32768 Program 4 0 Program 4 -81920 Program 4 0 Program 4 70597 Program 4 -78784 Program 4 0 Program 4 2587 Program 4 7839 Program 4 0 Program 4 2267 Program 4 2 Program 4 14014 Program 4 0 Program 4 0 Program 4 324 Program 4 8735 Program 4 10538 Program 4 3153 Program 4 2 Program 4 -585252 Program 4 -469421 Program 4 29415 Program 4 793290 Program 4 5563 Program 4 2012 Program 5 -4 Program 5 0 Program 5 -3 Program 5 115 Program 5 -2 Program 5 257 Program 5 29628 Program 5 106 Program 5 133 Program 5 0 Program 5 0 Program 5 0 Program 5 0 Program 5 0 Program 5 13785 Program 5 -10047 Program 5 0 Program 5 163840 Program 5 -148383 Program 5 0 Program 5 3606 Program 5 10348 Program 5 0 Program 5 2509 Program 5 2 Program 5 13327 Program 5 0 Program 5 16384 Program 5 82 Program 5 13173 Program 5 13008 Program 5 2635 Program 5 2 Program 5 -79253 Program 5 -182891 Program 5 29415 Program 5 793290 Program 5 6706 Program 5 2012 Program 6 -4 Program 6 0 Program 6 -3 Program 6 115 Program 6 -2 Program 6 257 Program 6 29628 Program 6 106 Program 6 133 Program 6 0 Program 6 0 Program 6 32768 Program 6 0 Program 6 0 Program 6 13785 Program 6 -81920 Program 6 0 Program 6 163840 Program 6 -148383 Program 6 1546 Program 6 78 Program 6 2430 Program 6 0 Program 6 2509 Program 6 2 Program 6 15522 Program 6 0 Program 6 13719 Program 6 82 Program 6 3540 Program 6 0 Program 6 2635 Program 6 2 Program 6 -493806 Program 6 -182891 Program 6 29415 Program 6 793290 Program 6 0 Program 6 2012 Program 7 -3 Program 7 0 Program 7 -3 Program 7 26 Program 7 -1 Program 7 81 Program 7 29628 Program 7 34 Program 7 133 Program 7 0 Program 7 0 Program 7 32768 Program 7 32768 Program 7 21770 Program 7 0 Program 7 24550 Program 7 0 Program 7 -12999 Program 7 -15287 Program 7 0 Program 7 1082 Program 7 4946 Program 7 0 Program 7 2509 Program 7 2 Program 7 5461 Program 7 0 Program 7 0 Program 7 1602 Program 7 5352 Program 7 10538 Program 7 2635 Program 7 2 Program 7 -585252 Program 7 -469421 Program 7 29415 Program 7 793290 Program 7 5563 Program 7 2012 Program 8 -3 Program 8 0 Program 8 -3 Program 8 26 Program 8 -1 Program 8 81 Program 8 29628 Program 8 34 Program 8 133 Program 8 0 Program 8 0 Program 8 32768 Program 8 0 Program 8 0 Program 8 0 Program 8 62280 Program 8 0 Program 8 63147 Program 8 -15287 Program 8 0 Program 8 979 Program 8 1133 Program 8 0 Program 8 464 Program 8 1 Program 8 0 Program 8 3194 Program 8 0 Program 8 1602 Program 8 4135 Program 8 10538 Program 8 775 Program 8 2 Program 8 -380398 Program 8 -450689 Program 8 29415 Program 8 793290 Program 8 2843 Program 8 2012 Program 9 -4 Program 9 0 Program 9 -4 Program 9 26 Program 9 -4 Program 9 81 Program 9 29628 Program 9 34 Program 9 151 Program 9 0 Program 9 0 Program 9 32768 Program 9 32768 Program 9 32768 Program 9 0 Program 9 -8011 Program 9 9252 Program 9 63147 Program 9 -15287 Program 9 10750 Program 9 979 Program 9 8759 Program 9 0 Program 9 876 Program 9 2 Program 9 10614 Program 9 3194 Program 9 13190 Program 9 1602 Program 9 9458 Program 9 15402 Program 9 1757 Program 9 2 Program 9 -380398 Program 9 -450689 Program 9 29415 Program 9 793290 Program 9 2843 Program 9 2012 PresetName "Slow Lead Synth With Powerful Bass" PresetName "Slow Powerful Noisy Synth Best Played In The Bass Region" PresetName "Three Octave Synth With Resonance Envelope" PresetName "Lead Synth For Baroque Music" PresetName "Soft Bass Synth" PresetName "Noise Explosion" PresetName "Percussive Noise " PresetName "Bright Synth For Baroque Music" PresetName "Synth Trumpet" PresetName "Filter Modulation With VCO 1 Best Played In Bass Region" ams-2.0.1/instruments/hplp_instrument.ams0000664000076400007640000005261310072545655015575 00000000000000Module 6 1 662 339 2 blvco Saw-VCO ColorP 0 0 1 32 250 200 50 180 180 180 ColorP 1 0 1 19 250 200 50 180 180 180 FSlider 1 0 0 0 0 16384 1 FSlider 1 1 16466 0 0 65536 1 FSlider 1 2 0 0 0 65536 1 FSlider 1 3 7739 0 0 16384 1 LSlider 1 0 -1 1 Module 6 2 663 495 2 blvco Saw-VCO ColorP 0 1 2 32 250 200 50 180 180 180 ColorP 1 0 2 19 250 200 50 180 180 180 FSlider 2 0 40 0 0 16384 1 FSlider 2 1 16466 0 0 65536 1 FSlider 2 2 0 0 0 65536 1 FSlider 2 3 9303 0 0 16384 1 LSlider 2 0 0 1 Module 6 3 664 654 2 blvco Saw-VCO ColorP 0 2 3 32 250 200 50 180 180 180 ColorP 1 0 3 19 250 200 50 180 180 180 FSlider 3 0 80 0 0 16384 1 FSlider 3 1 16466 0 0 65536 1 FSlider 3 2 0 0 0 65536 1 FSlider 3 3 11115 0 0 16384 1 LSlider 3 0 2 1 Module 6 4 1209 360 2 mvchpf24 Mvchpf-1 ColorP 0 0 4 17 250 200 50 180 180 180 ColorP 2 0 4 14 250 200 50 180 180 180 FSlider 4 0 77824 0 -983040 163840 1 FSlider 4 1 81920 0 -81920 81920 1 FSlider 4 2 16542 0 0 163840 1 FSlider 4 3 -69632 0 -245760 245760 1 Module 6 5 1207 507 2 mvclpf24 Mvclpf-4 ColorP 0 0 5 17 250 200 50 180 180 180 ColorP 1 3 5 32 250 200 50 180 180 180 ColorP 2 0 5 22 250 200 50 180 180 180 ColorP 3 0 5 21 250 200 50 180 180 180 FSlider 5 0 44869 0 -983040 163840 1 FSlider 5 1 -98304 0 -98304 98304 1 FSlider 5 2 33083 0 0 163840 1 FSlider 5 3 686 0 0 16384 1 FSlider 5 4 16384 0 0 16384 1 FSlider 5 5 190693 0 -245760 245760 1 LSlider 5 0 4 1 FSMIDI 5 1 10 0 1 Module 35 6 27 27 0 0 FSlider 6 0 129 0 -16384 16384 1 ISlider 6 0 0 1 ISlider 6 1 0 1 ISlider 6 2 0 1 ISlider 6 3 0 1 ISlider 6 4 0 1 FSMIDI 6 0 13 0 0 Module 39 7 333 31 0 0 ColorP 0 0 7 6 250 200 50 180 180 180 ColorP 1 3 7 6 250 200 50 180 180 180 FSlider 7 0 -88562 0 -131072 131072 1 FSlider 7 1 -85020 0 -131072 131072 1 FSlider 7 2 0 0 0 16384 1 FSlider 7 3 0 0 0 16384 1 FSlider 7 4 -102732 0 -131072 131072 1 FSlider 7 5 16384 0 -131072 131072 1 FSlider 7 6 16384 0 -131072 131072 1 FSlider 7 7 16384 0 0 16384 1 FSlider 7 8 16384 0 0 16384 1 FSlider 7 9 16384 0 -131072 131072 1 Module 39 8 334 305 0 0 ColorP 0 0 8 6 250 200 50 180 180 180 ColorP 1 3 8 6 250 200 50 180 180 180 FSlider 8 0 -131072 0 -131072 131072 1 FSlider 8 1 -11591 0 -131072 131072 1 FSlider 8 2 0 0 0 16384 1 FSlider 8 3 3290 0 0 16384 1 FSlider 8 4 -18725 0 -131072 131072 1 FSlider 8 5 16384 0 -131072 131072 1 FSlider 8 6 16384 0 -131072 131072 1 FSlider 8 7 16384 0 0 16384 1 FSlider 8 8 16384 0 0 16384 1 FSlider 8 9 16384 0 -131072 131072 1 Module 39 9 334 561 0 0 ColorP 0 0 9 6 250 200 50 180 180 180 ColorP 1 3 9 6 250 200 50 180 180 180 FSlider 9 0 -131072 0 -131072 131072 1 FSlider 9 1 -13055 0 -131072 131072 1 FSlider 9 2 12533 0 0 16384 1 FSlider 9 3 3525 0 0 16384 1 FSlider 9 4 -15367 0 -131072 131072 1 FSlider 9 5 16384 0 -131072 131072 1 FSlider 9 6 16384 0 -131072 131072 1 FSlider 9 7 16384 0 0 16384 1 FSlider 9 8 16384 0 0 16384 1 FSlider 9 9 16384 0 -131072 131072 1 Module 2 10 1515 400 0 0 ColorP 0 0 10 9 250 200 50 180 180 180 ColorP 2 0 10 4 250 200 50 180 180 180 ColorP 3 0 10 5 250 200 50 180 180 180 FSlider 10 0 0 0 0 16384 1 FSlider 10 1 0 0 0 16384 1 FSlider 10 2 15019 0 0 32768 1 FSlider 10 3 16452 0 0 32768 1 FSlider 10 4 16384 0 0 32768 1 Module 7 11 2105 436 0 0 ColorP 0 0 11 26 250 200 50 180 180 180 ColorP 1 1 11 26 250 200 50 180 180 180 FSlider 11 0 3641 0 0 16384 1 FSlider 11 1 8192 0 0 16384 1 FSlider 11 2 8192 0 0 16384 1 ComboBox 11 0 0 1 Module 41 14 640 43 0 0 ColorP 0 0 14 7 250 200 50 180 180 180 FSlider 14 0 -139485 0 -163840 163840 1 Module 41 15 641 178 0 0 ColorP 0 0 15 8 250 200 50 180 180 180 FSlider 15 0 88050 0 -163840 163840 1 Module 14 16 784 806 0 0 FSlider 16 0 81920 0 0 163840 1 FSlider 16 1 8192 0 0 16384 1 Module 8 17 1018 544 4 0 ColorP 0 0 17 1 250 200 50 180 180 180 ColorP 1 0 17 2 250 200 50 180 180 180 ColorP 2 0 17 3 250 200 50 180 180 180 ColorP 3 1 17 16 250 200 50 180 180 180 FSlider 17 0 16384 0 0 32768 1 FSlider 17 1 11112 0 0 32768 1 FSlider 17 2 16214 0 0 32768 1 FSlider 17 3 15534 0 0 32768 1 FSlider 17 4 0 0 0 32768 1 Module 3 18 24 570 0 0 FSlider 18 0 29734 1 -150902 75451 1 FSlider 18 1 0 0 0 102940 1 Module 41 19 341 818 0 0 ColorP 0 0 19 20 250 200 50 180 180 180 FSlider 19 0 242 0 -163840 163840 1 Module 8 20 174 609 4 0 ColorP 0 1 20 18 250 200 50 180 180 180 ColorP 1 2 20 18 250 200 50 180 180 180 ColorP 2 4 20 18 250 200 50 180 180 180 ColorP 3 5 20 18 250 200 50 180 180 180 FSlider 20 0 16384 0 0 32768 1 FSlider 20 1 16384 0 0 32768 1 FSlider 20 2 0 0 0 32768 1 FSlider 20 3 0 0 0 32768 1 FSlider 20 4 0 0 0 32768 1 Module 8 21 1022 169 2 0 ColorP 0 0 21 29 250 200 50 180 180 180 ColorP 1 0 21 30 250 200 50 180 180 180 FSlider 21 0 16384 0 0 32768 1 FSlider 21 1 16384 0 0 32768 1 FSlider 21 2 16384 0 0 32768 1 Module 8 22 1020 360 2 0 ColorP 0 0 22 15 250 200 50 180 180 180 ColorP 1 0 22 20 250 200 50 180 180 180 FSlider 22 0 16384 0 0 32768 1 FSlider 22 1 16384 0 0 32768 1 FSlider 22 2 320 0 0 32768 1 Module 37 24 1649 408 0 0 ColorP 0 0 24 10 250 200 50 180 180 180 ColorP 1 0 24 20 250 200 50 180 180 180 FSlider 24 0 -3463 0 -16384 16384 1 FSlider 24 1 23614 0 0 32768 1 ComboBox 24 0 4 1 Module 6 26 1805 437 0 g2reverb G2reverb ColorP 0 0 26 24 250 200 50 180 180 180 ColorP 1 1 26 24 250 200 50 180 180 180 FSlider 26 0 660278 0 163840 2457600 1 FSlider 26 1 25728 0 16384 327680 1 FSlider 26 2 10612 0 0 16384 1 FSlider 26 3 4814 0 0 16384 1 FSlider 26 4 0 0 -1310720 0 1 FSlider 26 5 -525945 0 -1310720 0 1 FSlider 26 6 -565287 0 -1310720 0 1 Module 41 29 839 46 0 0 ColorP 0 0 29 7 250 200 50 180 180 180 FSlider 29 0 -397 0 -163840 163840 1 Module 41 30 839 177 0 0 ColorP 0 0 30 8 250 200 50 180 180 180 FSlider 30 0 170 0 -163840 163840 1 Module 42 32 26 295 4 0 ColorP 0 1 32 6 250 200 50 180 180 180 FSlider 32 0 -86807 1 -150902 -40582 1 FSlider 32 1 -75451 1 -75451 0 1 FSlider 32 2 0 1 -75451 37725 1 FSlider 32 3 -86807 1 -150902 -40582 1 FSlider 32 4 -75451 1 -75451 0 1 FSlider 32 5 17999 1 -75451 37725 1 ComboBox 32 0 0 1 ComboBox 32 1 1 1 CheckBox 32 0 0 1 Tab "Oscillators / Mixer / LFO" Tab "Envelopes" Tab "Filters" Tab "Panning / Reverb" Frame "Oscillators" 0 Parameter "VCO 1 Octave" 1 0 Parameter "VCO 1 Tune" 1 1 0 16384 0 Parameter "VCO 2 Octave" 2 0 Parameter "VCO 2 Tune" 2 1 0 16384 0 Parameter "VCO 3 Octave" 3 0 Parameter "VCO 3 Tune" 3 1 0 16384 0 Frame "Mixer" 0 Parameter "VCO 1" 17 1 0 32768 0 Parameter "VCO 2" 17 2 0 32768 0 Parameter "VCO 3" 17 3 0 32768 0 Parameter "Noise" 17 4 0 32768 0 Frame "LFO" 0 Parameter "Frequency" 18 0 -150902 75448 1 Parameter "Triangle" 20 1 0 32768 0 Parameter "Saw" 20 2 0 32768 0 Parameter "Rectangle" 20 3 0 32768 0 Parameter "Sample & Hold" 20 4 0 32768 0 Parameter "LFO to Pitch" 19 0 0 16384 0 Parameter "LFO to Lowpass" 22 2 0 32768 0 Frame "Highpass Envelope" 1 Parameter "Attack" 7 0 -131072 131072 0 Parameter "Decay" 7 1 -131072 131072 0 Parameter "Sustain" 7 2 0 16384 0 Parameter "Ratio" 7 3 0 16384 0 Parameter "Release" 7 4 -131072 131072 0 Parameter "Amount to Highpass" 14 0 -163840 163840 0 Parameter "Amount to Lowpass Resonance" 29 0 -16384 16384 0 Frame "Lowpass Envelope" 1 Parameter "Attack" 8 0 -131072 131072 0 Parameter "Decay" 8 1 -131072 131072 0 Parameter "Sustain" 8 2 0 16384 0 Parameter "Ratio" 8 3 0 16384 0 Parameter "Release" 8 4 -131072 131072 0 Parameter "Amount to Lowpass" 15 0 -163840 163840 0 Parameter "Amount to Resonance" 30 0 -16384 16384 0 Frame "Volume Envelope" 1 Parameter "Attack" 9 0 -131072 131072 0 Parameter "Decay" 9 1 -131072 131072 0 Parameter "Sustain" 9 2 0 16384 0 Parameter "Ratio" 9 3 0 16384 0 Parameter "Release" 9 4 -131072 131072 0 Frame "Lowpass Filter" 2 Parameter "Input gain (dB)" 5 0 -983040 163840 0 Parameter "Frequency" 5 1 -98304 98304 0 Parameter "Resonance" 5 3 0 16384 0 Parameter "Filter poles" 5 5 Parameter "Output gain (dB)" 5 6 -245760 245760 0 Parameter "Signal to VCA" 10 3 0 32768 0 Frame "Highpass Filter" 2 Parameter "Input gain (dB)" 4 0 -983040 163840 0 Parameter "Frequency" 4 1 -81920 81920 0 Parameter "Output gain (dB)" 4 3 -245760 245760 0 Parameter "Signal to VCA" 10 2 0 32768 0 Frame "Panning" 3 Parameter "Pan Gain" 24 1 0 32768 0 Parameter "Pan Offset" 24 0 -16384 16384 0 Parameter "Panning Mode" 24 2 Frame "Reverb" 3 Parameter "Room size" 26 0 163840 2457600 0 Parameter "Reverb time" 26 1 16384 327680 0 Parameter "Input BW" 26 2 0 16384 0 Parameter "Damping" 26 3 0 16384 0 Parameter "Dry sound" 26 4 -1310720 0 0 Parameter "Reflections" 26 5 -1310720 0 0 Parameter "Reverb tail" 26 6 -1310720 0 0 Program 0 -1 Program 0 0 Program 0 0 Program 0 40 Program 0 2 Program 0 80 Program 0 11112 Program 0 16214 Program 0 15534 Program 0 0 Program 0 29734 Program 0 16384 Program 0 0 Program 0 0 Program 0 0 Program 0 242 Program 0 320 Program 0 -88562 Program 0 -85020 Program 0 0 Program 0 0 Program 0 -102732 Program 0 -139485 Program 0 -397 Program 0 -131072 Program 0 -11591 Program 0 0 Program 0 3290 Program 0 -18725 Program 0 88050 Program 0 170 Program 0 -131072 Program 0 -13055 Program 0 12533 Program 0 3525 Program 0 -15367 Program 0 44869 Program 0 -98304 Program 0 686 Program 0 4 Program 0 190693 Program 0 16452 Program 0 77824 Program 0 81920 Program 0 -69632 Program 0 15019 Program 0 23614 Program 0 -3463 Program 0 4 Program 0 660278 Program 0 25728 Program 0 10612 Program 0 4814 Program 0 0 Program 0 -525945 Program 0 -565287 Program 1 -1 Program 1 0 Program 1 -1 Program 1 40 Program 1 1 Program 1 80 Program 1 16384 Program 1 15308 Program 1 15068 Program 1 0 Program 1 29734 Program 1 16384 Program 1 0 Program 1 0 Program 1 0 Program 1 242 Program 1 320 Program 1 -131072 Program 1 -50650 Program 1 0 Program 1 8192 Program 1 -53068 Program 1 -96177 Program 1 -3238 Program 1 -85313 Program 1 -36675 Program 1 16384 Program 1 5302 Program 1 -18614 Program 1 53321 Program 1 97 Program 1 -131072 Program 1 -35166 Program 1 16384 Program 1 5235 Program 1 -8893 Program 1 163840 Program 1 -23548 Program 1 3302 Program 1 4 Program 1 91282 Program 1 16074 Program 1 163840 Program 1 81920 Program 1 -12800 Program 1 13977 Program 1 23614 Program 1 -3463 Program 1 4 Program 1 660278 Program 1 25728 Program 1 10612 Program 1 4814 Program 1 0 Program 1 -525945 Program 1 -565287 Program 2 -2 Program 2 0 Program 2 -1 Program 2 40 Program 2 -1 Program 2 80 Program 2 16384 Program 2 15308 Program 2 14750 Program 2 0 Program 2 29734 Program 2 16384 Program 2 0 Program 2 0 Program 2 0 Program 2 242 Program 2 320 Program 2 -71610 Program 2 -19821 Program 2 0 Program 2 8192 Program 2 -53068 Program 2 -139863 Program 2 0 Program 2 -119591 Program 2 319 Program 2 16384 Program 2 5302 Program 2 -14736 Program 2 24317 Program 2 1993 Program 2 -131072 Program 2 -3836 Program 2 16384 Program 2 5235 Program 2 -10439 Program 2 163840 Program 2 774 Program 2 2558 Program 2 4 Program 2 114859 Program 2 16074 Program 2 163840 Program 2 81920 Program 2 -82776 Program 2 13977 Program 2 23614 Program 2 -3463 Program 2 4 Program 2 660278 Program 2 25728 Program 2 10612 Program 2 4814 Program 2 0 Program 2 -525945 Program 2 -565287 Program 3 -2 Program 3 0 Program 3 -2 Program 3 76 Program 3 -2 Program 3 189 Program 3 16384 Program 3 15308 Program 3 14750 Program 3 0 Program 3 29734 Program 3 16384 Program 3 0 Program 3 0 Program 3 0 Program 3 242 Program 3 320 Program 3 -118924 Program 3 -62019 Program 3 0 Program 3 8192 Program 3 -53068 Program 3 -139863 Program 3 0 Program 3 -119591 Program 3 -18121 Program 3 11627 Program 3 1953 Program 3 -11162 Program 3 40016 Program 3 1993 Program 3 -131072 Program 3 -3836 Program 3 11703 Program 3 1958 Program 3 -8312 Program 3 163840 Program 3 -8515 Program 3 0 Program 3 4 Program 3 -6202 Program 3 16074 Program 3 163840 Program 3 81920 Program 3 -126003 Program 3 12686 Program 3 23614 Program 3 -3463 Program 3 4 Program 3 660278 Program 3 25728 Program 3 10612 Program 3 4814 Program 3 0 Program 3 -525945 Program 3 -565287 Program 4 -2 Program 4 0 Program 4 -2 Program 4 76 Program 4 -2 Program 4 189 Program 4 16384 Program 4 15308 Program 4 14750 Program 4 680 Program 4 29734 Program 4 16384 Program 4 0 Program 4 0 Program 4 0 Program 4 242 Program 4 320 Program 4 -118924 Program 4 -80334 Program 4 0 Program 4 8192 Program 4 -53068 Program 4 -139863 Program 4 0 Program 4 -119591 Program 4 -15100 Program 4 11627 Program 4 1953 Program 4 -11162 Program 4 58137 Program 4 1993 Program 4 -131072 Program 4 -3836 Program 4 11703 Program 4 1958 Program 4 -8312 Program 4 163840 Program 4 -16017 Program 4 0 Program 4 4 Program 4 -6202 Program 4 16074 Program 4 163840 Program 4 81920 Program 4 -126003 Program 4 12686 Program 4 23614 Program 4 -3463 Program 4 4 Program 4 660278 Program 4 25728 Program 4 10612 Program 4 4814 Program 4 0 Program 4 -525945 Program 4 -565287 Program 5 -2 Program 5 0 Program 5 -2 Program 5 76 Program 5 -2 Program 5 189 Program 5 16384 Program 5 15308 Program 5 14750 Program 5 10495 Program 5 29734 Program 5 16384 Program 5 0 Program 5 0 Program 5 0 Program 5 242 Program 5 320 Program 5 -131072 Program 5 -72482 Program 5 0 Program 5 8192 Program 5 -53068 Program 5 -139863 Program 5 0 Program 5 -131072 Program 5 -33825 Program 5 11627 Program 5 4492 Program 5 -11162 Program 5 40016 Program 5 1993 Program 5 -131072 Program 5 -28993 Program 5 11703 Program 5 4719 Program 5 -8312 Program 5 163840 Program 5 -8515 Program 5 0 Program 5 4 Program 5 -6202 Program 5 16074 Program 5 163840 Program 5 81920 Program 5 -245760 Program 5 16360 Program 5 23614 Program 5 -3463 Program 5 4 Program 5 660278 Program 5 25728 Program 5 10612 Program 5 4814 Program 5 0 Program 5 -525945 Program 5 -565287 Program 6 -1 Program 6 0 Program 6 -1 Program 6 40 Program 6 2 Program 6 80 Program 6 16384 Program 6 15308 Program 6 15068 Program 6 0 Program 6 29734 Program 6 16384 Program 6 0 Program 6 0 Program 6 0 Program 6 242 Program 6 320 Program 6 -131072 Program 6 -38363 Program 6 0 Program 6 8192 Program 6 -118673 Program 6 -89513 Program 6 0 Program 6 -131072 Program 6 -36675 Program 6 16384 Program 6 5302 Program 6 -21716 Program 6 24317 Program 6 1993 Program 6 -131072 Program 6 -35166 Program 6 16384 Program 6 5235 Program 6 -14306 Program 6 163840 Program 6 17803 Program 6 4727 Program 6 4 Program 6 14682 Program 6 20682 Program 6 163840 Program 6 81920 Program 6 -97280 Program 6 17579 Program 6 23614 Program 6 -3463 Program 6 4 Program 6 660278 Program 6 25728 Program 6 10612 Program 6 4814 Program 6 0 Program 6 -525945 Program 6 -565287 Program 7 -1 Program 7 0 Program 7 0 Program 7 40 Program 7 2 Program 7 80 Program 7 11112 Program 7 16214 Program 7 15534 Program 7 0 Program 7 29734 Program 7 16384 Program 7 0 Program 7 0 Program 7 0 Program 7 242 Program 7 320 Program 7 -88562 Program 7 -85020 Program 7 0 Program 7 0 Program 7 -102732 Program 7 -139485 Program 7 -397 Program 7 -131072 Program 7 -11591 Program 7 0 Program 7 3290 Program 7 -18725 Program 7 88050 Program 7 170 Program 7 -131072 Program 7 -13055 Program 7 12533 Program 7 3525 Program 7 -15367 Program 7 44869 Program 7 -98304 Program 7 686 Program 7 4 Program 7 190693 Program 7 16452 Program 7 77824 Program 7 81920 Program 7 -69632 Program 7 15019 Program 7 23614 Program 7 -3463 Program 7 4 Program 7 660278 Program 7 25728 Program 7 10612 Program 7 4814 Program 7 0 Program 7 -525945 Program 7 -565287 Program 8 -1 Program 8 0 Program 8 -1 Program 8 109 Program 8 0 Program 8 152 Program 8 16384 Program 8 15542 Program 8 17956 Program 8 0 Program 8 29734 Program 8 16384 Program 8 0 Program 8 0 Program 8 0 Program 8 242 Program 8 320 Program 8 -131072 Program 8 -75245 Program 8 0 Program 8 0 Program 8 -88562 Program 8 -163840 Program 8 221 Program 8 -131072 Program 8 62087 Program 8 0 Program 8 0 Program 8 9333 Program 8 70507 Program 8 111 Program 8 -131072 Program 8 80798 Program 8 7294 Program 8 5499 Program 8 15373 Program 8 163840 Program 8 -74214 Program 8 0 Program 8 4 Program 8 117537 Program 8 16060 Program 8 163840 Program 8 81920 Program 8 -245760 Program 8 2785 Program 8 23614 Program 8 -3463 Program 8 4 Program 8 660278 Program 8 25728 Program 8 10612 Program 8 4814 Program 8 0 Program 8 -525945 Program 8 -565287 Program 9 0 Program 9 0 Program 9 0 Program 9 76 Program 9 0 Program 9 189 Program 9 15593 Program 9 15672 Program 9 15819 Program 9 0 Program 9 29734 Program 9 16384 Program 9 0 Program 9 0 Program 9 0 Program 9 242 Program 9 320 Program 9 -86069 Program 9 -45566 Program 9 0 Program 9 0 Program 9 -87895 Program 9 -163840 Program 9 -443 Program 9 -117091 Program 9 30940 Program 9 0 Program 9 0 Program 9 3938 Program 9 69614 Program 9 0 Program 9 -131072 Program 9 18564 Program 9 9230 Program 9 0 Program 9 3938 Program 9 163840 Program 9 -51543 Program 9 0 Program 9 4 Program 9 129508 Program 9 10008 Program 9 163840 Program 9 81920 Program 9 -127530 Program 9 9742 Program 9 23614 Program 9 -3463 Program 9 4 Program 9 660278 Program 9 25728 Program 9 10612 Program 9 4814 Program 9 0 Program 9 -525945 Program 9 -565287 Program 10 -2 Program 10 0 Program 10 -2 Program 10 194 Program 10 -2 Program 10 324 Program 10 16384 Program 10 15308 Program 10 15486 Program 10 10495 Program 10 29734 Program 10 16384 Program 10 0 Program 10 0 Program 10 0 Program 10 242 Program 10 320 Program 10 -131072 Program 10 -72046 Program 10 0 Program 10 8192 Program 10 -53068 Program 10 -163840 Program 10 0 Program 10 -131072 Program 10 -9808 Program 10 0 Program 10 4492 Program 10 -4458 Program 10 25635 Program 10 129 Program 10 -131072 Program 10 0 Program 10 0 Program 10 12576 Program 10 -1846 Program 10 97216 Program 10 -2040 Program 10 0 Program 10 4 Program 10 164180 Program 10 16074 Program 10 163840 Program 10 81920 Program 10 -245760 Program 10 0 Program 10 23614 Program 10 -3463 Program 10 4 Program 10 660278 Program 10 25728 Program 10 10612 Program 10 4814 Program 10 0 Program 10 -525945 Program 10 -565287 Program 11 0 Program 11 0 Program 11 0 Program 11 76 Program 11 0 Program 11 189 Program 11 16384 Program 11 15672 Program 11 0 Program 11 0 Program 11 29734 Program 11 16384 Program 11 0 Program 11 0 Program 11 0 Program 11 242 Program 11 320 Program 11 -90979 Program 11 -65279 Program 11 0 Program 11 0 Program 11 -87895 Program 11 -95734 Program 11 -9188 Program 11 -73693 Program 11 11813 Program 11 14556 Program 11 1969 Program 11 -563 Program 11 21798 Program 11 0 Program 11 -131072 Program 11 33190 Program 11 12663 Program 11 1958 Program 11 563 Program 11 44869 Program 11 -9033 Program 11 8281 Program 11 4 Program 11 245760 Program 11 16074 Program 11 163840 Program 11 81920 Program 11 -34406 Program 11 1393 Program 11 23614 Program 11 -3463 Program 11 4 Program 11 660278 Program 11 25728 Program 11 10612 Program 11 4814 Program 11 0 Program 11 -525945 Program 11 -565287 Program 12 -1 Program 12 0 Program 12 -1 Program 12 76 Program 12 0 Program 12 152 Program 12 16384 Program 12 16435 Program 12 8116 Program 12 0 Program 12 29734 Program 12 16384 Program 12 0 Program 12 0 Program 12 0 Program 12 242 Program 12 320 Program 12 -131072 Program 12 -44269 Program 12 0 Program 12 0 Program 12 -87895 Program 12 -163840 Program 12 -8355 Program 12 -69391 Program 12 33681 Program 12 0 Program 12 1953 Program 12 2675 Program 12 37029 Program 12 0 Program 12 -131072 Program 12 67154 Program 12 12663 Program 12 1958 Program 12 -20814 Program 12 7447 Program 12 -23250 Program 12 8294 Program 12 4 Program 12 168049 Program 12 16452 Program 12 163840 Program 12 81920 Program 12 -245760 Program 12 3886 Program 12 23614 Program 12 -3463 Program 12 4 Program 12 660278 Program 12 25728 Program 12 10612 Program 12 4814 Program 12 0 Program 12 -525945 Program 12 -565287 Program 13 -1 Program 13 0 Program 13 0 Program 13 76 Program 13 2 Program 13 111 Program 13 4565 Program 13 17057 Program 13 5162 Program 13 0 Program 13 29734 Program 13 16384 Program 13 0 Program 13 0 Program 13 0 Program 13 242 Program 13 320 Program 13 -131072 Program 13 -32363 Program 13 0 Program 13 0 Program 13 -45566 Program 13 -163840 Program 13 -6978 Program 13 -82923 Program 13 45043 Program 13 0 Program 13 1953 Program 13 -11768 Program 13 22826 Program 13 0 Program 13 -80443 Program 13 29815 Program 13 13642 Program 13 1958 Program 13 -20227 Program 13 -26514 Program 13 6217 Program 13 5407 Program 13 4 Program 13 245760 Program 13 16074 Program 13 163840 Program 13 81920 Program 13 -245760 Program 13 11657 Program 13 23614 Program 13 -3463 Program 13 4 Program 13 660278 Program 13 25728 Program 13 10612 Program 13 4814 Program 13 0 Program 13 -525945 Program 13 -565287 Program 14 0 Program 14 0 Program 14 1 Program 14 76 Program 14 0 Program 14 189 Program 14 16384 Program 14 15672 Program 14 0 Program 14 0 Program 14 29734 Program 14 16384 Program 14 0 Program 14 0 Program 14 0 Program 14 242 Program 14 320 Program 14 -90979 Program 14 -65279 Program 14 0 Program 14 0 Program 14 -87895 Program 14 -95734 Program 14 -9188 Program 14 -92886 Program 14 -1032 Program 14 10385 Program 14 1953 Program 14 -36122 Program 14 15481 Program 14 0 Program 14 -131072 Program 14 4700 Program 14 12663 Program 14 1958 Program 14 -31457 Program 14 163840 Program 14 13483 Program 14 11808 Program 14 4 Program 14 -6202 Program 14 16074 Program 14 163840 Program 14 81920 Program 14 -34406 Program 14 1393 Program 14 23614 Program 14 -3463 Program 14 4 Program 14 660278 Program 14 25728 Program 14 10612 Program 14 4814 Program 14 0 Program 14 -525945 Program 14 -565287 PresetName "Lead Synth" PresetName "Bright Baroque Solo Voice" PresetName "Fat Baroque Solo Voice" PresetName "Bass" PresetName "Noisy Bass" PresetName "Percussion" PresetName "Very Bright Baroque Solo Voice" PresetName "Sinfonia Track 1" PresetName "Sinfonia Track 2" PresetName "Sinfonia Track 3 7 8" PresetName "Sinfonia Track 4" PresetName "Sinfonia Track 5" PresetName "Sinfonia Track 9" PresetName "Sinfonia Track 6" PresetName "Sinfonia Track 5" ams-2.0.1/instruments/phaser_instrument.ams0000664000076400007640000004672710072545655016125 00000000000000Module 35 1 30 176 0 0 FSlider 1 0 0 0 -16384 16384 1 ISlider 1 0 36 1 ISlider 1 1 0 1 ISlider 1 2 0 1 ISlider 1 3 0 1 ISlider 1 4 0 1 Module 34 2 229 23 0 0 ColorP 0 0 2 1 250 200 50 180 180 180 ColorP 1 3 2 1 250 200 50 180 180 180 FSlider 2 0 52 0 0 16384 1 FSlider 2 1 10348 0 0 16384 1 FSlider 2 2 0 0 0 16384 1 FSlider 2 3 2509 0 0 16384 1 FSlider 2 4 0 0 -16384 16384 1 FSlider 2 5 0 0 -16384 16384 1 FSlider 2 6 0 0 -16384 16384 1 FSlider 2 7 0 0 -16384 16384 1 ComboBox 2 0 2 1 ComboBox 2 1 1 1 Module 34 3 229 343 0 0 ColorP 0 0 3 1 250 200 50 180 180 180 ColorP 1 3 3 1 250 200 50 180 180 180 FSlider 3 0 82 0 0 16384 1 FSlider 3 1 13173 0 0 16384 1 FSlider 3 2 13008 0 0 16384 1 FSlider 3 3 2635 0 0 16384 1 FSlider 3 4 0 0 -16384 16384 1 FSlider 3 5 0 0 -16384 16384 1 FSlider 3 6 0 0 -16384 16384 1 FSlider 3 7 0 0 -16384 16384 1 ComboBox 3 0 2 1 ComboBox 3 1 1 1 Module 6 8 449 19 2 blvco Saw-VCO ColorP 0 0 8 42 250 200 50 180 180 180 ColorP 1 0 8 25 250 200 50 180 180 180 FSlider 8 0 115 0 0 545 1 FSlider 8 1 16480 0 0 65536 1 FSlider 8 2 0 0 0 65536 1 FSlider 8 3 8233 0 0 16384 1 LSlider 8 0 -4 1 Module 6 9 449 158 2 blvco Saw-VCO ColorP 0 1 9 42 250 200 50 180 180 180 ColorP 1 0 9 25 250 200 50 180 180 180 FSlider 9 0 257 0 0 545 1 FSlider 9 1 16480 0 0 65536 1 FSlider 9 2 0 0 0 65536 1 FSlider 9 3 8233 0 0 16384 1 LSlider 9 0 -4 1 Module 6 10 448 297 2 blvco Saw-VCO ColorP 0 2 10 42 250 200 50 180 180 180 ColorP 1 0 10 25 250 200 50 180 180 180 FSlider 10 0 0 0 0 545 1 FSlider 10 1 16480 0 0 65536 1 FSlider 10 2 0 0 0 65536 1 FSlider 10 3 8233 0 0 16384 1 LSlider 10 0 -4 1 Module 2 12 818 492 0 0 ColorP 0 0 12 3 250 200 50 180 180 180 ColorP 1 0 12 30 250 200 50 180 180 180 ColorP 2 0 12 23 250 200 50 180 180 180 ColorP 3 0 12 37 250 200 50 180 180 180 FSlider 12 0 0 0 0 163840 1 FSlider 12 1 0 0 0 16384 1 FSlider 12 2 16384 0 0 32768 1 FSlider 12 3 16384 0 0 32768 1 FSlider 12 4 16384 0 0 32768 1 Module 8 13 386 613 4 0 ColorP 0 0 13 2 250 200 50 180 180 180 ColorP 1 0 13 8 250 200 50 180 180 180 ColorP 2 0 13 34 250 200 50 180 180 180 ColorP 3 1 13 26 250 200 50 180 180 180 FSlider 13 0 16384 0 0 32768 1 FSlider 13 1 14581 0 0 32768 1 FSlider 13 2 0 0 0 32768 1 FSlider 13 3 0 0 0 32768 1 FSlider 13 4 133 0 0 32768 1 Module 8 14 735 168 4 0 ColorP 0 0 14 8 250 200 50 180 180 180 ColorP 1 0 14 9 250 200 50 180 180 180 ColorP 2 0 14 10 250 200 50 180 180 180 ColorP 3 1 14 32 250 200 50 180 180 180 FSlider 14 0 16384 0 0 32768 1 FSlider 14 1 32768 0 0 32768 1 FSlider 14 2 32768 0 0 32768 1 FSlider 14 3 32768 0 0 32768 1 FSlider 14 4 0 0 0 32768 1 Module 23 19 977 585 0 0 ColorP 0 0 19 21 250 200 50 180 180 180 ColorP 1 1 19 21 250 200 50 180 180 180 FSlider 19 0 2600 0 0 16384 1 FSlider 19 1 8192 0 0 16384 1 FSlider 19 2 8192 0 0 16384 1 ComboBox 19 0 0 1 Module 7 20 809 658 0 0 ColorP 0 0 20 21 250 200 50 180 180 180 ColorP 1 1 20 21 250 200 50 180 180 180 FSlider 20 0 2697 0 0 16384 1 FSlider 20 1 8192 0 0 16384 1 FSlider 20 2 8192 0 0 16384 1 ComboBox 20 0 0 1 Module 6 21 850 377 0 g2reverb G2reverb ColorP 0 0 21 12 250 200 50 180 180 180 ColorP 1 0 21 12 250 200 50 180 180 180 FSlider 21 0 793290 0 163840 2457600 1 FSlider 21 1 29415 0 16384 327680 1 FSlider 21 2 6706 0 0 16384 1 FSlider 21 3 2012 0 0 16384 1 FSlider 21 4 0 0 -1310720 0 1 FSlider 21 5 -176795 0 -1310720 0 1 FSlider 21 6 -103638 0 -1310720 0 1 Module 6 23 878 167 2 mvclpf24 Mvclpf-3 ColorP 0 0 23 14 250 200 50 180 180 180 ColorP 1 3 23 42 250 200 50 180 180 180 ColorP 2 0 23 13 250 200 50 180 180 180 ColorP 3 0 23 28 250 200 50 180 180 180 FSlider 23 0 163840 0 -172155 163840 1 FSlider 23 1 -19206 0 -81920 81920 1 FSlider 23 2 115934 0 0 163840 1 FSlider 23 3 0 0 0 16384 1 FSlider 23 4 9159 0 0 16384 1 FSlider 23 5 -245760 0 -245760 245760 1 FSMIDI 23 1 10 0 1 Module 8 25 204 697 2 0 ColorP 0 5 25 1 250 200 50 180 180 180 ColorP 1 1 25 26 250 200 50 180 180 180 FSlider 25 0 16384 0 0 32768 1 FSlider 25 1 16384 0 0 32768 1 FSlider 25 2 106 0 0 3283 1 Module 3 26 29 472 0 0 FSlider 26 0 29628 1 -75451 75451 1 FSlider 26 1 0 0 0 102940 1 Module 8 28 510 553 2 0 ColorP 0 0 28 2 250 200 50 180 180 180 ColorP 1 1 28 26 250 200 50 180 180 180 FSlider 28 0 16384 0 0 32768 1 FSlider 28 1 0 0 0 32768 1 FSlider 28 2 0 0 0 16384 1 Module 5 30 614 635 0 0 ColorP 0 1 30 26 250 200 50 180 180 180 ColorP 1 0 30 3 250 200 50 180 180 180 FSlider 30 0 8192 0 0 81920 1 Module 14 32 715 372 0 0 FSlider 32 0 81920 0 0 163840 1 FSlider 32 1 8192 0 0 16384 1 Module 13 34 243 553 0 0 ColorP 0 0 34 2 250 200 50 180 180 180 Module 6 37 873 18 2 cs_phaser Phaser1 ColorP 0 0 37 38 250 200 50 180 180 180 ColorP 1 0 37 40 250 200 50 180 180 180 FSlider 37 0 -163840 0 -655360 163840 1 FSlider 37 1 0 0 -81920 81920 1 FSlider 37 2 0 0 0 163840 1 FSlider 37 3 0 0 0 163840 1 FSlider 37 4 0 0 -16384 16384 1 FSlider 37 5 8192 0 -16384 16384 1 LSlider 37 0 6 1 Module 8 38 739 13 4 0 ColorP 0 0 38 8 250 200 50 180 180 180 ColorP 1 0 38 9 250 200 50 180 180 180 ColorP 2 0 38 14 250 200 50 180 180 180 ColorP 3 0 38 23 250 200 50 180 180 180 FSlider 38 0 16384 0 0 32768 1 FSlider 38 1 16384 0 0 32768 1 FSlider 38 2 16384 0 0 32768 1 FSlider 38 3 16384 0 0 32768 1 FSlider 38 4 16384 0 0 32768 1 Module 15 39 245 215 0 0 ColorP 0 1 39 1 250 200 50 180 180 180 FSlider 39 0 8192 0 0 163840 1 FSlider 39 1 8192 0 0 163840 1 Module 8 40 513 432 2 0 ColorP 0 0 40 13 250 200 50 180 180 180 ColorP 1 0 40 39 250 200 50 180 180 180 FSlider 40 0 16384 0 0 32768 1 FSlider 40 1 16384 0 0 32768 1 FSlider 40 2 16384 0 0 32768 1 Module 42 42 22 9 4 0 ColorP 0 1 42 1 250 200 50 180 180 180 FSlider 42 0 -86807 1 -150902 -40582 1 FSlider 42 1 -75451 1 -75451 0 1 FSlider 42 2 0 1 -75451 37725 1 FSlider 42 3 -86807 1 -150902 -40582 1 FSlider 42 4 -75451 1 -75451 0 1 FSlider 42 5 17999 1 -75451 37725 1 ComboBox 42 0 0 1 ComboBox 42 1 1 1 CheckBox 42 0 0 1 Tab "Oscillators / LFO / Mixer / Phaser" Tab "Filter / Envelopes / Reverb" Frame "Oscillators" 0 Parameter "VCO 1 Octave" 10 0 Parameter "VCO 1 Tune" 10 1 0 545 0 Parameter "VCO 2 Octave" 8 0 Parameter "VCO 2 Tune" 8 1 0 545 0 Parameter "VCO 3 Octave" 9 0 Parameter "VCO 3 Tune" 9 1 0 545 0 Frame "LFO" 0 Parameter "Frequency" 26 0 -75451 75448 1 Parameter "Pitch Modulation" 25 2 0 3277 0 Parameter "Filter Modulation" 13 4 0 32768 0 Parameter "Resonance Modulation" 28 2 0 16384 0 Parameter "Amplitude Modulation" 12 1 0 16384 0 Frame "Mixer" 0 Parameter "VCO 1 Level" 14 1 0 32768 0 Parameter "VCO 2 Level" 14 2 0 32768 0 Parameter "VCO 3 Level" 14 3 0 32768 0 Parameter "Noise" 14 4 0 32768 0 Parameter "VCO 1 to Phaser Input" 38 1 0 32768 0 Parameter "VCO 2 to Phaser Input" 38 2 0 32768 0 Parameter "Mix to Phaser Input" 38 3 0 32768 0 Parameter "Filter Output to Phaser Input" 38 4 0 32768 0 Frame "Filter" 1 Parameter "Cutoff Frequency" 23 1 -81920 81920 0 Parameter "Resonance" 23 3 0 16384 0 Parameter "Input gain (dB)" 23 0 -172155 163840 0 Parameter "Output gain (dB)" 23 5 -245760 245760 0 Parameter "VCO 1 to Filter Cutoff" 13 2 0 32768 0 Frame "Filter Envelope" 1 Parameter "Attack" 2 0 0 16384 0 Parameter "Decay" 2 1 0 16384 0 Parameter "Sustain" 2 2 0 16384 0 Parameter "Release" 2 3 0 16384 0 Parameter "Time Scale" 2 8 Parameter "Envelope to Filter Cutoff" 13 1 0 32768 0 Parameter "Inverse Envelope to Filter Cutoff" 13 3 0 32768 0 Parameter "Envelope to Resonance" 28 1 0 16384 0 Frame "Volume Envelope" 1 Parameter "Attack" 3 0 0 16384 0 Parameter "Decay" 3 1 0 16384 0 Parameter "Sustain" 3 2 0 16384 0 Parameter "Release" 3 3 0 16384 0 Parameter "Time Scale" 3 8 Frame "Reverb" 1 Parameter "Early Reflections" 21 5 -1310720 0 0 Parameter "Reverb Tail" 21 6 -1310720 0 0 Parameter "Reverb Time" 21 1 16384 327680 0 Parameter "Room Size" 21 0 163840 2457600 0 Parameter "Input Bandwidth" 21 2 0 16384 0 Parameter "Damping" 21 3 0 16384 0 Parameter "Input from Filter" 12 2 0 32768 0 Parameter "Input from Phaser" 12 3 0 32768 0 Frame "Phaser" 0 Parameter "Frequency" 37 2 -81920 81920 0 Parameter "Feedback gain" 37 5 -16384 16384 0 Parameter "Sections" 37 1 Parameter "Input gain (dB)" 37 0 -655360 163840 0 Parameter "Output mix" 37 6 -16384 16384 0 Parameter "Phaser Modulation Amount" 40 1 0 32768 0 Parameter "Pitch to Phaser Frequency" 40 2 0 32768 0 Parameter "Portamento Up" 39 0 0 163840 0 Parameter "Portamento Down" 39 1 0 163840 0 Program 0 -4 Program 0 0 Program 0 -4 Program 0 115 Program 0 -4 Program 0 257 Program 0 29628 Program 0 106 Program 0 133 Program 0 0 Program 0 0 Program 0 32768 Program 0 32768 Program 0 32768 Program 0 0 Program 0 16384 Program 0 16384 Program 0 16384 Program 0 16384 Program 0 -19206 Program 0 0 Program 0 163840 Program 0 -245760 Program 0 0 Program 0 52 Program 0 10348 Program 0 0 Program 0 2509 Program 0 2 Program 0 14581 Program 0 0 Program 0 0 Program 0 82 Program 0 13173 Program 0 13008 Program 0 2635 Program 0 2 Program 0 -176795 Program 0 -103638 Program 0 29415 Program 0 793290 Program 0 6706 Program 0 2012 Program 0 16384 Program 0 16384 Program 0 0 Program 0 0 Program 0 6 Program 0 -163840 Program 0 8192 Program 0 16384 Program 0 16384 Program 0 8192 Program 0 8192 Program 1 -4 Program 1 0 Program 1 -4 Program 1 115 Program 1 -4 Program 1 257 Program 1 -56365 Program 1 0 Program 1 32768 Program 1 0 Program 1 0 Program 1 32768 Program 1 32768 Program 1 32768 Program 1 0 Program 1 16384 Program 1 16384 Program 1 16384 Program 1 16384 Program 1 -9452 Program 1 15943 Program 1 163840 Program 1 -14233 Program 1 0 Program 1 52 Program 1 10348 Program 1 0 Program 1 2509 Program 1 2 Program 1 20641 Program 1 0 Program 1 0 Program 1 82 Program 1 13173 Program 1 13008 Program 1 2635 Program 1 2 Program 1 -94691 Program 1 -103638 Program 1 40057 Program 1 2457600 Program 1 7413 Program 1 2012 Program 1 0 Program 1 3738 Program 1 -66738 Program 1 16131 Program 1 12 Program 1 163840 Program 1 8192 Program 1 13284 Program 1 8224 Program 1 8192 Program 1 8192 Program 2 -4 Program 2 0 Program 2 -4 Program 2 115 Program 2 -4 Program 2 257 Program 2 23576 Program 2 0 Program 2 2944 Program 2 0 Program 2 0 Program 2 0 Program 2 0 Program 2 0 Program 2 9344 Program 2 0 Program 2 0 Program 2 15677 Program 2 0 Program 2 -19206 Program 2 0 Program 2 163840 Program 2 -245760 Program 2 0 Program 2 52 Program 2 1419 Program 2 0 Program 2 774 Program 2 2 Program 2 14581 Program 2 0 Program 2 0 Program 2 82 Program 2 13173 Program 2 13008 Program 2 2635 Program 2 2 Program 2 -176795 Program 2 -103638 Program 2 29415 Program 2 793290 Program 2 6706 Program 2 2012 Program 2 0 Program 2 16384 Program 2 -81920 Program 2 15104 Program 2 30 Program 2 -92160 Program 2 8192 Program 2 23808 Program 2 8318 Program 2 8192 Program 2 8192 Program 3 -4 Program 3 0 Program 3 -4 Program 3 115 Program 3 -4 Program 3 257 Program 3 29628 Program 3 106 Program 3 129 Program 3 0 Program 3 0 Program 3 32768 Program 3 32768 Program 3 32768 Program 3 0 Program 3 0 Program 3 0 Program 3 0 Program 3 16448 Program 3 45939 Program 3 0 Program 3 -15357 Program 3 -29877 Program 3 0 Program 3 5676 Program 3 5612 Program 3 0 Program 3 1742 Program 3 2 Program 3 0 Program 3 2967 Program 3 0 Program 3 3118 Program 3 8822 Program 3 13008 Program 3 2635 Program 3 2 Program 3 -94691 Program 3 -103638 Program 3 60523 Program 3 2457600 Program 3 6113 Program 3 2012 Program 3 0 Program 3 16384 Program 3 -33280 Program 3 11136 Program 3 30 Program 3 -2560 Program 3 8192 Program 3 32768 Program 3 0 Program 3 8192 Program 3 8192 Program 4 -4 Program 4 0 Program 4 -4 Program 4 115 Program 4 -4 Program 4 257 Program 4 29628 Program 4 106 Program 4 256 Program 4 0 Program 4 0 Program 4 32768 Program 4 32768 Program 4 32768 Program 4 0 Program 4 0 Program 4 0 Program 4 0 Program 4 16448 Program 4 14456 Program 4 14842 Program 4 -863 Program 4 -29877 Program 4 0 Program 4 5676 Program 4 5612 Program 4 0 Program 4 1742 Program 4 2 Program 4 0 Program 4 2967 Program 4 0 Program 4 3118 Program 4 8822 Program 4 13008 Program 4 2635 Program 4 2 Program 4 -94691 Program 4 -103638 Program 4 60523 Program 4 2457600 Program 4 6113 Program 4 2012 Program 4 0 Program 4 16384 Program 4 -33280 Program 4 4352 Program 4 30 Program 4 -2560 Program 4 8192 Program 4 32768 Program 4 0 Program 4 8192 Program 4 8192 Program 5 -4 Program 5 0 Program 5 -4 Program 5 115 Program 5 -4 Program 5 257 Program 5 29628 Program 5 106 Program 5 256 Program 5 0 Program 5 0 Program 5 32768 Program 5 32768 Program 5 32768 Program 5 32768 Program 5 0 Program 5 0 Program 5 0 Program 5 16448 Program 5 14456 Program 5 14842 Program 5 -863 Program 5 -29877 Program 5 0 Program 5 5676 Program 5 5612 Program 5 0 Program 5 1742 Program 5 2 Program 5 0 Program 5 2967 Program 5 0 Program 5 3118 Program 5 8822 Program 5 13008 Program 5 2635 Program 5 2 Program 5 -94691 Program 5 -103638 Program 5 60523 Program 5 2457600 Program 5 6113 Program 5 2012 Program 5 0 Program 5 16384 Program 5 -33280 Program 5 4352 Program 5 30 Program 5 -2560 Program 5 8192 Program 5 32768 Program 5 0 Program 5 8192 Program 5 8192 Program 6 -4 Program 6 0 Program 6 -4 Program 6 115 Program 6 -4 Program 6 257 Program 6 30650 Program 6 106 Program 6 384 Program 6 0 Program 6 0 Program 6 32768 Program 6 32768 Program 6 32768 Program 6 32768 Program 6 0 Program 6 0 Program 6 0 Program 6 16448 Program 6 7389 Program 6 13043 Program 6 -863 Program 6 -29877 Program 6 0 Program 6 7998 Program 6 7482 Program 6 0 Program 6 1742 Program 6 2 Program 6 0 Program 6 2967 Program 6 0 Program 6 3118 Program 6 8822 Program 6 13008 Program 6 2635 Program 6 2 Program 6 -34235 Program 6 -103638 Program 6 73300 Program 6 2457600 Program 6 3913 Program 6 2012 Program 6 0 Program 6 10637 Program 6 -52480 Program 6 15488 Program 6 24 Program 6 -2560 Program 6 8192 Program 6 32768 Program 6 0 Program 6 8192 Program 6 8192 Program 7 -4 Program 7 0 Program 7 -4 Program 7 181 Program 7 -4 Program 7 287 Program 7 30650 Program 7 106 Program 7 1152 Program 7 2304 Program 7 0 Program 7 19328 Program 7 19840 Program 7 19584 Program 7 32768 Program 7 0 Program 7 0 Program 7 0 Program 7 16448 Program 7 13171 Program 7 14842 Program 7 -863 Program 7 -2891 Program 7 0 Program 7 7998 Program 7 7482 Program 7 0 Program 7 1742 Program 7 2 Program 7 0 Program 7 2967 Program 7 0 Program 7 3118 Program 7 8822 Program 7 13008 Program 7 2635 Program 7 2 Program 7 0 Program 7 -92924 Program 7 96531 Program 7 2457600 Program 7 3913 Program 7 2012 Program 7 0 Program 7 7092 Program 7 -5760 Program 7 15232 Program 7 30 Program 7 -2560 Program 7 8192 Program 7 32768 Program 7 0 Program 7 8192 Program 7 8192 Program 8 -4 Program 8 0 Program 8 -4 Program 8 115 Program 8 -4 Program 8 257 Program 8 29628 Program 8 106 Program 8 256 Program 8 0 Program 8 0 Program 8 32768 Program 8 32768 Program 8 32768 Program 8 0 Program 8 0 Program 8 0 Program 8 0 Program 8 0 Program 8 13814 Program 8 0 Program 8 163840 Program 8 -29877 Program 8 0 Program 8 65 Program 8 5225 Program 8 0 Program 8 1742 Program 8 2 Program 8 7611 Program 8 0 Program 8 0 Program 8 66 Program 8 8822 Program 8 13008 Program 8 2635 Program 8 2 Program 8 -151613 Program 8 -103638 Program 8 31484 Program 8 1790013 Program 8 4402 Program 8 2012 Program 8 15895 Program 8 0 Program 8 -33280 Program 8 4352 Program 8 30 Program 8 -2560 Program 8 8192 Program 8 32768 Program 8 0 Program 8 8192 Program 8 8192 Program 9 -4 Program 9 0 Program 9 -4 Program 9 115 Program 9 -4 Program 9 257 Program 9 29628 Program 9 106 Program 9 128 Program 9 0 Program 9 0 Program 9 32768 Program 9 32768 Program 9 32768 Program 9 0 Program 9 0 Program 9 0 Program 9 0 Program 9 14848 Program 9 13814 Program 9 0 Program 9 163840 Program 9 -29877 Program 9 0 Program 9 774 Program 9 5225 Program 9 0 Program 9 1742 Program 9 2 Program 9 7611 Program 9 0 Program 9 0 Program 9 66 Program 9 8822 Program 9 13008 Program 9 2635 Program 9 2 Program 9 -151613 Program 9 -103638 Program 9 31484 Program 9 1790013 Program 9 4402 Program 9 2012 Program 9 0 Program 9 15650 Program 9 -53120 Program 9 9344 Program 9 16 Program 9 -2560 Program 9 8192 Program 9 17280 Program 9 6784 Program 9 8192 Program 9 8192 Program 10 -4 Program 10 0 Program 10 -3 Program 10 115 Program 10 -4 Program 10 257 Program 10 29628 Program 10 106 Program 10 128 Program 10 0 Program 10 0 Program 10 32768 Program 10 32768 Program 10 32768 Program 10 0 Program 10 7168 Program 10 0 Program 10 0 Program 10 0 Program 10 -45230 Program 10 5883 Program 10 163840 Program 10 -29877 Program 10 0 Program 10 903 Program 10 2064 Program 10 0 Program 10 1742 Program 10 2 Program 10 12901 Program 10 0 Program 10 0 Program 10 66 Program 10 8822 Program 10 13008 Program 10 2635 Program 10 2 Program 10 -151613 Program 10 -103638 Program 10 31484 Program 10 1790013 Program 10 4402 Program 10 2012 Program 10 7458 Program 10 15650 Program 10 -37120 Program 10 5504 Program 10 16 Program 10 -2560 Program 10 8192 Program 10 17280 Program 10 6784 Program 10 8192 Program 10 8192 Program 11 -4 Program 11 0 Program 11 -2 Program 11 68 Program 11 -3 Program 11 185 Program 11 29628 Program 11 106 Program 11 128 Program 11 0 Program 11 0 Program 11 32768 Program 11 32768 Program 11 32768 Program 11 0 Program 11 7168 Program 11 0 Program 11 0 Program 11 0 Program 11 -45230 Program 11 5883 Program 11 163840 Program 11 -29877 Program 11 0 Program 11 65 Program 11 1677 Program 11 0 Program 11 1742 Program 11 2 Program 11 12901 Program 11 0 Program 11 0 Program 11 66 Program 11 3978 Program 11 0 Program 11 2635 Program 11 2 Program 11 -151613 Program 11 -103638 Program 11 31484 Program 11 1790013 Program 11 4402 Program 11 2012 Program 11 7458 Program 11 15650 Program 11 -81920 Program 11 13440 Program 11 30 Program 11 -2560 Program 11 8192 Program 11 32768 Program 11 6784 Program 11 8192 Program 11 8192 Program 12 -4 Program 12 0 Program 12 -4 Program 12 115 Program 12 -4 Program 12 257 Program 12 29628 Program 12 106 Program 12 133 Program 12 0 Program 12 0 Program 12 8248 Program 12 8916 Program 12 8025 Program 12 0 Program 12 0 Program 12 0 Program 12 0 Program 12 16384 Program 12 -25157 Program 12 0 Program 12 163840 Program 12 -245760 Program 12 0 Program 12 52 Program 12 10348 Program 12 0 Program 12 2509 Program 12 2 Program 12 14581 Program 12 0 Program 12 0 Program 12 82 Program 12 13173 Program 12 13008 Program 12 2635 Program 12 2 Program 12 -176795 Program 12 -103638 Program 12 29415 Program 12 793290 Program 12 6706 Program 12 2012 Program 12 16384 Program 12 16384 Program 12 0 Program 12 8138 Program 12 6 Program 12 -163840 Program 12 8192 Program 12 0 Program 12 0 Program 12 8192 Program 12 8192 Program 13 -4 Program 13 0 Program 13 -4 Program 13 115 Program 13 -4 Program 13 257 Program 13 29628 Program 13 106 Program 13 133 Program 13 0 Program 13 0 Program 13 7085 Program 13 7306 Program 13 6421 Program 13 0 Program 13 0 Program 13 0 Program 13 0 Program 13 16384 Program 13 -25157 Program 13 0 Program 13 163840 Program 13 -245760 Program 13 0 Program 13 52 Program 13 10348 Program 13 0 Program 13 2509 Program 13 2 Program 13 14581 Program 13 0 Program 13 0 Program 13 82 Program 13 13173 Program 13 13008 Program 13 2635 Program 13 2 Program 13 -176795 Program 13 -103638 Program 13 29415 Program 13 793290 Program 13 6706 Program 13 2012 Program 13 16384 Program 13 16384 Program 13 -71070 Program 13 15082 Program 13 6 Program 13 -163840 Program 13 8192 Program 13 32768 Program 13 0 Program 13 8192 Program 13 8192 PresetName "Lead Synth with Phaser" PresetName "Slow Phaser Pad" PresetName "Phaser Noise" PresetName "Slow Pad with Phaser at high Feedback" PresetName "Slow Bass Pad with Phaser and high Filter Resonance" PresetName "Haunted Castle" PresetName "Haunted Castle II" PresetName "Haunted Castle III" PresetName "Powerful Bass" PresetName "Phaser Bass" PresetName "Phaser and Lowpass Mix" PresetName "Phaser Chimes" PresetName "Soft Strings" PresetName "Soft Strings II" ams-2.0.1/instruments/bass_presets_vcenv.ams0000664000076400007640000002350410072545655016235 00000000000000Module 7 1 584 142 0 0 ColorP 0 0 1 26 250 200 50 180 180 180 ColorP 1 1 1 26 250 200 50 180 180 180 FSlider 1 0 2158 0 0 16384 1 FSlider 1 1 16384 0 0 16384 1 FSlider 1 2 16384 0 0 16384 1 ComboBox 1 0 0 1 Module 2 4 426 10 0 0 ColorP 0 0 4 25 250 200 50 180 180 180 ColorP 2 0 4 20 250 200 50 180 180 180 FSlider 4 0 0 0 0 163840 1 FSlider 4 1 0 0 0 163840 1 FSlider 4 2 19529 0 0 32768 1 FSlider 4 3 8192 0 0 32768 1 FSlider 4 4 8192 0 0 32768 1 Module 1 5 168 275 0 0 ColorP 1 0 5 28 250 200 50 180 180 180 FSlider 5 0 0 0 0 8192 1 FSlider 5 1 1638 0 0 163840 1 FSlider 5 2 0 0 0 163840 1 FSlider 5 3 8192 0 1638 14745 1 FSlider 5 4 0 0 0 163840 1 FSlider 5 5 0 0 0 163840 1 ISlider 5 0 0 1 ISlider 5 1 1 1 ISlider 5 2 1 1 ComboBox 5 0 0 1 Module 10 12 14 35 0 0 FSlider 12 0 129 0 -16384 16384 1 ISlider 12 0 24 1 ComboBox 12 0 0 1 Module 1 14 358 292 0 0 ColorP 1 1 14 28 250 200 50 180 180 180 FSlider 14 0 117 0 0 8192 1 FSlider 14 1 8192 0 1638 14745 1 FSlider 14 2 0 0 0 16384 1 FSlider 14 3 0 0 0 102940 1 FSlider 14 4 0 0 0 163840 1 FSlider 14 5 0 0 0 163840 1 ISlider 14 0 0 1 ISlider 14 1 1 1 ISlider 14 2 1 1 ComboBox 14 0 0 1 Module 1 15 537 291 0 0 ColorP 1 2 15 28 250 200 50 180 180 180 FSlider 15 0 260 0 0 8192 1 FSlider 15 1 8192 0 1638 14745 1 FSlider 15 2 0 0 0 16384 1 FSlider 15 3 0 0 0 102940 1 FSlider 15 4 0 0 0 163840 1 FSlider 15 5 0 0 0 163840 1 ISlider 15 0 0 1 ISlider 15 1 1 1 ISlider 15 2 1 1 ComboBox 15 0 0 1 Module 8 16 693 319 4 0 ColorP 0 2 16 5 250 200 50 180 180 180 ColorP 1 2 16 14 250 200 50 180 180 180 ColorP 2 2 16 15 250 200 50 180 180 180 FSlider 16 0 16384 0 0 32768 1 FSlider 16 1 16384 0 0 32768 1 FSlider 16 2 16384 0 0 32768 1 FSlider 16 3 16384 0 0 32768 1 FSlider 16 4 16384 0 0 32768 1 Module 6 20 281 157 2 mvclpf24 Mvclpf-3 ColorP 0 0 20 16 250 200 50 180 180 180 ColorP 1 3 20 28 250 200 50 180 180 180 ColorP 2 0 20 24 250 200 50 180 180 180 FSlider 20 0 163840 0 -983040 163840 1 FSlider 20 1 -54829 0 -81920 81920 1 FSlider 20 2 52981 0 0 163840 1 FSlider 20 3 7482 0 0 16384 1 FSlider 20 4 0 0 0 16384 1 FSlider 20 5 -9350 0 -245760 245760 1 FSMIDI 20 1 13 0 0 FSMIDI 20 3 10 0 1 Module 34 24 22 242 0 0 ColorP 0 0 24 12 250 200 50 180 180 180 ColorP 1 3 24 12 250 200 50 180 180 180 FSlider 24 0 18 0 0 16384 1 FSlider 24 1 6807 0 0 16384 1 FSlider 24 2 9867 0 0 16384 1 FSlider 24 3 14610 0 0 16384 1 FSlider 24 4 0 0 -16384 16384 1 FSlider 24 5 0 0 -16384 16384 1 FSlider 24 6 0 0 -16384 16384 1 FSlider 24 7 0 0 -16384 16384 1 ComboBox 24 0 1 1 ComboBox 24 1 1 1 Module 34 25 144 37 0 0 ColorP 0 0 25 12 250 200 50 180 180 180 ColorP 1 3 25 12 250 200 50 180 180 180 FSlider 25 0 363 0 0 16384 1 FSlider 25 1 12712 0 0 16384 1 FSlider 25 2 11468 0 0 16384 1 FSlider 25 3 12792 0 0 16384 1 FSlider 25 4 0 0 -16384 16384 1 FSlider 25 5 0 0 -16384 16384 1 FSlider 25 6 0 0 -16384 16384 1 FSlider 25 7 0 0 -16384 16384 1 ComboBox 25 0 1 1 ComboBox 25 1 1 1 Module 6 26 523 48 0 g2reverb G2reverb ColorP 0 0 26 4 250 200 50 180 180 180 ColorP 1 0 26 4 250 200 50 180 180 180 FSlider 26 0 881346 0 163840 2457600 1 FSlider 26 1 23285 0 16384 327680 1 FSlider 26 2 13761 0 0 16384 1 FSlider 26 3 2784 0 0 16384 1 FSlider 26 4 0 0 -1310720 0 1 FSlider 26 5 -190474 0 -1310720 0 1 FSlider 26 6 -125907 0 -1310720 0 1 Module 42 28 70 515 4 0 ColorP 0 1 28 12 250 200 50 180 180 180 FSlider 28 0 -86807 1 -150902 -40582 1 FSlider 28 1 -75451 1 -75451 0 1 FSlider 28 2 0 1 -75451 37725 1 FSlider 28 3 -86807 1 -150902 -40582 1 FSlider 28 4 -75451 1 -75451 0 1 FSlider 28 5 17999 1 -75451 37725 1 ComboBox 28 0 0 1 ComboBox 28 1 1 1 CheckBox 28 0 0 1 Tab "Oscillators" Tab "Mixer" Tab "Filter" Tab "Envelopes" Tab "Reverb" Frame "Oscillators" 0 Parameter "Octave ID 14" 14 0 Parameter "Tune ID 14" 14 1 0 8192 0 Parameter "Octave ID 15" 15 0 Parameter "Tune ID 15" 15 1 0 8192 0 Parameter "Octave ID 5" 5 0 Parameter "Tune ID 5" 5 1 0 8192 0 Frame "Mixer" 1 Parameter "Volume 0 ID 16" 16 1 0 32768 0 Parameter "Volume 1 ID 16" 16 2 0 32768 0 Parameter "Volume 2 ID 16" 16 3 0 32768 0 Parameter "Volume 3 ID 16" 16 4 0 32768 0 Frame "Filter" 2 Parameter "Cutoff" 20 1 -81920 81920 0 Parameter "Resonance ID 20" 20 3 0 16384 0 Parameter "Filter Envelope Amount" 20 2 0 163840 0 Parameter "Input gain (dB) ID 20" 20 0 -983040 163840 0 Parameter "Output gain (dB) ID 20" 20 5 -245760 245760 0 Frame "Volume Envelope" 3 Parameter "Attack" 25 0 0 16384 0 Parameter "Decay" 25 1 0 16384 0 Parameter "Sustain" 25 2 0 16384 0 Parameter "Release" 25 3 0 16384 0 Parameter "Time Scale" 25 8 Frame "Filter Envelope" 3 Parameter "Attack" 24 0 0 16384 0 Parameter "Decay" 24 1 0 16384 0 Parameter "Sustain" 24 2 0 16384 0 Parameter "Release" 24 3 0 16384 0 Parameter "Time Scale" 24 8 Frame "Reverb" 4 Parameter "Dry sound" 26 4 -1310720 0 0 Parameter "Reflections ID 26" 26 5 -1310720 0 0 Parameter "Reverb tail ID 26" 26 6 -1310720 0 0 Parameter "Reverb time ID 26" 26 1 16384 327680 0 Parameter "Room size ID 26" 26 0 163840 2457600 0 Parameter "Input BW ID 26" 26 2 0 16384 0 Parameter "Damping ID 26" 26 3 0 16384 0 Program 0 0 Program 0 117 Program 0 0 Program 0 260 Program 0 0 Program 0 0 Program 0 16384 Program 0 16384 Program 0 16384 Program 0 16384 Program 0 -54829 Program 0 7482 Program 0 52981 Program 0 163840 Program 0 -9350 Program 0 363 Program 0 12712 Program 0 11468 Program 0 12792 Program 0 1 Program 0 18 Program 0 6807 Program 0 9867 Program 0 14610 Program 0 1 Program 0 0 Program 0 -190474 Program 0 -125907 Program 0 23285 Program 0 881346 Program 0 13761 Program 0 2784 Program 1 0 Program 1 139 Program 1 0 Program 1 310 Program 1 0 Program 1 0 Program 1 16384 Program 1 16384 Program 1 16384 Program 1 16384 Program 1 -26595 Program 1 0 Program 1 52981 Program 1 163840 Program 1 -43897 Program 1 45 Program 1 7655 Program 1 11468 Program 1 13653 Program 1 1 Program 1 224 Program 1 12120 Program 1 9867 Program 1 11671 Program 1 1 Program 1 0 Program 1 -230700 Program 1 -198231 Program 1 23285 Program 1 881346 Program 1 13761 Program 1 2784 Program 2 0 Program 2 75 Program 2 0 Program 2 117 Program 2 0 Program 2 0 Program 2 16384 Program 2 16384 Program 2 16384 Program 2 16384 Program 2 -72307 Program 2 0 Program 2 96980 Program 2 163840 Program 2 -43897 Program 2 45 Program 2 16384 Program 2 12310 Program 2 14370 Program 2 1 Program 2 45 Program 2 16384 Program 2 0 Program 2 12434 Program 2 1 Program 2 0 Program 2 -410134 Program 2 -271714 Program 2 23285 Program 2 881346 Program 2 13761 Program 2 2784 Program 3 0 Program 3 235 Program 3 0 Program 3 128 Program 3 1 Program 3 0 Program 3 16384 Program 3 16384 Program 3 16384 Program 3 16384 Program 3 -81920 Program 3 0 Program 3 126672 Program 3 163840 Program 3 -43897 Program 3 90 Program 3 16384 Program 3 0 Program 3 14370 Program 3 1 Program 3 269 Program 3 9561 Program 3 0 Program 3 11536 Program 3 1 Program 3 0 Program 3 -410134 Program 3 -271714 Program 3 23285 Program 3 881346 Program 3 13761 Program 3 2784 Program 4 0 Program 4 235 Program 4 0 Program 4 128 Program 4 1 Program 4 0 Program 4 16384 Program 4 16384 Program 4 16384 Program 4 16384 Program 4 -81920 Program 4 11877 Program 4 126672 Program 4 163840 Program 4 -43897 Program 4 90 Program 4 16384 Program 4 0 Program 4 13788 Program 4 1 Program 4 269 Program 4 9561 Program 4 0 Program 4 13107 Program 4 1 Program 4 0 Program 4 -410134 Program 4 -271714 Program 4 23285 Program 4 881346 Program 4 13761 Program 4 2784 Program 5 0 Program 5 75 Program 5 0 Program 5 117 Program 5 0 Program 5 0 Program 5 16384 Program 5 16384 Program 5 16384 Program 5 16384 Program 5 -67608 Program 5 13564 Program 5 87581 Program 5 163840 Program 5 -43897 Program 5 90 Program 5 16384 Program 5 11468 Program 5 13206 Program 5 1 Program 5 269 Program 5 16384 Program 5 0 Program 5 13556 Program 5 1 Program 5 0 Program 5 -410134 Program 5 -271714 Program 5 23285 Program 5 881346 Program 5 13761 Program 5 2784 Program 6 0 Program 6 75 Program 6 0 Program 6 117 Program 6 0 Program 6 0 Program 6 16384 Program 6 16384 Program 6 16384 Program 6 16384 Program 6 -81920 Program 6 15609 Program 6 109583 Program 6 163840 Program 6 -43897 Program 6 90 Program 6 16384 Program 6 11468 Program 6 13519 Program 6 1 Program 6 1885 Program 6 2828 Program 6 0 Program 6 13017 Program 6 1 Program 6 0 Program 6 -647701 Program 6 -328227 Program 6 23285 Program 6 881346 Program 6 13761 Program 6 2784 Program 7 0 Program 7 75 Program 7 0 Program 7 117 Program 7 0 Program 7 0 Program 7 16384 Program 7 16384 Program 7 16384 Program 7 16384 Program 7 -12496 Program 7 10980 Program 7 35246 Program 7 163840 Program 7 -43897 Program 7 90 Program 7 16384 Program 7 16384 Program 7 13519 Program 7 1 Program 7 3142 Program 7 16384 Program 7 0 Program 7 13017 Program 7 1 Program 7 0 Program 7 -189687 Program 7 -131585 Program 7 23285 Program 7 881346 Program 7 13761 Program 7 2784 Program 8 0 Program 8 96 Program 8 1 Program 8 160 Program 8 2 Program 8 0 Program 8 16384 Program 8 16384 Program 8 16384 Program 8 16384 Program 8 -20827 Program 8 7775 Program 8 48917 Program 8 163840 Program 8 -64404 Program 8 90 Program 8 16384 Program 8 16384 Program 8 13519 Program 8 1 Program 8 5297 Program 8 16384 Program 8 0 Program 8 13017 Program 8 1 Program 8 0 Program 8 -157218 Program 8 -90571 Program 8 23285 Program 8 881346 Program 8 13761 Program 8 2784 Program 9 0 Program 9 96 Program 9 1 Program 9 160 Program 9 2 Program 9 0 Program 9 16384 Program 9 16384 Program 9 16384 Program 9 16384 Program 9 -12069 Program 9 0 Program 9 44004 Program 9 163840 Program 9 -121438 Program 9 90 Program 9 16384 Program 9 16384 Program 9 13519 Program 9 1 Program 9 7092 Program 9 16384 Program 9 0 Program 9 13017 Program 9 1 Program 9 0 Program 9 -157218 Program 9 -90571 Program 9 23285 Program 9 881346 Program 9 13761 Program 9 2784 PresetName "Preset 00" PresetName "Preset 01" PresetName "Preset 02" PresetName "Preset 03" PresetName "Preset 04" PresetName "Preset 05" PresetName "Preset 06" PresetName "Preset 07" PresetName "Preset 08" PresetName "Preset 09" ams-2.0.1/instruments/example_presets.ams0000664000076400007640000001317010072545655015535 00000000000000Module 22 1 141 179 0 0 ColorP 0 0 1 9 250 200 50 180 180 180 ColorP 1 3 1 9 250 200 50 180 180 180 FSlider 1 0 16384 0 1638 163840 1 FSlider 1 1 11468 0 0 16384 1 FSlider 1 2 0 0 0 16384 1 FSlider 1 3 541 0 0 16384 1 FSlider 1 4 11438 0 0 16384 1 FSlider 1 5 309 0 0 16384 1 FSlider 1 6 3632 0 0 16384 1 FSlider 1 7 927 0 0 16384 1 FSlider 1 8 14745 0 0 16384 1 FSlider 1 9 2164 0 0 16384 1 FSlider 1 10 819 0 0 16384 1 FSlider 1 11 8192 0 0 16384 1 FSlider 1 12 819 0 0 16384 1 FSlider 1 13 3276 0 0 16384 1 FSlider 1 14 819 0 0 16384 1 Module 6 3 141 33 2 mvclpf24 Mvclpf-3 ColorP 0 2 3 4 250 200 50 180 180 180 ColorP 1 1 3 11 250 200 50 180 180 180 ColorP 2 0 3 1 250 200 50 180 180 180 FSlider 3 0 -65536 0 -983040 163840 1 FSlider 3 1 -35478 0 -81920 81920 1 FSlider 3 2 56343 0 0 163840 1 FSlider 3 3 1290 0 0 16384 1 FSlider 3 4 0 0 0 16384 1 FSlider 3 5 65610 0 -245760 245760 1 FSMIDI 3 1 13 0 0 FSMIDI 3 3 10 0 1 Module 1 4 390 183 0 0 ColorP 1 0 4 11 250 200 50 180 180 180 FSlider 4 0 0 0 0 16384 1 FSlider 4 1 8192 0 1638 14745 1 FSlider 4 2 0 0 0 16384 1 FSlider 4 3 0 0 0 102940 1 FSlider 4 4 0 0 0 163840 1 FSlider 4 5 0 0 0 163840 1 ISlider 4 0 1 1 ISlider 4 1 1 1 ISlider 4 2 1 1 ComboBox 4 0 0 1 Module 7 5 602 182 0 0 ColorP 0 0 5 7 250 200 50 180 180 180 ColorP 1 1 5 7 250 200 50 180 180 180 FSlider 5 0 4855 0 0 16384 1 FSlider 5 1 8192 0 0 16384 1 FSlider 5 2 8192 0 0 16384 1 ComboBox 5 0 0 1 Module 6 7 507 72 0 gverb_1216 gverb ColorP 0 0 7 8 250 200 50 180 180 180 FSlider 7 0 1790093 0 16384 4915200 1 FSlider 7 1 30685 0 1638 5898240 1 FSlider 7 2 2018 0 0 16384 1 FSlider 7 3 14729 0 0 16384 1 FSlider 7 4 0 0 -1146880 0 1 FSlider 7 5 -107343 0 -1146880 0 1 FSlider 7 6 -50847 0 -1146880 0 1 Module 2 8 392 16 0 0 ColorP 0 0 8 1 250 200 50 180 180 180 ColorP 2 0 8 3 250 200 50 180 180 180 FSlider 8 0 0 0 0 16384 1 FSlider 8 1 0 0 0 16384 1 FSlider 8 2 16384 0 0 32768 1 FSlider 8 3 16384 0 0 32768 1 FSlider 8 4 16384 0 0 32768 1 Module 10 9 5 81 0 0 FSlider 9 0 0 0 -16384 16384 1 ISlider 9 0 24 1 ComboBox 9 0 0 1 Module 42 11 134 327 2 0 ColorP 0 1 11 9 250 200 50 180 180 180 FSlider 11 0 -75023 1 -150902 -40582 1 FSlider 11 1 -75451 1 -75451 0 1 FSlider 11 2 0 1 -75451 37725 1 FSlider 11 3 -75023 1 -150902 -40582 1 FSlider 11 4 -75451 1 -75451 0 1 FSlider 11 5 17999 1 -75451 37725 1 ComboBox 11 0 0 1 ComboBox 11 1 1 1 CheckBox 11 0 0 1 Tab "Envelope" Tab "Filter" Frame "Envelope Attack Level" 0 Parameter "Attack Level 0 ID 1" 1 4 0 16384 0 Parameter "Attack Level 1 ID 1" 1 6 0 16384 0 Parameter "Attack Level 2 ID 1" 1 8 0 16384 0 Frame "Envelope Attack Time" 0 Parameter "Attack Time 0 ID 1" 1 3 0 16384 0 Parameter "Attack Time 1 ID 1" 1 5 0 16384 0 Parameter "Attack Time 2 ID 1" 1 7 0 16384 0 Parameter "Attack Time 3 ID 1" 1 9 0 16384 0 Frame "Envelope Release Level" 0 Parameter "Release Level 0 ID 1" 1 11 0 16384 0 Parameter "Release Level 1 ID 1" 1 13 0 16384 0 Frame "Envelope Release Time" 0 Parameter "Release Time 0 ID 1" 1 10 0 16384 0 Parameter "Release Time 1 ID 1" 1 12 0 16384 0 Parameter "Release Time 2 ID 1" 1 14 0 16384 0 Frame "Envelope General Settings" 0 Parameter "Sustain ID 1" 1 1 0 16384 0 Parameter "Time Scale ID 1" 1 0 1638 163840 0 Parameter "Delay ID 1" 1 2 0 16384 0 Frame "Filter" 1 Parameter "Cutoff" 3 1 -81920 81920 0 Parameter "Resonance" 3 3 0 16384 0 Parameter "Filter Envelope Amount" 3 2 0 163840 0 Parameter "Input gain (dB) " 3 0 -983040 163840 0 Parameter "Output gain (dB)" 3 5 -245760 245760 0 Program 0 11438 Program 0 3632 Program 0 14745 Program 0 541 Program 0 309 Program 0 927 Program 0 2164 Program 0 8192 Program 0 3276 Program 0 819 Program 0 819 Program 0 819 Program 0 11468 Program 0 16384 Program 0 0 Program 0 -35478 Program 0 1290 Program 0 56343 Program 0 -65536 Program 0 65610 Program 1 11438 Program 1 16384 Program 1 16384 Program 1 155 Program 1 77 Program 1 0 Program 1 7496 Program 1 8192 Program 1 3276 Program 1 819 Program 1 819 Program 1 819 Program 1 9526 Program 1 16384 Program 1 0 Program 1 -35478 Program 1 1290 Program 1 56343 Program 1 -65536 Program 1 65610 Program 2 11438 Program 2 16384 Program 2 16384 Program 2 155 Program 2 77 Program 2 0 Program 2 7496 Program 2 2859 Program 2 16384 Program 2 819 Program 2 155 Program 2 3323 Program 2 9526 Program 2 16384 Program 2 0 Program 2 -35478 Program 2 1290 Program 2 56343 Program 2 -65536 Program 2 65610 Program 3 11438 Program 3 16384 Program 3 16384 Program 3 155 Program 3 77 Program 3 0 Program 3 7496 Program 3 2859 Program 3 16384 Program 3 819 Program 3 155 Program 3 3323 Program 3 9526 Program 3 16384 Program 3 0 Program 3 -61162 Program 3 12900 Program 3 56343 Program 3 -65536 Program 3 65610 Program 4 11438 Program 4 3632 Program 4 14745 Program 4 541 Program 4 309 Program 4 927 Program 4 2164 Program 4 8192 Program 4 3276 Program 4 819 Program 4 819 Program 4 819 Program 4 11468 Program 4 16384 Program 4 0 Program 4 -61162 Program 4 12900 Program 4 56343 Program 4 -65536 Program 4 65610 Program 5 11438 Program 5 16384 Program 5 16384 Program 5 155 Program 5 77 Program 5 0 Program 5 7496 Program 5 8192 Program 5 3276 Program 5 819 Program 5 819 Program 5 819 Program 5 9526 Program 5 16384 Program 5 0 Program 5 -61162 Program 5 12900 Program 5 56343 Program 5 -65536 Program 5 65610 Program 6 11438 Program 6 16384 Program 6 16384 Program 6 155 Program 6 77 Program 6 0 Program 6 12984 Program 6 4814 Program 6 3184 Program 6 819 Program 6 819 Program 6 2329 Program 6 7925 Program 6 16384 Program 6 0 Program 6 -81920 Program 6 0 Program 6 163840 Program 6 163840 Program 6 -81189 PresetName "Preset 00" PresetName "Preset 01" PresetName "Preset 02" PresetName "Preset 03" PresetName "Preset 04" PresetName "Preset 05" PresetName "Preset 06" ams-2.0.1/tutorial/0000777000076400007640000000000011315252054011150 500000000000000ams-2.0.1/tutorial/A_tutorial10_Effects_Reverb.ams0000664000076400007640000000452107770061731017014 00000000000000Module 1 1 146 7 0 0 Port 1 1 1 2 FSlider 1 0 0 0 0 16384 1 FSlider 1 1 8192 0 1638 14745 1 FSlider 1 2 0 0 0 16384 1 FSlider 1 3 0 0 0 102940 1 FSlider 1 4 0 0 0 163840 1 FSlider 1 5 0 0 0 163840 1 ISlider 1 0 1 1 ISlider 1 1 1 1 ISlider 1 2 1 1 ComboBox 1 0 0 1 Module 10 2 5 6 0 0 FSlider 2 0 0 0 -16384 16384 1 ISlider 2 0 24 1 ComboBox 2 0 0 1 Module 7 4 636 287 0 0 Port 0 0 4 14 Port 1 1 4 14 FSlider 4 0 8192 0 0 16384 1 FSlider 4 1 8192 0 0 16384 1 FSlider 4 2 8192 0 0 16384 1 ComboBox 4 0 1 1 Module 2 8 290 143 0 0 Port 0 0 8 9 Port 2 3 8 1 FSlider 8 0 0 0 0 163840 1 FSlider 8 1 0 0 0 163840 1 FSlider 8 2 16384 0 0 32768 1 FSlider 8 3 16384 0 0 32768 1 FSlider 8 4 16384 0 0 32768 1 Module 11 9 145 255 0 0 Port 0 0 9 2 FSlider 9 0 0 0 0 16384 1 FSlider 9 1 324 0 0 16384 1 FSlider 9 2 327 0 0 16384 1 FSlider 9 3 3285 0 0 16384 1 FSlider 9 4 8192 0 0 16384 1 FSlider 9 5 7989 0 0 16384 1 FSlider 9 6 16384 0 1638 163840 1 Module 6 11 418 143 0 cs_chorus Chorus2 Port 0 0 11 8 FSlider 11 0 39951 0 0 491520 1 FSlider 11 1 24630 1 -95176 37725 1 FSlider 11 2 5246 0 0 163840 1 FSlider 11 3 -24078 1 -75451 55725 1 FSlider 11 4 13680 0 0 49152 1 Module 8 12 417 266 2 0 Port 0 0 12 8 Port 1 0 12 11 FSlider 12 0 16384 0 0 32768 1 FSlider 12 1 6537 0 0 32768 1 FSlider 12 2 16384 0 0 32768 1 Module 6 14 454 398 0 g2reverb Stereo reverb Port 0 0 14 12 Port 1 0 14 12 FSlider 14 0 1480210 0 163840 2457600 1 FSlider 14 1 46287 0 16384 327680 1 FSlider 14 2 11663 0 0 16384 1 FSlider 14 3 4439 0 0 16384 1 FSlider 14 4 0 0 -1310720 0 1 FSlider 14 5 -116221 0 -1310720 0 1 FSlider 14 6 -158190 0 -1310720 0 1 Comment 0 0 128 74 491 292 #PARA# 0 0 0 Here we use a LADSPA Reverb plugin to add ambience to the sound. Let's have a look at the parameters of the G2reverb plugin: #ARAP# #PARA# 0 0 1 "Room size", "Reverb time" and "Dry sound" are self-explanatory. "Reverb tail" is the classical reverbation. "Reflections" is the level of the early reflections which the sound waves experience at the boundaries of the room/hall. A high level of "Reflections" generates the impression of a relatively closed room, whereas a low level of" Reflections" and a high level of "Reverb tail" generate the impression of an open hall. #ARAP# #PARA# 0 0 2 "Damping" and "Input BW" control low pass filters. "Input BW" is the bandwidth of the sound that enters the reverb processing. #ARAP# ams-2.0.1/tutorial/A_tutorial01_MCV_and_VCO_2.ams0000664000076400007640000000177507770061731016337 00000000000000Module 1 1 255 12 0 0 Port 1 1 1 2 FSlider 1 0 0 0 0 16384 1 FSlider 1 1 8192 0 1638 14745 1 FSlider 1 2 0 0 0 16384 1 FSlider 1 3 0 0 0 102940 1 FSlider 1 4 0 0 0 163840 1 FSlider 1 5 0 0 0 163840 1 ISlider 1 0 3 1 ISlider 1 1 1 1 ISlider 1 2 1 1 ComboBox 1 0 0 1 Module 10 2 44 363 0 0 FSlider 2 0 0 0 -16384 16384 1 ISlider 2 0 60 1 ComboBox 2 0 0 1 Module 24 3 621 11 0 0 Port 0 0 3 1 Port 1 0 3 2 FSlider 3 0 665926 0 163840 16384000 1 FSlider 3 1 16384 0 1638 163840 1 FSlider 3 2 0 0 -16384 16384 1 ComboBox 3 0 1 1 ComboBox 3 1 0 1 Module 7 4 621 206 0 0 FSlider 4 0 8192 0 0 16384 1 FSlider 4 1 8192 0 0 16384 1 FSlider 4 2 8192 0 0 16384 1 ComboBox 4 0 1 1 Module 24 6 621 106 0 0 Port 0 1 6 1 Port 1 1 6 2 FSlider 6 0 668231 0 163840 16384000 1 FSlider 6 1 16384 0 1638 163840 1 FSlider 6 2 0 0 -16384 16384 1 ComboBox 6 0 1 1 ComboBox 6 1 0 1 Comment 0 0 235 278 347 174 #PARA# 0 0 0 Now the frequency voltage is applied to the oscillator. You can see in the Scope modules how the frequency changes. #ARAP# ams-2.0.1/tutorial/A_tutorial14_Effects.ams0000664000076400007640000000453707770061731015522 00000000000000Module 1 1 146 7 0 0 Port 1 1 1 2 FSlider 1 0 0 0 0 16384 1 FSlider 1 1 8192 0 1638 14745 1 FSlider 1 2 0 0 0 16384 1 FSlider 1 3 0 0 0 102940 1 FSlider 1 4 0 0 0 163840 1 FSlider 1 5 0 0 0 163840 1 ISlider 1 0 1 1 ISlider 1 1 1 1 ISlider 1 2 1 1 ComboBox 1 0 0 1 Module 10 2 5 6 0 0 FSlider 2 0 0 0 -16384 16384 1 ISlider 2 0 24 1 ComboBox 2 0 0 1 Module 7 4 605 285 0 0 Port 0 0 4 14 Port 1 1 4 14 FSlider 4 0 8192 0 0 16384 1 FSlider 4 1 8192 0 0 16384 1 FSlider 4 2 8192 0 0 16384 1 ComboBox 4 0 1 1 Module 2 8 290 143 0 0 Port 0 0 8 9 Port 2 3 8 1 FSlider 8 0 0 0 0 163840 1 FSlider 8 1 0 0 0 163840 1 FSlider 8 2 16384 0 0 32768 1 FSlider 8 3 16384 0 0 32768 1 FSlider 8 4 16384 0 0 32768 1 Module 11 9 145 255 0 0 Port 0 0 9 2 FSlider 9 0 0 0 0 16384 1 FSlider 9 1 324 0 0 16384 1 FSlider 9 2 327 0 0 16384 1 FSlider 9 3 3285 0 0 16384 1 FSlider 9 4 8192 0 0 16384 1 FSlider 9 5 7989 0 0 16384 1 FSlider 9 6 16384 0 1638 163840 1 Module 6 11 418 143 0 cs_chorus Chorus2 Port 0 0 11 8 FSlider 11 0 39951 0 0 491520 1 FSlider 11 1 24630 1 -95176 37725 1 FSlider 11 2 5246 0 0 163840 1 FSlider 11 3 -24078 1 -75451 55725 1 FSlider 11 4 13680 0 0 49152 1 Module 8 12 417 266 2 0 Port 0 0 12 8 Port 1 0 12 11 FSlider 12 0 16384 0 0 32768 1 FSlider 12 1 6537 0 0 32768 1 FSlider 12 2 16384 0 0 32768 1 Module 6 14 503 401 0 g2reverb Stereo reverb Port 0 0 14 17 Port 1 1 14 17 FSlider 14 0 1480210 0 163840 2457600 1 FSlider 14 1 46287 0 16384 327680 1 FSlider 14 2 11663 0 0 16384 1 FSlider 14 3 4439 0 0 16384 1 FSlider 14 4 0 0 -1310720 0 1 FSlider 14 5 -90394 0 -1310720 0 1 FSlider 14 6 -338979 0 -1310720 0 1 Module 6 16 12 419 0 cs_phaser Phaser1+LFO Port 0 0 16 12 FSlider 16 0 0 0 -655360 163840 1 FSlider 16 1 0 0 -81920 81920 1 FSlider 16 2 -51864 1 -75451 55725 1 FSlider 16 3 0 0 -16384 16384 1 FSlider 16 4 81113 0 0 163840 1 FSlider 16 5 7829 0 -16384 16384 1 FSlider 16 6 8394 0 -16384 16384 1 LSlider 16 0 12 1 Module 6 17 253 401 0 cmt Canyon Delay Port 0 0 17 16 Port 1 0 17 16 FSlider 17 0 11514 0 163 16220 1 FSlider 17 1 11461 0 -16384 16384 1 FSlider 17 2 16220 0 163 16220 1 FSlider 17 3 11461 0 -16384 16384 1 FSlider 17 4 81920000 0 16384 81920000 1 Comment 0 0 73 48 318 193 #PARA# 0 0 0 Here the effects we introduced in the previous patches work together to generate an interesting sound atmosphere. Play slowly and distribute your notes all over the keyboard. #ARAP# ams-2.0.1/tutorial/A_tutorial05_ENV_and_VCF_1.ams0000664000076400007640000000372607770061731016332 00000000000000Module 1 1 143 32 0 0 Port 1 1 1 2 FSlider 1 0 0 0 0 16384 1 FSlider 1 1 8192 0 1638 14745 1 FSlider 1 2 0 0 0 16384 1 FSlider 1 3 0 0 0 102940 1 FSlider 1 4 0 0 0 163840 1 FSlider 1 5 0 0 0 163840 1 ISlider 1 0 1 1 ISlider 1 1 1 1 ISlider 1 2 1 1 ComboBox 1 0 0 1 Module 10 2 8 100 0 0 FSlider 2 0 0 0 -16384 16384 1 ISlider 2 0 24 1 ComboBox 2 0 0 1 Module 24 3 604 22 0 0 Port 0 2 3 1 Port 1 0 3 11 FSlider 3 0 163840 0 163840 16384000 1 FSlider 3 1 16384 0 1638 163840 1 FSlider 3 2 0 0 -16384 16384 1 ComboBox 3 0 1 1 ComboBox 3 1 0 1 Module 7 4 633 355 0 0 Port 0 0 4 8 Port 1 0 4 8 FSlider 4 0 8192 0 0 16384 1 FSlider 4 1 8192 0 0 16384 1 FSlider 4 2 8192 0 0 16384 1 ComboBox 4 0 1 1 Module 2 8 512 300 0 0 Port 0 0 8 9 Port 2 0 8 11 FSlider 8 0 0 0 0 163840 1 FSlider 8 1 0 0 0 163840 1 FSlider 8 2 16384 0 0 32768 1 FSlider 8 3 16384 0 0 32768 1 FSlider 8 4 16384 0 0 32768 1 Module 11 9 132 312 0 0 Port 0 0 9 2 FSlider 9 0 0 0 0 16384 1 FSlider 9 1 324 0 0 16384 1 FSlider 9 2 327 0 0 16384 1 FSlider 9 3 3285 0 0 16384 1 FSlider 9 4 8192 0 0 16384 1 FSlider 9 5 7989 0 0 16384 1 FSlider 9 6 16384 0 1638 163840 1 Module 6 11 259 226 0 mvclpf24 Mvclpf-3 Port 0 2 11 1 Port 1 1 11 2 FSlider 11 0 0 0 -983040 163840 1 FSlider 11 1 -25423 0 -81920 81920 1 FSlider 11 2 0 0 0 163840 1 FSlider 11 3 0 0 0 16384 1 FSlider 11 4 0 0 0 16384 1 FSlider 11 5 95641 0 -245760 245760 1 Comment 0 0 67 5 504 261 #PARA# 0 0 0 Now the filter has been integrated into the basic patch with envelope and VCA. Open again the configuration dialog of the filter and play with the parameters "Frequency" and "Resonance" while observing the result in the scope. You can slightly overdrive the filter by increasing the input gain beyond 0 dB (and decreasing the output gain correspondingly). #ARAP# #PARA# 0 0 1 Note that the frequency voltage of the MCV is also applied to the filter. This is called "VCF tracking" and means that the filter cutoff frequency follows the pitch of the notes you are playing. #ARAP# ams-2.0.1/tutorial/A_tutorial05_ENV_and_VCF_6.ams0000664000076400007640000000313407770061731016330 00000000000000Module 1 1 143 32 0 0 Port 1 1 1 2 FSlider 1 0 0 0 0 16384 1 FSlider 1 1 8192 0 1638 14745 1 FSlider 1 2 0 0 0 16384 1 FSlider 1 3 0 0 0 102940 1 FSlider 1 4 0 0 0 163840 1 FSlider 1 5 0 0 0 163840 1 ISlider 1 0 1 1 ISlider 1 1 1 1 ISlider 1 2 1 1 ComboBox 1 0 0 1 Module 10 2 8 100 0 0 FSlider 2 0 0 0 -16384 16384 1 ISlider 2 0 24 1 ComboBox 2 0 0 1 Module 24 3 604 22 0 0 Port 0 2 3 1 Port 1 0 3 11 FSlider 3 0 328991 0 163840 16384000 1 FSlider 3 1 16384 0 1638 163840 1 FSlider 3 2 0 0 -16384 16384 1 ComboBox 3 0 1 1 ComboBox 3 1 0 1 Module 7 4 633 355 0 0 Port 0 0 4 8 Port 1 0 4 8 FSlider 4 0 8192 0 0 16384 1 FSlider 4 1 8192 0 0 16384 1 FSlider 4 2 8192 0 0 16384 1 ComboBox 4 0 1 1 Module 2 8 512 300 0 0 Port 0 0 8 9 Port 2 0 8 11 FSlider 8 0 0 0 0 163840 1 FSlider 8 1 0 0 0 163840 1 FSlider 8 2 16384 0 0 32768 1 FSlider 8 3 16384 0 0 32768 1 FSlider 8 4 16384 0 0 32768 1 Module 11 9 132 312 0 0 Port 0 0 9 2 Port 1 3 9 2 FSlider 9 0 0 0 0 16384 1 FSlider 9 1 324 0 0 16384 1 FSlider 9 2 327 0 0 16384 1 FSlider 9 3 3285 0 0 16384 1 FSlider 9 4 8192 0 0 16384 1 FSlider 9 5 7989 0 0 16384 1 FSlider 9 6 16384 0 1638 163840 1 Module 6 11 260 201 0 mvclpf24 Mvclpf-3 Port 0 2 11 1 Port 1 1 11 2 Port 2 0 11 9 Port 3 1 11 9 FSlider 11 0 0 0 -983040 163840 1 FSlider 11 1 -66585 0 -81920 81920 1 FSlider 11 2 67392 0 0 163840 1 FSlider 11 3 16384 0 0 16384 1 FSlider 11 4 13640 0 0 16384 1 FSlider 11 5 119853 0 -245760 245760 1 Comment 0 0 254 12 291 174 #PARA# 0 0 0 This is another patch demonstrating modulation of cutoff frequency and resonance by an envelope. Have a look at the waveforms in the scope. #ARAP# ams-2.0.1/tutorial/A_tutorial01_MCV_and_VCO_1.ams0000664000076400007640000000440307770061731016325 00000000000000Module 1 1 255 12 0 0 FSlider 1 0 0 0 0 16384 1 FSlider 1 1 8192 0 1638 14745 1 FSlider 1 2 0 0 0 16384 1 FSlider 1 3 0 0 0 102940 1 FSlider 1 4 0 0 0 163840 1 FSlider 1 5 0 0 0 163840 1 ISlider 1 0 3 1 ISlider 1 1 1 1 ISlider 1 2 1 1 ComboBox 1 0 0 1 Module 10 2 8 365 0 0 FSlider 2 0 0 0 -16384 16384 1 ISlider 2 0 60 1 ComboBox 2 0 0 1 Module 24 3 621 11 0 0 Port 0 0 3 1 Port 1 0 3 2 FSlider 3 0 665926 0 163840 16384000 1 FSlider 3 1 16384 0 1638 163840 1 FSlider 3 2 0 0 -16384 16384 1 ComboBox 3 0 1 1 ComboBox 3 1 0 1 Module 7 4 621 206 0 0 FSlider 4 0 8192 0 0 16384 1 FSlider 4 1 8192 0 0 16384 1 FSlider 4 2 8192 0 0 16384 1 ComboBox 4 0 1 1 Module 24 6 621 106 0 0 Port 0 1 6 1 Port 1 1 6 2 FSlider 6 0 668231 0 163840 16384000 1 FSlider 6 1 16384 0 1638 163840 1 FSlider 6 2 0 0 -16384 16384 1 ComboBox 6 0 1 1 ComboBox 6 1 0 1 Comment 0 0 44 27 649 414 #PARA# 0 0 0 This patch introduces the most important components of a synthesizer, an Oscillator module VCO and a MIDI to Control Voltage module MCV. The oscillator generates basic waveforms available at its output ports on the right side. If you right-click on the Scope modules, these waves are visualized. #ARAP# #PARA# 0 0 1 The properties of most modules in a modular synthesizer system are controlled via control voltages applied to their input ports. This is the origin of the classical names like VCO (Voltage Controlled Oscillator) and VCA (Voltage Controlled Amplifier). #ARAP# #PARA# 0 0 2 The MCV module converts the MIDI note data from your keyboard into virtual control voltages. Make sure your MIDI master keyboard (or the virtual keyboard vkeybd) is connected with AlsaModularSynth (you can use e.g. Kaconnect to establish the connection). When you press down a key (e.g. a'=440 Hz) two yellow lines show up in the scope screens. Scope ID 3 indicates the gate signal, which is 1 as long as you hold down a key. Scope ID 6 shows the frequency control voltage depending on the last note you played. The Note Offset parameter in the configuration dialog of MCV (right-click on the module to open it) determines the origin of the voltage scale. Voltages below 0 are set to 0. #ARAP# #PARA# 0 0 3 The unit of frequency voltage is 1 Volt/Octave. This is the standard frequency convention for analogue synthesizers. #ARAP# ams-2.0.1/tutorial/A_tutorial01_MCV_and_VCO_3.ams0000664000076400007640000000212307770061731016324 00000000000000Module 1 1 255 12 0 0 Port 1 1 1 2 FSlider 1 0 0 0 0 16384 1 FSlider 1 1 8192 0 1638 14745 1 FSlider 1 2 0 0 0 16384 1 FSlider 1 3 0 0 0 102940 1 FSlider 1 4 0 0 0 163840 1 FSlider 1 5 0 0 0 163840 1 ISlider 1 0 3 1 ISlider 1 1 1 1 ISlider 1 2 1 1 ComboBox 1 0 0 1 Module 10 2 44 363 0 0 FSlider 2 0 0 0 -16384 16384 1 ISlider 2 0 60 1 ComboBox 2 0 0 1 Module 24 3 621 11 0 0 Port 0 0 3 1 Port 1 0 3 2 FSlider 3 0 665926 0 163840 16384000 1 FSlider 3 1 16384 0 1638 163840 1 FSlider 3 2 0 0 -16384 16384 1 ComboBox 3 0 1 1 ComboBox 3 1 0 1 Module 7 4 621 206 0 0 Port 0 0 4 1 Port 1 1 4 1 FSlider 4 0 8192 0 0 16384 1 FSlider 4 1 8192 0 0 16384 1 FSlider 4 2 8192 0 0 16384 1 ComboBox 4 0 1 1 Module 24 6 621 106 0 0 Port 0 1 6 1 Port 1 1 6 2 FSlider 6 0 668231 0 163840 16384000 1 FSlider 6 1 16384 0 1638 163840 1 FSlider 6 2 0 0 -16384 16384 1 ComboBox 6 0 1 1 ComboBox 6 1 0 1 Comment 0 0 427 309 301 188 #PARA# 0 0 0 The PCM Out module is the interface to your soundcard. Its "Gain" parameter controls the output gain. Port "In 0" corresponds to the left channel, "In 1" is the right channel. #ARAP# ams-2.0.1/tutorial/A_tutorial02_VCA.ams0000664000076400007640000000260007770061731014536 00000000000000Module 1 1 255 12 0 0 Port 1 1 1 2 FSlider 1 0 0 0 0 16384 1 FSlider 1 1 8192 0 1638 14745 1 FSlider 1 2 0 0 0 16384 1 FSlider 1 3 0 0 0 102940 1 FSlider 1 4 0 0 0 163840 1 FSlider 1 5 0 0 0 163840 1 ISlider 1 0 3 1 ISlider 1 1 1 1 ISlider 1 2 1 1 ComboBox 1 0 0 1 Module 10 2 44 363 0 0 FSlider 2 0 0 0 -16384 16384 1 ISlider 2 0 60 1 ComboBox 2 0 0 1 Module 24 3 621 11 0 0 Port 0 0 3 1 Port 1 0 3 2 FSlider 3 0 665926 0 163840 16384000 1 FSlider 3 1 16384 0 1638 163840 1 FSlider 3 2 0 0 -16384 16384 1 ComboBox 3 0 1 1 ComboBox 3 1 0 1 Module 7 4 621 206 0 0 Port 0 0 4 8 Port 1 0 4 8 FSlider 4 0 8192 0 0 16384 1 FSlider 4 1 8192 0 0 16384 1 FSlider 4 2 8192 0 0 16384 1 ComboBox 4 0 1 1 Module 24 6 621 106 0 0 Port 0 1 6 1 Port 1 1 6 2 FSlider 6 0 668231 0 163840 16384000 1 FSlider 6 1 16384 0 1638 163840 1 FSlider 6 2 0 0 -16384 16384 1 ComboBox 6 0 1 1 ComboBox 6 1 0 1 Module 2 8 405 315 0 0 Port 0 0 8 2 Port 2 1 8 1 FSlider 8 0 0 0 0 163840 1 FSlider 8 1 0 0 0 163840 1 FSlider 8 2 16384 0 0 32768 1 FSlider 8 3 16384 0 0 32768 1 FSlider 8 4 16384 0 0 32768 1 Comment 0 0 36 90 422 184 #PARA# 0 0 0 Usually a note should only be playing while a key is pressed. To implement this we can employ a VCA module. Its amplification is controlled by the voltage applied to its Gain ports. If we apply the Gate voltage to "Gain 0", the amplification is 1 while a key is pressed and 0 otherwise. #ARAP# ams-2.0.1/tutorial/Makefile.in0000664000076400007640000002520611315245614013144 00000000000000# Makefile.in generated by automake 1.10.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Makefile.am for ams VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = tutorial DIST_COMMON = $(dist_tutorialdata_DATA) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/src/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(tutorialdatadir)" dist_tutorialdataDATA_INSTALL = $(INSTALL_DATA) DATA = $(dist_tutorialdata_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMS_CXXFLAGS = @AMS_CXXFLAGS@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LADSPA_PATH = @LADSPA_PATH@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LN_S = @LN_S@ LRELEASE = @LRELEASE@ LTLIBOBJS = @LTLIBOBJS@ LUPDATE = @LUPDATE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MOC = @MOC@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ QT_CFLAGS = @QT_CFLAGS@ QT_CXXFLAGS = @QT_CXXFLAGS@ QT_LIBS = @QT_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ tutorialdatadir = $(pkgdatadir)/tutorial dist_tutorialdata_DATA = \ A_tutorial01_Introduction.ams \ A_tutorial01_MCV_and_VCO_1.ams \ A_tutorial01_MCV_and_VCO_2.ams \ A_tutorial01_MCV_and_VCO_3.ams \ A_tutorial02_VCA.ams \ A_tutorial03_ENV_and_VCA.ams \ A_tutorial04_VCF_and_Scope.ams \ A_tutorial05_ENV_and_VCF_1.ams \ A_tutorial05_ENV_and_VCF_2.ams \ A_tutorial05_ENV_and_VCF_3.ams \ A_tutorial05_ENV_and_VCF_4.ams \ A_tutorial05_ENV_and_VCF_5.ams \ A_tutorial05_ENV_and_VCF_6.ams \ A_tutorial06_LFO_Pitch.ams \ A_tutorial07_LFO_PW.ams \ A_tutorial08_ParameterView.ams \ A_tutorial09_Effects_Chorus.ams \ A_tutorial10_Effects_Reverb.ams \ A_tutorial11_Effects_Canyon.ams \ A_tutorial12_Effects_PhaserLFO.ams \ A_tutorial13_Effects_PhaserENV.ams \ A_tutorial14_Effects.ams all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tutorial/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu tutorial/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh install-dist_tutorialdataDATA: $(dist_tutorialdata_DATA) @$(NORMAL_INSTALL) test -z "$(tutorialdatadir)" || $(MKDIR_P) "$(DESTDIR)$(tutorialdatadir)" @list='$(dist_tutorialdata_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(dist_tutorialdataDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(tutorialdatadir)/$$f'"; \ $(dist_tutorialdataDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(tutorialdatadir)/$$f"; \ done uninstall-dist_tutorialdataDATA: @$(NORMAL_UNINSTALL) @list='$(dist_tutorialdata_DATA)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(tutorialdatadir)/$$f'"; \ rm -f "$(DESTDIR)$(tutorialdatadir)/$$f"; \ done tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(tutorialdatadir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dist_tutorialdataDATA install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-dist_tutorialdataDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am \ install-dist_tutorialdataDATA install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am \ uninstall-dist_tutorialdataDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ams-2.0.1/tutorial/A_tutorial12_Effects_PhaserLFO.ams0000664000076400007640000000412107770061731017350 00000000000000Module 1 1 146 7 0 0 Port 1 1 1 2 FSlider 1 0 0 0 0 16384 1 FSlider 1 1 8192 0 1638 14745 1 FSlider 1 2 0 0 0 16384 1 FSlider 1 3 0 0 0 102940 1 FSlider 1 4 0 0 0 163840 1 FSlider 1 5 0 0 0 163840 1 ISlider 1 0 2 1 ISlider 1 1 1 1 ISlider 1 2 1 1 ComboBox 1 0 0 1 Module 10 2 5 6 0 0 FSlider 2 0 0 0 -16384 16384 1 ISlider 2 0 48 1 ComboBox 2 0 0 1 Module 7 4 468 287 0 0 Port 0 0 4 14 Port 1 0 4 14 FSlider 4 0 8192 0 0 16384 1 FSlider 4 1 8192 0 0 16384 1 FSlider 4 2 8192 0 0 16384 1 ComboBox 4 0 1 1 Module 2 8 290 143 0 0 Port 0 0 8 9 Port 2 3 8 1 FSlider 8 0 0 0 0 163840 1 FSlider 8 1 0 0 0 163840 1 FSlider 8 2 16384 0 0 32768 1 FSlider 8 3 16384 0 0 32768 1 FSlider 8 4 16384 0 0 32768 1 Module 11 9 145 255 0 0 Port 0 0 9 2 FSlider 9 0 0 0 0 16384 1 FSlider 9 1 324 0 0 16384 1 FSlider 9 2 327 0 0 16384 1 FSlider 9 3 3285 0 0 16384 1 FSlider 9 4 8192 0 0 16384 1 FSlider 9 5 7989 0 0 16384 1 FSlider 9 6 16384 0 1638 163840 1 Module 6 14 430 66 0 cs_phaser Phaser1+LFO Port 0 0 14 8 FSlider 14 0 0 0 -655360 163840 1 FSlider 14 1 0 0 -81920 81920 1 FSlider 14 2 -3723 1 -75451 55725 1 FSlider 14 3 0 0 -16384 16384 1 FSlider 14 4 79095 0 0 163840 1 FSlider 14 5 9847 0 -16384 16384 1 FSlider 14 6 8232 0 -16384 16384 1 LSlider 14 0 12 1 Comment 0 0 108 138 567 319 #PARA# 0 0 0 The LADSPA Phaser1 plugin is another marvellous plugin by Fons Adriaensen. It generates the classical analogue phaser sound but has more parameters than a true analogue device. "Sections" is the number of All-pass filters that are used. More sections mean more filter maxima (you can examine this with a Spectrum viewer module). The "Feedback gain" determines how sharp the filter maxima are. #ARAP# #PARA# 0 0 1 The phaser effect is maximum for Output mix at 0.5. The Phaser1+LFO plugin has a built-in LFO. "Modulation gain" specifies the amount of modulation by the LFO. The waveform can be continuously varied between saw down, saw up and triangle. Note that you can create interesting clangerous sounds when "Feedback gain" is near 1 and you move the "Sections" slider up and down (reduce "Modulation gain" for this effect). #ARAP# ams-2.0.1/tutorial/A_tutorial05_ENV_and_VCF_4.ams0000664000076400007640000000313007770061731016322 00000000000000Module 1 1 143 32 0 0 Port 1 1 1 2 FSlider 1 0 0 0 0 16384 1 FSlider 1 1 8192 0 1638 14745 1 FSlider 1 2 0 0 0 16384 1 FSlider 1 3 0 0 0 102940 1 FSlider 1 4 0 0 0 163840 1 FSlider 1 5 0 0 0 163840 1 ISlider 1 0 1 1 ISlider 1 1 1 1 ISlider 1 2 1 1 ComboBox 1 0 0 1 Module 10 2 8 100 0 0 FSlider 2 0 0 0 -16384 16384 1 ISlider 2 0 24 1 ComboBox 2 0 0 1 Module 24 3 604 22 0 0 Port 0 2 3 1 Port 1 0 3 11 FSlider 3 0 163840 0 163840 16384000 1 FSlider 3 1 16384 0 1638 163840 1 FSlider 3 2 0 0 -16384 16384 1 ComboBox 3 0 1 1 ComboBox 3 1 0 1 Module 7 4 633 355 0 0 Port 0 0 4 8 Port 1 0 4 8 FSlider 4 0 8192 0 0 16384 1 FSlider 4 1 8192 0 0 16384 1 FSlider 4 2 8192 0 0 16384 1 ComboBox 4 0 1 1 Module 2 8 512 300 0 0 Port 0 0 8 9 Port 2 0 8 11 FSlider 8 0 0 0 0 163840 1 FSlider 8 1 0 0 0 163840 1 FSlider 8 2 16384 0 0 32768 1 FSlider 8 3 16384 0 0 32768 1 FSlider 8 4 16384 0 0 32768 1 Module 11 9 132 312 0 0 Port 0 0 9 2 Port 1 3 9 2 FSlider 9 0 0 0 0 16384 1 FSlider 9 1 324 0 0 16384 1 FSlider 9 2 327 0 0 16384 1 FSlider 9 3 3285 0 0 16384 1 FSlider 9 4 8192 0 0 16384 1 FSlider 9 5 7989 0 0 16384 1 FSlider 9 6 16384 0 1638 163840 1 Module 6 11 260 201 0 mvclpf24 Mvclpf-3 Port 0 2 11 1 Port 1 1 11 2 Port 2 1 11 9 FSlider 11 0 0 0 -983040 163840 1 FSlider 11 1 12106 0 -81920 81920 1 FSlider 11 2 72235 0 0 163840 1 FSlider 11 3 9080 0 0 16384 1 FSlider 11 4 0 0 0 16384 1 FSlider 11 5 129539 0 -245760 245760 1 Comment 0 0 258 10 332 182 #PARA# 0 0 0 Now we apply the inverse envelope. The filter resonance has been increased so that you hear the "filter sweep". It's interesting to see this in the Scope. #ARAP# ams-2.0.1/tutorial/Makefile.am0000664000076400007640000000146211051107143013120 00000000000000# Makefile.am for ams tutorialdatadir = $(pkgdatadir)/tutorial dist_tutorialdata_DATA = \ A_tutorial01_Introduction.ams \ A_tutorial01_MCV_and_VCO_1.ams \ A_tutorial01_MCV_and_VCO_2.ams \ A_tutorial01_MCV_and_VCO_3.ams \ A_tutorial02_VCA.ams \ A_tutorial03_ENV_and_VCA.ams \ A_tutorial04_VCF_and_Scope.ams \ A_tutorial05_ENV_and_VCF_1.ams \ A_tutorial05_ENV_and_VCF_2.ams \ A_tutorial05_ENV_and_VCF_3.ams \ A_tutorial05_ENV_and_VCF_4.ams \ A_tutorial05_ENV_and_VCF_5.ams \ A_tutorial05_ENV_and_VCF_6.ams \ A_tutorial06_LFO_Pitch.ams \ A_tutorial07_LFO_PW.ams \ A_tutorial08_ParameterView.ams \ A_tutorial09_Effects_Chorus.ams \ A_tutorial10_Effects_Reverb.ams \ A_tutorial11_Effects_Canyon.ams \ A_tutorial12_Effects_PhaserLFO.ams \ A_tutorial13_Effects_PhaserENV.ams \ A_tutorial14_Effects.ams ams-2.0.1/tutorial/A_tutorial13_Effects_PhaserENV.ams0000664000076400007640000000311107770061731017357 00000000000000Module 1 1 146 7 0 0 Port 1 1 1 2 FSlider 1 0 0 0 0 16384 1 FSlider 1 1 8192 0 1638 14745 1 FSlider 1 2 0 0 0 16384 1 FSlider 1 3 0 0 0 102940 1 FSlider 1 4 0 0 0 163840 1 FSlider 1 5 0 0 0 163840 1 ISlider 1 0 2 1 ISlider 1 1 1 1 ISlider 1 2 1 1 ComboBox 1 0 0 1 Module 10 2 5 6 0 0 FSlider 2 0 0 0 -16384 16384 1 ISlider 2 0 48 1 ComboBox 2 0 0 1 Module 7 4 540 353 0 0 Port 0 0 4 15 Port 1 0 4 15 FSlider 4 0 8192 0 0 16384 1 FSlider 4 1 8192 0 0 16384 1 FSlider 4 2 8192 0 0 16384 1 ComboBox 4 0 1 1 Module 2 8 290 143 0 0 Port 0 0 8 9 Port 2 3 8 1 FSlider 8 0 0 0 0 163840 1 FSlider 8 1 0 0 0 163840 1 FSlider 8 2 16384 0 0 32768 1 FSlider 8 3 16384 0 0 32768 1 FSlider 8 4 16384 0 0 32768 1 Module 11 9 145 255 0 0 Port 0 0 9 2 Port 1 3 9 2 FSlider 9 0 0 0 0 16384 1 FSlider 9 1 11842 0 0 16384 1 FSlider 9 2 0 0 0 16384 1 FSlider 9 3 13951 0 0 16384 1 FSlider 9 4 3853 0 0 16384 1 FSlider 9 5 11680 0 0 16384 1 FSlider 9 6 16384 0 1638 163840 1 Module 6 15 475 181 0 cs_phaser Phaser1 Port 0 0 15 8 Port 1 1 15 9 Port 2 1 15 9 FSlider 15 0 0 0 -655360 163840 1 FSlider 15 1 21388 0 -81920 81920 1 FSlider 15 2 82324 0 0 163840 1 FSlider 15 3 0 0 0 163840 1 FSlider 15 4 7829 0 -16384 16384 1 FSlider 15 5 8313 0 -16384 16384 1 LSlider 15 0 12 1 Comment 0 0 94 32 355 251 #PARA# 0 0 0 Here we use the Phaser1 without LFO. This version has external ports for frequency control. #ARAP# #PARA# 0 0 1 The inverse output of the envelope is attached to both the "Frequency" and "Exp. FM" ports. This way the range of the filter sweep can be increased with the "Exp. FM gain" parameter of the phaser. #ARAP# ams-2.0.1/tutorial/A_tutorial09_Effects_Chorus.ams0000664000076400007640000000332007770061731017036 00000000000000Module 1 1 146 7 0 0 Port 1 1 1 2 FSlider 1 0 0 0 0 16384 1 FSlider 1 1 8192 0 1638 14745 1 FSlider 1 2 0 0 0 16384 1 FSlider 1 3 0 0 0 102940 1 FSlider 1 4 0 0 0 163840 1 FSlider 1 5 0 0 0 163840 1 ISlider 1 0 2 1 ISlider 1 1 1 1 ISlider 1 2 1 1 ComboBox 1 0 0 1 Module 10 2 5 6 0 0 FSlider 2 0 0 0 -16384 16384 1 ISlider 2 0 48 1 ComboBox 2 0 0 1 Module 7 4 581 333 0 0 Port 0 0 4 12 Port 1 0 4 12 FSlider 4 0 8192 0 0 16384 1 FSlider 4 1 8192 0 0 16384 1 FSlider 4 2 8192 0 0 16384 1 ComboBox 4 0 1 1 Module 2 8 290 143 0 0 Port 0 0 8 9 Port 2 3 8 1 FSlider 8 0 0 0 0 163840 1 FSlider 8 1 0 0 0 163840 1 FSlider 8 2 16384 0 0 32768 1 FSlider 8 3 16384 0 0 32768 1 FSlider 8 4 16384 0 0 32768 1 Module 11 9 145 255 0 0 Port 0 0 9 2 FSlider 9 0 0 0 0 16384 1 FSlider 9 1 324 0 0 16384 1 FSlider 9 2 327 0 0 16384 1 FSlider 9 3 3285 0 0 16384 1 FSlider 9 4 8192 0 0 16384 1 FSlider 9 5 7989 0 0 16384 1 FSlider 9 6 16384 0 1638 163840 1 Module 6 11 418 143 0 cs_chorus Chorus2 Port 0 0 11 8 FSlider 11 0 39951 0 0 491520 1 FSlider 11 1 24631 1 -95176 37725 1 FSlider 11 2 5246 0 0 163840 1 FSlider 11 3 -24079 1 -75451 55725 1 FSlider 11 4 13680 0 0 49152 1 Module 8 12 436 266 2 0 Port 0 0 12 8 Port 1 0 12 11 FSlider 12 0 16384 0 0 32768 1 FSlider 12 1 6537 0 0 32768 1 FSlider 12 2 16384 0 0 32768 1 Comment 0 0 176 58 368 256 #PARA# 0 0 0 After you have learned how to use the most basic modules we can now start to add effects. #ARAP# #PARA# 0 0 1 A Chorus effect will make your sound broader. #ARAP# #PARA# 0 0 2 Here you see the most basic single VCO patch with an additional LADSPA Chorus module and a Mixer module. The mixer is used for the "dry/wet" balance i.e. the volume of the "original" signal and the effect signal. #ARAP# ams-2.0.1/tutorial/A_tutorial04_VCF_and_Scope.ams0000664000076400007640000000433307770061731016525 00000000000000Module 1 1 25 4 0 0 FSlider 1 0 0 0 0 16384 1 FSlider 1 1 8192 0 1638 14745 1 FSlider 1 2 0 0 0 16384 1 FSlider 1 3 0 0 0 102940 1 FSlider 1 4 0 0 0 163840 1 FSlider 1 5 0 0 0 163840 1 ISlider 1 0 4 1 ISlider 1 1 1 1 ISlider 1 2 1 1 ComboBox 1 0 0 1 Module 6 2 179 367 0 mvclpf24 Mvclpf-3 Port 0 2 2 1 FSlider 2 0 -423 0 -983040 163840 1 FSlider 2 1 33494 0 -81920 81920 1 FSlider 2 2 0 0 0 163840 1 FSlider 2 3 9564 0 0 16384 1 FSlider 2 4 0 0 0 16384 1 FSlider 2 5 145277 0 -245760 245760 1 Module 7 3 615 271 0 0 Port 0 0 3 2 Port 1 0 3 2 FSlider 3 0 1614 0 0 16384 1 FSlider 3 1 8192 0 0 16384 1 FSlider 3 2 8192 0 0 16384 1 ComboBox 3 0 1 1 Module 25 4 617 157 0 0 Port 0 2 4 1 Port 1 0 4 2 FSlider 4 0 16384 0 1638 163840 1 FSlider 4 1 0 0 0 327680000 1 FSlider 4 2 81920000 0 0 327680000 1 ComboBox 4 0 0 1 ComboBox 4 1 0 1 ComboBox 4 2 0 1 ComboBox 4 3 1 1 ComboBox 4 4 2 1 ComboBox 4 5 5 1 CheckBox 4 0 1 1 Module 24 5 617 45 0 0 Port 0 2 5 1 Port 1 0 5 2 FSlider 5 0 163840 0 163840 16384000 1 FSlider 5 1 33279 0 1638 163840 1 FSlider 5 2 0 0 -16384 16384 1 ComboBox 5 0 1 1 ComboBox 5 1 0 1 Comment 0 0 17 26 595 363 #PARA# 0 0 0 This patch demonstrates the component that shapes the sound in an analogue modular synthesizer: The voltage controlled filter (VCF). The most famous VCF has been invented by Robert A. Moog in the 60's. Fons Adriaensen has written a digital implementation of this filter which is very close to the original. #ARAP# #PARA# 0 0 1 Now open the Scope and Spectrum windows to see how the filter works. The scope displays both the original (green) and filtered (yellow) waveforms. If you open the configuration dialog of the filter (LADSPA Mvclpf-3), you can play with the parameters of the filter. #ARAP# #PARA# 0 0 2 The "Frequency" parameter is the cutoff frequency of the lowpass filter. #ARAP# #PARA# 0 0 3 Its unit is not given in Hz but in 1V/Octave. If the frequency is at its maximum value, the filters' waveform is almost identical to the original one. If the frequency is around -0.5, the filter passes only a sine wave. #ARAP# #PARA# 0 0 4 The "Resonance" parameter determines the amount of amplification of frequencies near the cutoff frequency. If resonance is near 1, the filter starts self-oscillation. #ARAP# ams-2.0.1/tutorial/A_tutorial05_ENV_and_VCF_3.ams0000664000076400007640000000323507770061731016327 00000000000000Module 1 1 143 32 0 0 Port 1 1 1 2 FSlider 1 0 0 0 0 16384 1 FSlider 1 1 8192 0 1638 14745 1 FSlider 1 2 0 0 0 16384 1 FSlider 1 3 0 0 0 102940 1 FSlider 1 4 0 0 0 163840 1 FSlider 1 5 0 0 0 163840 1 ISlider 1 0 1 1 ISlider 1 1 1 1 ISlider 1 2 1 1 ComboBox 1 0 0 1 Module 10 2 8 100 0 0 FSlider 2 0 0 0 -16384 16384 1 ISlider 2 0 24 1 ComboBox 2 0 0 1 Module 24 3 604 22 0 0 Port 0 2 3 1 Port 1 0 3 11 FSlider 3 0 328303 0 163840 16384000 1 FSlider 3 1 16384 0 1638 163840 1 FSlider 3 2 0 0 -16384 16384 1 ComboBox 3 0 1 1 ComboBox 3 1 0 1 Module 7 4 633 355 0 0 Port 0 0 4 8 Port 1 0 4 8 FSlider 4 0 8192 0 0 16384 1 FSlider 4 1 8192 0 0 16384 1 FSlider 4 2 8192 0 0 16384 1 ComboBox 4 0 1 1 Module 2 8 512 300 0 0 Port 0 0 8 9 Port 2 0 8 11 FSlider 8 0 0 0 0 163840 1 FSlider 8 1 0 0 0 163840 1 FSlider 8 2 16384 0 0 32768 1 FSlider 8 3 16384 0 0 32768 1 FSlider 8 4 16384 0 0 32768 1 Module 11 9 132 312 0 0 Port 0 0 9 2 Port 1 3 9 2 FSlider 9 0 0 0 0 16384 1 FSlider 9 1 324 0 0 16384 1 FSlider 9 2 327 0 0 16384 1 FSlider 9 3 3285 0 0 16384 1 FSlider 9 4 8192 0 0 16384 1 FSlider 9 5 7989 0 0 16384 1 FSlider 9 6 16384 0 1638 163840 1 Module 6 11 260 201 0 mvclpf24 Mvclpf-3 Port 0 2 11 1 Port 1 1 11 2 Port 2 0 11 9 FSlider 11 0 0 0 -983040 163840 1 FSlider 11 1 -72235 0 -81920 81920 1 FSlider 11 2 67392 0 0 163840 1 FSlider 11 3 0 0 0 16384 1 FSlider 11 4 0 0 0 16384 1 FSlider 11 5 50847 0 -245760 245760 1 Comment 0 0 219 4 381 191 #PARA# 0 0 0 Here the Trigger output of the MCV is connected with the Retrigger input of the envelope. This enables "Multitriggering", i.e. the envelope is restarted on each NOTEON. Have a look at the waveforms displayed by the Scope module. #ARAP# ams-2.0.1/tutorial/A_tutorial03_ENV_and_VCA.ams0000664000076400007640000000364407770061731016102 00000000000000Module 1 1 255 12 0 0 Port 1 1 1 2 FSlider 1 0 0 0 0 16384 1 FSlider 1 1 8192 0 1638 14745 1 FSlider 1 2 0 0 0 16384 1 FSlider 1 3 0 0 0 102940 1 FSlider 1 4 0 0 0 163840 1 FSlider 1 5 0 0 0 163840 1 ISlider 1 0 2 1 ISlider 1 1 1 1 ISlider 1 2 1 1 ComboBox 1 0 0 1 Module 10 2 21 295 0 0 FSlider 2 0 0 0 -16384 16384 1 ISlider 2 0 48 1 ComboBox 2 0 0 1 Module 24 3 621 11 0 0 Port 0 0 3 1 Port 1 0 3 9 FSlider 3 0 1638400 0 163840 16384000 1 FSlider 3 1 16384 0 1638 163840 1 FSlider 3 2 0 0 -16384 16384 1 ComboBox 3 0 1 1 ComboBox 3 1 0 1 Module 7 4 621 206 0 0 Port 0 0 4 8 Port 1 0 4 8 FSlider 4 0 8192 0 0 16384 1 FSlider 4 1 8192 0 0 16384 1 FSlider 4 2 8192 0 0 16384 1 ComboBox 4 0 1 1 Module 24 6 621 106 0 0 Port 0 1 6 1 Port 1 1 6 2 FSlider 6 0 668231 0 163840 16384000 1 FSlider 6 1 16384 0 1638 163840 1 FSlider 6 2 0 0 -16384 16384 1 ComboBox 6 0 1 1 ComboBox 6 1 0 1 Module 2 8 405 315 0 0 Port 0 0 8 9 Port 2 1 8 1 FSlider 8 0 0 0 0 163840 1 FSlider 8 1 0 0 0 163840 1 FSlider 8 2 16384 0 0 32768 1 FSlider 8 3 16384 0 0 32768 1 FSlider 8 4 16384 0 0 32768 1 Module 11 9 214 343 0 0 Port 0 0 9 2 FSlider 9 0 0 0 0 16384 1 FSlider 9 1 324 0 0 16384 1 FSlider 9 2 327 0 0 16384 1 FSlider 9 3 3285 0 0 16384 1 FSlider 9 4 8192 0 0 16384 1 FSlider 9 5 7989 0 0 16384 1 FSlider 9 6 16384 0 1638 163840 1 Comment 0 0 116 117 502 282 #PARA# 0 0 0 In the previous patch the sound started and stopped quite abruptly. #ARAP# #PARA# 0 0 1 Here we use an envelope module ENV that outputs an envelope waveform used as gain input for the VCA. If you right-click on the ENV module you can see the envelope and experiment with its parameters. #ARAP# #PARA# 0 0 2 Scope ID 3 now displays the envelope voltage instead of the MCV gate. #ARAP# #PARA# 0 0 3 #ARAP# #PARA# 0 0 4 The Note Offset of the MCV has been changed to 48 so that you can also play notes below the middle c. The Octave parameter of the VCO has been lowered by one octave. #ARAP# ams-2.0.1/tutorial/A_tutorial08_ParameterView.ams0000664000076400007640000003436507770061731016723 00000000000000Module 1 1 355 7 0 0 Port 1 1 1 3 Port 2 1 1 10 Port 4 1 1 10 FSlider 1 0 0 0 0 16384 1 FSlider 1 1 8192 0 1638 14745 1 FSlider 1 2 0 0 0 16384 1 FSlider 1 3 0 0 0 102940 1 FSlider 1 4 -75822 1 -113176 37725 1 FSlider 1 5 0 0 0 163840 1 ISlider 1 0 1 1 ISlider 1 1 1 1 ISlider 1 2 1 1 ComboBox 1 0 0 1 Module 1 2 355 256 0 0 Port 1 1 2 3 Port 2 1 2 10 Port 4 1 2 10 FSlider 2 0 92 0 0 1625 1 FSlider 2 1 7882 0 1638 14745 1 FSlider 2 2 0 0 0 16384 1 FSlider 2 3 0 0 0 102940 1 FSlider 2 4 -75451 1 -113176 37725 1 FSlider 2 5 0 0 0 163840 1 ISlider 2 0 2 1 ISlider 2 1 1 1 ISlider 2 2 1 1 ComboBox 2 0 0 1 Module 10 3 18 6 0 0 FSlider 3 0 0 0 -16384 16384 1 ISlider 3 0 36 1 ComboBox 3 0 0 1 Module 7 4 1174 143 0 0 Port 0 0 4 5 Port 1 0 4 5 FSlider 4 0 6540 0 0 16384 1 FSlider 4 1 8192 0 0 16384 1 FSlider 4 2 8192 0 0 16384 1 ComboBox 4 0 1 1 Module 2 5 1035 88 0 0 Port 0 0 5 6 Port 2 0 5 8 FSlider 5 0 0 0 0 16384 1 FSlider 5 1 0 0 0 16384 1 FSlider 5 2 16384 0 0 32768 1 FSlider 5 3 16384 0 0 32768 1 FSlider 5 4 16384 0 0 32768 1 Module 11 6 660 29 0 0 Port 0 0 6 3 Port 1 3 6 3 FSlider 6 0 0 0 0 16384 1 FSlider 6 1 -107304 1 -113176 0 1 FSlider 6 2 0 0 0 16384 1 FSlider 6 3 -11745 1 -113176 0 1 FSlider 6 4 9936 0 0 16384 1 FSlider 6 5 -19219 1 -113176 0 1 FSlider 6 6 16384 0 1638 163840 1 Module 11 7 608 336 0 0 Port 0 0 7 3 Port 1 3 7 3 FSlider 7 0 0 0 0 16384 1 FSlider 7 1 -113175 1 -113176 0 1 FSlider 7 2 0 0 0 16384 1 FSlider 7 3 -12812 1 -113176 0 1 FSlider 7 4 4328 0 0 16384 1 FSlider 7 5 -24023 1 -113176 0 1 FSlider 7 6 16384 0 1638 163840 1 Module 6 8 761 182 0 mvclpf24 Mvclpf-3 Digital implementation of the VC filter invented by R.A.Moog Port 0 0 8 9 Port 1 1 8 3 Port 2 0 8 7 FSlider 8 0 0 0 -983040 163840 1 FSlider 8 1 -61812 0 -81920 81920 1 FSlider 8 2 81920 0 0 163840 1 FSlider 8 3 0 0 0 16384 1 FSlider 8 4 0 0 0 16384 1 FSlider 8 5 0 0 -245760 245760 1 FSMIDI 8 1 13 0 0 FSMIDI 8 3 10 0 1 Module 8 9 542 171 4 0 Port 0 2 9 1 Port 1 3 9 1 Port 2 2 9 2 Port 3 3 9 2 FSlider 9 0 16384 0 0 32768 1 FSlider 9 1 16384 0 0 32768 1 FSlider 9 2 0 0 0 32768 1 FSlider 9 3 16384 0 0 32768 1 FSlider 9 4 0 0 0 32768 1 Module 3 10 116 289 0 0 FSlider 10 0 23083 1 -75451 75451 1 FSlider 10 1 0 0 0 102940 1 Comment 0 0 83 128 537 288 #PARA# 0 0 0 This patch introduces the Parameter View. You open this dialog via the menu "View" --> "Parameter View". #ARAP# #PARA# 0 0 1 The Parameter View shows the most important parameters of the current patch. Configurations of these parameters can be stored as presets. These presets can be addressed via MIDI program change messages. #ARAP# #PARA# 0 0 2 The Parameter View allows you to build your own GUIs for your patches. Any parameter can be transferred into the Parameter View by clicking "Add to Parameter View" in the Control Center dialog. #ARAP# #PARA# 0 0 3 Note that all presets are lost when you add new parameters, therefore design your GUI first ! #ARAP# Tab "Oscillators / LFO" Tab "Mixer / Filter" Tab "Envelopes" Frame "Filter Envelope" 2 Parameter "Attack ID 7" 7 1 -113175 0 1 Parameter "Decay ID 7" 7 3 -113175 0 1 Parameter "Hold ID 7" 7 2 0 16384 0 Parameter "Sustain ID 7" 7 4 0 16384 0 Parameter "Release ID 7" 7 5 -113175 0 1 Frame "Volume Envelope" 2 Parameter "Attack ID 6" 6 1 -113175 0 1 Parameter "Decay ID 6" 6 3 -113175 0 1 Parameter "Hold ID 6" 6 2 0 16384 0 Parameter "Sustain ID 6" 6 4 0 16384 0 Parameter "Release ID 6" 6 5 -113175 0 1 Frame "Oscillators" 0 Parameter "Octave ID 1" 1 0 Parameter "Octave ID 2" 2 0 Parameter "Tune ID 2" 2 1 0 1625 0 Parameter "PW ID 1" 1 4 1638 14745 0 Parameter "PW ID 2" 2 4 1638 14745 0 Frame "Mixer" 1 Parameter "Gain ID 9" 9 0 0 32768 0 Parameter "Volume 0 ID 9" 9 1 0 32768 0 Parameter "Volume 1 ID 9" 9 2 0 32768 0 Parameter "Volume 2 ID 9" 9 3 0 32768 0 Parameter "Volume 3 ID 9" 9 4 0 32768 0 Frame "Filter" 1 Parameter "Frequency ID 8" 8 1 -81920 81920 0 Parameter "Resonance ID 8" 8 3 0 16384 0 Parameter "Filter Envelope Amount" 8 2 0 163840 0 Parameter "Input gain (dB) ID 8" 8 0 -983040 163840 0 Parameter "Output gain (dB) ID 8" 8 5 -245760 245760 0 Frame "LFO" 0 Parameter "Frequency ID 10" 10 0 -75451 75448 1 Parameter "LFO Modulation VCO 1" 1 8 -113175 37722 1 Parameter "LFO Modulation VCO 2" 2 8 -113175 37722 1 Parameter "Pulse Width Modulation VCO 1" 1 5 0 16384 0 Parameter "Pulse Width Modulation VCO 2" 2 5 0 16384 0 Program 0 -113175 Program 0 -24060 Program 0 0 Program 0 0 Program 0 -17597 Program 0 -105052 Program 0 -26328 Program 0 0 Program 0 9936 Program 0 -11766 Program 0 1 Program 0 4 Program 0 68 Program 0 8192 Program 0 8192 Program 0 16384 Program 0 16384 Program 0 0 Program 0 0 Program 0 16626 Program 0 -81920 Program 0 0 Program 0 115011 Program 0 0 Program 0 0 Program 0 31352 Program 0 -75822 Program 0 -75451 Program 0 0 Program 0 0 Program 1 -113175 Program 1 -13346 Program 1 0 Program 1 0 Program 1 -17597 Program 1 -105052 Program 1 -12279 Program 1 0 Program 1 9936 Program 1 -11766 Program 1 1 Program 1 3 Program 1 68 Program 1 8192 Program 1 14003 Program 1 16384 Program 1 16384 Program 1 0 Program 1 0 Program 1 16626 Program 1 -81920 Program 1 0 Program 1 115011 Program 1 0 Program 1 0 Program 1 31352 Program 1 -75822 Program 1 -75451 Program 1 0 Program 1 0 Program 2 -113175 Program 2 -13346 Program 2 0 Program 2 0 Program 2 -17597 Program 2 -105052 Program 2 -12279 Program 2 0 Program 2 9936 Program 2 -11766 Program 2 1 Program 2 3 Program 2 68 Program 2 8192 Program 2 12767 Program 2 16384 Program 2 16384 Program 2 0 Program 2 0 Program 2 16626 Program 2 -81920 Program 2 0 Program 2 115011 Program 2 0 Program 2 0 Program 2 31352 Program 2 -75822 Program 2 -75451 Program 2 0 Program 2 2244 Program 3 -113175 Program 3 -8542 Program 3 232 Program 3 4869 Program 3 -13346 Program 3 -105052 Program 3 -6940 Program 3 0 Program 3 9936 Program 3 -8008 Program 3 1 Program 3 3 Program 3 68 Program 3 8192 Program 3 10912 Program 3 16384 Program 3 16384 Program 3 0 Program 3 0 Program 3 16626 Program 3 -81920 Program 3 0 Program 3 114204 Program 3 0 Program 3 0 Program 3 23083 Program 3 -75822 Program 3 -75451 Program 3 0 Program 3 4938 Program 4 -113175 Program 4 -8542 Program 4 232 Program 4 4869 Program 4 -13346 Program 4 -105052 Program 4 -6940 Program 4 0 Program 4 9936 Program 4 -8008 Program 4 1 Program 4 2 Program 4 68 Program 4 8192 Program 4 10912 Program 4 16384 Program 4 16384 Program 4 0 Program 4 0 Program 4 16626 Program 4 -81920 Program 4 0 Program 4 114204 Program 4 0 Program 4 0 Program 4 23083 Program 4 -75822 Program 4 -75451 Program 4 0 Program 4 4938 Program 5 -113175 Program 5 -45911 Program 5 0 Program 5 4328 Program 5 -24023 Program 5 -107304 Program 5 -35234 Program 5 0 Program 5 9936 Program 5 -19219 Program 5 1 Program 5 2 Program 5 92 Program 5 8192 Program 5 10912 Program 5 16384 Program 5 16384 Program 5 0 Program 5 0 Program 5 16626 Program 5 -81920 Program 5 0 Program 5 114204 Program 5 0 Program 5 0 Program 5 23083 Program 5 -75822 Program 5 -75451 Program 5 0 Program 5 4938 Program 6 -113175 Program 6 -12812 Program 6 0 Program 6 4328 Program 6 -24023 Program 6 -107304 Program 6 -11745 Program 6 0 Program 6 9936 Program 6 -19219 Program 6 1 Program 6 2 Program 6 92 Program 6 8192 Program 6 7882 Program 6 16384 Program 6 16384 Program 6 0 Program 6 16384 Program 6 0 Program 6 -61812 Program 6 0 Program 6 81920 Program 6 0 Program 6 0 Program 6 23083 Program 6 -75822 Program 6 -75451 Program 6 0 Program 6 0 Program 7 -113175 Program 7 -18685 Program 7 0 Program 7 4328 Program 7 -24023 Program 7 -107304 Program 7 -11745 Program 7 0 Program 7 9936 Program 7 -19219 Program 7 1 Program 7 2 Program 7 92 Program 7 8192 Program 7 8192 Program 7 16384 Program 7 16384 Program 7 0 Program 7 8192 Program 7 8192 Program 7 -61812 Program 7 0 Program 7 81920 Program 7 0 Program 7 0 Program 7 23083 Program 7 -75822 Program 7 -75451 Program 7 0 Program 7 0 Program 8 -113175 Program 8 -18685 Program 8 0 Program 8 4328 Program 8 -24023 Program 8 -107304 Program 8 -11745 Program 8 0 Program 8 9936 Program 8 -19219 Program 8 1 Program 8 2 Program 8 92 Program 8 8192 Program 8 8192 Program 8 16384 Program 8 16384 Program 8 0 Program 8 8192 Program 8 8192 Program 8 -61812 Program 8 5734 Program 8 81920 Program 8 0 Program 8 0 Program 8 23083 Program 8 -75822 Program 8 -75451 Program 8 0 Program 8 0 Program 9 -113175 Program 9 -18685 Program 9 0 Program 9 4328 Program 9 -24023 Program 9 -107304 Program 9 -11745 Program 9 0 Program 9 9936 Program 9 -19219 Program 9 1 Program 9 2 Program 9 92 Program 9 8192 Program 9 12396 Program 9 16384 Program 9 16384 Program 9 0 Program 9 8192 Program 9 8192 Program 9 -61812 Program 9 5734 Program 9 81920 Program 9 0 Program 9 0 Program 9 23083 Program 9 -75822 Program 9 -75451 Program 9 0 Program 9 0 Program 10 -43776 Program 10 -18685 Program 10 0 Program 10 4328 Program 10 -24023 Program 10 -107304 Program 10 -11745 Program 10 0 Program 10 9936 Program 10 -19219 Program 10 1 Program 10 1 Program 10 92 Program 10 8192 Program 10 12457 Program 10 16384 Program 10 16384 Program 10 0 Program 10 0 Program 10 16384 Program 10 -61812 Program 10 9011 Program 10 81920 Program 10 0 Program 10 0 Program 10 23083 Program 10 -75822 Program 10 -75451 Program 10 0 Program 10 3591 Program 11 -75807 Program 11 -16015 Program 11 0 Program 11 11979 Program 11 -9609 Program 11 -74739 Program 11 -17083 Program 11 0 Program 11 15457 Program 11 -9609 Program 11 1 Program 11 1 Program 11 54 Program 11 8192 Program 11 12457 Program 11 16384 Program 11 16384 Program 11 0 Program 11 16384 Program 11 0 Program 11 -64791 Program 11 6851 Program 11 65536 Program 11 0 Program 11 0 Program 11 31352 Program 11 -75822 Program 11 -75451 Program 11 0 Program 11 3591 Program 12 -75807 Program 12 -16015 Program 12 0 Program 12 11979 Program 12 -9609 Program 12 -74739 Program 12 -17083 Program 12 0 Program 12 15457 Program 12 -9609 Program 12 1 Program 12 0 Program 12 31 Program 12 8192 Program 12 10148 Program 12 16384 Program 12 16384 Program 12 0 Program 12 16384 Program 12 6678 Program 12 -64791 Program 12 13926 Program 12 65536 Program 12 0 Program 12 0 Program 12 18599 Program 12 -75822 Program 12 -75451 Program 12 0 Program 12 1448 Program 13 -57392 Program 13 -3755 Program 13 0 Program 13 0 Program 13 -6973 Program 13 -68656 Program 13 -3755 Program 13 0 Program 13 15457 Program 13 -4827 Program 13 1 Program 13 0 Program 13 31 Program 13 8192 Program 13 11018 Program 13 16384 Program 13 16384 Program 13 0 Program 13 16384 Program 13 4348 Program 13 -64791 Program 13 15341 Program 13 69260 Program 13 0 Program 13 0 Program 13 18599 Program 13 -75822 Program 13 -75451 Program 13 0 Program 13 2058 Program 14 -68120 Program 14 -2145 Program 14 0 Program 14 0 Program 14 -6973 Program 14 -64901 Program 14 0 Program 14 0 Program 14 15457 Program 14 -4827 Program 14 0 Program 14 2 Program 14 31 Program 14 8192 Program 14 12136 Program 14 16384 Program 14 16384 Program 14 0 Program 14 16384 Program 14 7920 Program 14 -64791 Program 14 15937 Program 14 57344 Program 14 0 Program 14 0 Program 14 18599 Program 14 -75822 Program 14 -75451 Program 14 0 Program 14 3734 Program 15 -113175 Program 15 0 Program 15 0 Program 15 0 Program 15 -6973 Program 15 -106202 Program 15 0 Program 15 0 Program 15 15457 Program 15 -4827 Program 15 0 Program 15 1 Program 15 31 Program 15 5489 Program 15 12633 Program 15 16384 Program 15 7920 Program 15 16772 Program 15 0 Program 15 16306 Program 15 -70749 Program 15 0 Program 15 122880 Program 15 13344 Program 15 -52266 Program 15 -8774 Program 15 -75822 Program 15 -75451 Program 15 5868 Program 15 2134 Program 16 -55520 Program 16 0 Program 16 3555 Program 16 10974 Program 16 -6973 Program 16 -51783 Program 16 0 Program 16 0 Program 16 15457 Program 16 -4827 Program 16 1 Program 16 2 Program 16 46 Program 16 7388 Program 16 12025 Program 16 16384 Program 16 17002 Program 16 0 Program 16 10820 Program 16 12211 Program 16 -17422 Program 16 6746 Program 16 46706 Program 16 -12603 Program 16 -70058 Program 16 32636 Program 16 -52815 Program 16 -50008 Program 16 0 Program 16 2439 Program 17 -55520 Program 17 -11745 Program 17 4637 Program 17 9970 Program 17 -6973 Program 17 -51783 Program 17 -11211 Program 17 0 Program 17 15457 Program 17 -4827 Program 17 1 Program 17 2 Program 17 38 Program 17 7388 Program 17 12025 Program 17 16384 Program 17 17002 Program 17 0 Program 17 10201 Program 17 14993 Program 17 -41145 Program 17 7117 Program 17 60050 Program 17 -12603 Program 17 -70058 Program 17 32636 Program 17 -84399 Program 17 -79486 Program 17 0 Program 17 152 Program 18 -55520 Program 18 -11745 Program 18 4637 Program 18 8269 Program 18 -6973 Program 18 -51783 Program 18 -11211 Program 18 0 Program 18 15457 Program 18 -4827 Program 18 1 Program 18 3 Program 18 38 Program 18 7388 Program 18 12025 Program 18 16384 Program 18 17002 Program 18 0 Program 18 0 Program 18 20866 Program 18 -66351 Program 18 10305 Program 18 66722 Program 18 -12603 Program 18 -70058 Program 18 32636 Program 18 -84399 Program 18 -79486 Program 18 0 Program 18 305 Program 19 -24557 Program 19 -20820 Program 19 0 Program 19 4792 Program 19 -6973 Program 19 -45911 Program 19 -17083 Program 19 0 Program 19 15457 Program 19 -4827 Program 19 1 Program 19 3 Program 19 38 Program 19 7388 Program 19 12025 Program 19 16384 Program 19 17002 Program 19 0 Program 19 0 Program 19 20866 Program 19 -81920 Program 19 15643 Program 19 89704 Program 19 -74877 Program 19 -70058 Program 19 32636 Program 19 -84399 Program 19 -79486 Program 19 0 Program 19 305 Program 20 -24557 Program 20 -8008 Program 20 0 Program 20 4792 Program 20 -6973 Program 20 -45911 Program 20 -4805 Program 20 0 Program 20 15457 Program 20 -4827 Program 20 0 Program 20 1 Program 20 38 Program 20 5966 Program 20 11221 Program 20 16384 Program 20 8810 Program 20 15920 Program 20 4482 Program 20 20866 Program 20 -41887 Program 20 14086 Program 20 37068 Program 20 -74877 Program 20 -70058 Program 20 -10178 Program 20 -84399 Program 20 -79486 Program 20 7544 Program 20 1067 PresetName "Preset 00" PresetName "Preset 01" PresetName "Preset 02" PresetName "Preset 03" PresetName "Preset 04" PresetName "Preset 05" PresetName "Preset 06" PresetName "Preset 07" PresetName "Preset 08" PresetName "Preset 09" PresetName "Preset 10" PresetName "Preset 11" PresetName "Preset 12" PresetName "Preset 13" PresetName "Preset 14" PresetName "Preset 15" PresetName "Preset 16" PresetName "Preset 17" PresetName "Preset 18" PresetName "Preset 19" PresetName "Preset 20" ams-2.0.1/tutorial/A_tutorial06_LFO_Pitch.ams0000664000076400007640000000452207770061731015705 00000000000000Module 1 1 621 176 0 0 Port 1 1 1 3 Port 2 0 1 6 FSlider 1 0 0 0 0 16384 1 FSlider 1 1 8192 0 1638 14745 1 FSlider 1 2 0 0 0 16384 1 FSlider 1 3 0 0 0 102940 1 FSlider 1 4 16384 0 0 163840 1 FSlider 1 5 0 0 0 163840 1 ISlider 1 0 2 1 ISlider 1 1 1 1 ISlider 1 2 1 1 ComboBox 1 0 0 1 Module 2 2 423 6 0 0 Port 0 0 2 4 Port 2 1 2 1 FSlider 2 0 0 0 0 163840 1 FSlider 2 1 0 0 0 163840 1 FSlider 2 2 16384 0 0 32768 1 FSlider 2 3 16384 0 0 32768 1 FSlider 2 4 16384 0 0 32768 1 Module 10 3 11 5 0 0 FSlider 3 0 0 0 -16384 16384 1 ISlider 3 0 24 1 ComboBox 3 0 0 1 Module 11 4 191 6 0 0 Port 0 0 4 3 Port 1 3 4 3 FSlider 4 0 0 0 0 16384 1 FSlider 4 1 819 0 0 16384 1 FSlider 4 2 327 0 0 16384 1 FSlider 4 3 1638 0 0 16384 1 FSlider 4 4 11468 0 0 16384 1 FSlider 4 5 819 0 0 16384 1 FSlider 4 6 16384 0 1638 163840 1 Module 7 5 619 60 0 0 Port 0 0 5 2 Port 1 0 5 2 FSlider 5 0 8192 0 0 16384 1 FSlider 5 1 8192 0 0 16384 1 FSlider 5 2 8192 0 0 16384 1 ComboBox 5 0 1 1 Module 8 6 423 237 2 0 Port 0 1 6 7 Port 1 4 6 8 FSlider 6 0 16384 0 0 32768 1 FSlider 6 1 1130 0 0 32768 1 FSlider 6 2 16384 0 0 32768 1 Module 3 7 35 206 0 0 FSlider 7 0 31220 1 -75451 75451 1 FSlider 7 1 0 0 0 102940 1 Module 3 8 236 326 0 0 Port 0 3 8 3 FSlider 8 0 -2601 1 -75451 75451 1 FSlider 8 1 54766 0 0 102940 1 Comment 0 0 38 24 558 376 #PARA# 0 0 0 A LFO (Low Frequency Oscillator) is useful whenever a subaudio oscillation is needed. The most basic application is the generation of a vibrato. #ARAP# #PARA# 0 0 1 In this patch we use two LFOs. LFO ID 8 generates octave jumps whereas LFO ID7 adds a vibrato. The LFO module of AlsaModularSynth has an amplitude of one Volt. "Volume 1" and "Gain" of the Mixer module are both 1. Since also the "Exp. FM Gain" of the VCO is 1, LFO ID 8 modulates the VCO indeed by 1 Volt which corresponds to one octave. #ARAP# #PARA# 0 0 2 The parameter "Volume 0" of the Mixer specifies the amount of vibrato. #ARAP# #PARA# 0 0 3 Note that both the interval of the vibrato and the octave jumps are independent of the pitch of the notes that you are playing. This is the benefit of using the logarithmic frequency unit of 1 Volt / Octave. You can try how this behaves when you connect the output of the Mixer with the Lin. FM input of the VCO instead of the Exp. FM input. Try different values for "Lin. FM Gain" and see how the intervals vary with the pitch. #ARAP# ams-2.0.1/tutorial/A_tutorial01_Introduction.ams0000664000076400007640000000667707770061731016627 00000000000000Module 7 1 1019 238 0 0 Port 0 0 1 16 Port 1 1 1 16 FSlider 1 0 8192 0 0 16384 1 FSlider 1 1 8192 0 0 16384 1 FSlider 1 2 8192 0 0 16384 1 ComboBox 1 0 1 1 Module 11 3 318 33 0 0 Port 0 1 3 7 Port 1 1 3 7 FSlider 3 0 0 0 0 16384 1 FSlider 3 1 -106718 1 -113176 0 1 FSlider 3 2 0 0 0 16384 1 FSlider 3 3 3887 0 0 16384 1 FSlider 3 4 9742 0 0 16384 1 FSlider 3 5 6298 0 0 16384 1 FSlider 3 6 12354 0 1638 163840 1 Module 2 4 612 130 0 0 Port 0 0 4 3 Port 2 0 4 10 FSlider 4 0 7042 0 0 163840 1 FSlider 4 1 0 0 0 163840 1 FSlider 4 2 8192 0 0 16384 1 FSlider 4 3 8192 0 0 16384 1 FSlider 4 4 8192 0 0 16384 1 Module 1 5 386 177 0 0 Port 1 0 5 7 FSlider 5 0 0 0 0 16384 1 FSlider 5 1 1638 0 0 163840 1 FSlider 5 2 0 0 0 163840 1 FSlider 5 3 8192 0 1638 14745 1 FSlider 5 4 0 0 0 16384 1 FSlider 5 5 0 0 0 102940 1 ISlider 5 0 3 1 ISlider 5 1 1 1 ISlider 5 2 1 1 ComboBox 5 0 0 1 Module 16 7 184 104 0 0 Port 0 1 7 12 Port 1 1 7 21 ComboBox 7 0 10 1 Module 9 10 498 228 0 0 Port 0 2 10 5 Port 1 0 10 13 Port 2 0 10 18 FSlider 10 0 17554 0 0 163840 1 FSlider 10 1 111687 0 0 163840 1 FSlider 10 2 48709 0 0 163840 1 FSlider 10 3 0 0 0 163840 1 FSlider 10 4 13107 0 163 16384 1 FSlider 10 5 0 0 0 16384 1 ComboBox 10 0 6 1 Module 14 12 14 148 0 0 FSlider 12 0 27228 0 0 163840 1 FSlider 12 1 6572 0 0 16384 1 Module 15 13 278 272 0 0 Port 0 0 13 7 FSlider 13 0 8192 0 0 163840 1 FSlider 13 1 8192 0 0 163840 1 Module 6 15 715 206 0 cmt Canyon Delay Port 0 0 15 24 Port 1 0 15 25 FSlider 15 0 9273 0 163 16220 1 FSlider 15 1 12347 0 -16384 16384 1 FSlider 15 2 6788 0 163 16220 1 FSlider 15 3 13661 0 -16384 16384 1 FSlider 15 4 81920000 0 16384 81920000 1 Module 6 16 868 232 0 cmt Freeverb (Version 3) Port 0 0 16 15 Port 1 1 16 15 FSlider 16 0 8215 0 0 16384 1 FSlider 16 1 -75451 1 -113176 0 1 FSlider 16 2 -9404 1 -113176 0 1 FSlider 16 3 0 1 -113176 0 1 FSlider 16 4 16384 0 0 16384 1 CheckBox 16 0 0 1 Module 15 18 381 411 0 0 Port 0 2 18 19 FSlider 18 0 98116 0 0 163840 1 FSlider 18 1 70418 0 0 163840 1 Module 14 19 240 422 0 0 FSlider 19 0 133325 0 0 163840 1 FSlider 19 1 16384 0 0 16384 1 Module 16 21 71 302 0 0 Port 0 2 21 12 ComboBox 21 0 0 1 Module 6 23 754 26 0 bode_shifter_cv_1432 Bode frequency shifter (CV) Port 0 0 23 4 FSlider 23 0 14419592 0 0 81920000 1 FSlider 23 1 -16384 0 -16384 16384 1 FSlider 23 2 0 0 0 16384 1 Module 8 24 615 368 2 0 Port 0 0 24 4 Port 1 0 24 23 FSlider 24 0 16384 0 0 32768 1 FSlider 24 1 16384 0 0 32768 1 FSlider 24 2 4932 0 0 32768 1 Module 8 25 747 367 2 0 Port 0 0 25 4 Port 1 1 25 23 FSlider 25 0 16384 0 0 32768 1 FSlider 25 1 16384 0 0 32768 1 FSlider 25 2 4932 0 0 32768 1 Comment 0 0 35 19 666 337 #PARA# 0 0 0 Welcome to the AlsaModularSynth tutorial. The following tutorial patches will make you familiar with the fascinating world of modular synthesis. AlsaModularSynth digitally emulates an analogue modular synthesizer. Therefore its basic components work quite the same way as the respective true analogue components. Knowledge with AlsaModularSynth is therefore useful when dealing with true analogue synthesizers and vice versa. Let's have a look at the basic modules of a modular synthesizer. #ARAP# #PARA# 0 0 1 #ARAP# #PARA# 0 0 2 The background random music is generated in realtime. It's based on a patch by Bill Allen. #ARAP# #PARA# 0 0 3 #ARAP# #PARA# 0 0 4 The Comment window is moved with the left mouse button pressed and resized with the middle mouse button dragged in the lower right corner of the window. #ARAP# #PARA# 0 0 5 #ARAP# ams-2.0.1/tutorial/A_tutorial11_Effects_Canyon.ams0000664000076400007640000000470407770061731017022 00000000000000Module 1 1 146 7 0 0 Port 1 1 1 2 FSlider 1 0 0 0 0 16384 1 FSlider 1 1 8192 0 1638 14745 1 FSlider 1 2 0 0 0 16384 1 FSlider 1 3 0 0 0 102940 1 FSlider 1 4 0 0 0 163840 1 FSlider 1 5 0 0 0 163840 1 ISlider 1 0 1 1 ISlider 1 1 1 1 ISlider 1 2 1 1 ComboBox 1 0 0 1 Module 10 2 5 6 0 0 FSlider 2 0 0 0 -16384 16384 1 ISlider 2 0 24 1 ComboBox 2 0 0 1 Module 7 4 636 287 0 0 Port 0 0 4 14 Port 1 1 4 14 FSlider 4 0 8192 0 0 16384 1 FSlider 4 1 8192 0 0 16384 1 FSlider 4 2 8192 0 0 16384 1 ComboBox 4 0 1 1 Module 2 8 290 143 0 0 Port 0 0 8 9 Port 2 3 8 1 FSlider 8 0 0 0 0 163840 1 FSlider 8 1 0 0 0 163840 1 FSlider 8 2 16384 0 0 32768 1 FSlider 8 3 16384 0 0 32768 1 FSlider 8 4 16384 0 0 32768 1 Module 11 9 145 255 0 0 Port 0 0 9 2 FSlider 9 0 0 0 0 16384 1 FSlider 9 1 324 0 0 16384 1 FSlider 9 2 327 0 0 16384 1 FSlider 9 3 3285 0 0 16384 1 FSlider 9 4 8192 0 0 16384 1 FSlider 9 5 7989 0 0 16384 1 FSlider 9 6 16384 0 1638 163840 1 Module 6 11 418 143 0 cs_chorus Chorus2 Port 0 0 11 8 FSlider 11 0 39951 0 0 491520 1 FSlider 11 1 24630 1 -95176 37725 1 FSlider 11 2 5246 0 0 163840 1 FSlider 11 3 -24078 1 -75451 55725 1 FSlider 11 4 13680 0 0 49152 1 Module 8 12 417 266 2 0 Port 0 0 12 8 Port 1 0 12 11 FSlider 12 0 16384 0 0 32768 1 FSlider 12 1 6537 0 0 32768 1 FSlider 12 2 16384 0 0 32768 1 Module 6 14 454 398 0 g2reverb Stereo reverb Port 0 0 14 16 Port 1 1 14 16 FSlider 14 0 1480210 0 163840 2457600 1 FSlider 14 1 46287 0 16384 327680 1 FSlider 14 2 11663 0 0 16384 1 FSlider 14 3 4439 0 0 16384 1 FSlider 14 4 0 0 -1310720 0 1 FSlider 14 5 -100080 0 -1310720 0 1 FSlider 14 6 -248585 0 -1310720 0 1 Module 6 16 199 398 0 cmt Canyon Delay Port 0 0 16 12 Port 1 0 16 12 FSlider 16 0 7282 0 163 16220 1 FSlider 16 1 13801 0 -16384 16384 1 FSlider 16 2 11830 0 163 16220 1 FSlider 16 3 13801 0 -16384 16384 1 FSlider 16 4 81920000 0 16384 81920000 1 Comment 0 0 277 10 460 287 #PARA# 0 0 0 The LADSPA Canyon Delay is a ping pong delay where several echos alternate between the left and right channels. The "Low-Pass Cutoff" should be at its maximum value if you use this effect in a setup like the current patch. However if you mix the effect with the "dry" sound it might be an interesting effect to have a lowpass filtered Canyon Delay. You can also mix several Canyon Delays with different values for "Low-Pass Cutoff" and maybe also the other parameters. The difference of "Left to Right Time" and "Right to Left Time" generates a rhythm. Try to play with these parameters. #ARAP# ams-2.0.1/tutorial/A_tutorial05_ENV_and_VCF_5.ams0000664000076400007640000000312307770061731016325 00000000000000Module 1 1 143 32 0 0 Port 1 1 1 2 FSlider 1 0 0 0 0 16384 1 FSlider 1 1 8192 0 1638 14745 1 FSlider 1 2 0 0 0 16384 1 FSlider 1 3 0 0 0 102940 1 FSlider 1 4 0 0 0 163840 1 FSlider 1 5 0 0 0 163840 1 ISlider 1 0 1 1 ISlider 1 1 1 1 ISlider 1 2 1 1 ComboBox 1 0 0 1 Module 10 2 8 100 0 0 FSlider 2 0 0 0 -16384 16384 1 ISlider 2 0 24 1 ComboBox 2 0 0 1 Module 24 3 604 22 0 0 Port 0 2 3 1 Port 1 0 3 11 FSlider 3 0 163840 0 163840 16384000 1 FSlider 3 1 16384 0 1638 163840 1 FSlider 3 2 0 0 -16384 16384 1 ComboBox 3 0 1 1 ComboBox 3 1 0 1 Module 7 4 633 355 0 0 Port 0 0 4 8 Port 1 0 4 8 FSlider 4 0 8192 0 0 16384 1 FSlider 4 1 8192 0 0 16384 1 FSlider 4 2 8192 0 0 16384 1 ComboBox 4 0 1 1 Module 2 8 512 300 0 0 Port 0 0 8 9 Port 2 0 8 11 FSlider 8 0 0 0 0 163840 1 FSlider 8 1 0 0 0 163840 1 FSlider 8 2 16384 0 0 32768 1 FSlider 8 3 16384 0 0 32768 1 FSlider 8 4 16384 0 0 32768 1 Module 11 9 116 275 0 0 Port 0 0 9 2 Port 1 3 9 2 FSlider 9 0 0 0 0 16384 1 FSlider 9 1 324 0 0 16384 1 FSlider 9 2 327 0 0 16384 1 FSlider 9 3 3285 0 0 16384 1 FSlider 9 4 8192 0 0 16384 1 FSlider 9 5 7989 0 0 16384 1 FSlider 9 6 16384 0 1638 163840 1 Module 6 11 279 217 0 mvclpf24 Mvclpf-3 Port 0 2 11 1 Port 1 1 11 2 Port 2 1 11 9 Port 3 0 11 9 FSlider 11 0 0 0 -983040 163840 1 FSlider 11 1 12913 0 -81920 81920 1 FSlider 11 2 72235 0 0 163840 1 FSlider 11 3 0 0 0 16384 1 FSlider 11 4 16384 0 0 16384 1 FSlider 11 5 129539 0 -245760 245760 1 Comment 0 0 272 6 315 177 #PARA# 0 0 0 Here the envelope is also applied to the filter resonance. The parameter "Resonance gain" determines the amount of resonance modulation. #ARAP# ams-2.0.1/tutorial/A_tutorial05_ENV_and_VCF_2.ams0000664000076400007640000000370707770061731016332 00000000000000Module 1 1 143 32 0 0 Port 1 1 1 2 FSlider 1 0 0 0 0 16384 1 FSlider 1 1 8192 0 1638 14745 1 FSlider 1 2 0 0 0 16384 1 FSlider 1 3 0 0 0 102940 1 FSlider 1 4 0 0 0 163840 1 FSlider 1 5 0 0 0 163840 1 ISlider 1 0 1 1 ISlider 1 1 1 1 ISlider 1 2 1 1 ComboBox 1 0 0 1 Module 10 2 8 100 0 0 FSlider 2 0 0 0 -16384 16384 1 ISlider 2 0 24 1 ComboBox 2 0 0 1 Module 24 3 604 22 0 0 Port 0 2 3 1 Port 1 0 3 11 FSlider 3 0 163840 0 163840 16384000 1 FSlider 3 1 16384 0 1638 163840 1 FSlider 3 2 0 0 -16384 16384 1 ComboBox 3 0 1 1 ComboBox 3 1 0 1 Module 7 4 633 355 0 0 Port 0 0 4 8 Port 1 0 4 8 FSlider 4 0 8192 0 0 16384 1 FSlider 4 1 8192 0 0 16384 1 FSlider 4 2 8192 0 0 16384 1 ComboBox 4 0 1 1 Module 2 8 512 300 0 0 Port 0 0 8 9 Port 2 0 8 11 FSlider 8 0 0 0 0 163840 1 FSlider 8 1 0 0 0 163840 1 FSlider 8 2 16384 0 0 32768 1 FSlider 8 3 16384 0 0 32768 1 FSlider 8 4 16384 0 0 32768 1 Module 11 9 132 312 0 0 Port 0 0 9 2 FSlider 9 0 0 0 0 16384 1 FSlider 9 1 324 0 0 16384 1 FSlider 9 2 327 0 0 16384 1 FSlider 9 3 3285 0 0 16384 1 FSlider 9 4 8192 0 0 16384 1 FSlider 9 5 7989 0 0 16384 1 FSlider 9 6 16384 0 1638 163840 1 Module 6 11 265 220 0 mvclpf24 Mvclpf-3 Port 0 2 11 1 Port 1 1 11 2 Port 2 0 11 9 FSlider 11 0 0 0 -983040 163840 1 FSlider 11 1 -46811 0 -81920 81920 1 FSlider 11 2 55286 0 0 163840 1 FSlider 11 3 0 0 0 16384 1 FSlider 11 4 0 0 0 16384 1 FSlider 11 5 50847 0 -245760 245760 1 Comment 0 0 41 5 545 243 #PARA# 0 0 0 The sound of real instruments is usually time dependent. #ARAP# #PARA# 0 0 1 Especially at the beginning and end of a note there are strong variations of the harmonic content. It is therefore natural to apply an envelope also to the filter frequency. In this patch we have only one envelope which is used both for the amplitude and the filter modulation. The parameter "Exp. FM gain" of the filter determines the amount of modulation by the envelope. #ARAP# #PARA# 0 0 2 Often one uses two separate envelopes for VCA and filter. Try it ! #ARAP# ams-2.0.1/tutorial/A_tutorial07_LFO_PW.ams0000664000076400007640000000301507770061731015161 00000000000000Module 1 1 266 149 0 0 Port 1 1 1 3 Port 4 1 1 8 FSlider 1 0 0 0 0 16384 1 FSlider 1 1 8192 0 1638 14745 1 FSlider 1 2 6895 0 0 16384 1 FSlider 1 3 0 0 0 102940 1 FSlider 1 4 16384 0 0 163840 1 FSlider 1 5 0 0 0 163840 1 ISlider 1 0 2 1 ISlider 1 1 1 1 ISlider 1 2 1 1 ComboBox 1 0 0 1 Module 2 2 423 6 0 0 Port 0 0 2 4 Port 2 0 2 10 FSlider 2 0 0 0 0 163840 1 FSlider 2 1 0 0 0 163840 1 FSlider 2 2 16384 0 0 32768 1 FSlider 2 3 16384 0 0 32768 1 FSlider 2 4 16384 0 0 32768 1 Module 10 3 11 5 0 0 FSlider 3 0 0 0 -16384 16384 1 ISlider 3 0 24 1 ComboBox 3 0 0 1 Module 11 4 191 6 0 0 Port 0 0 4 3 Port 1 3 4 3 FSlider 4 0 0 0 0 16384 1 FSlider 4 1 819 0 0 16384 1 FSlider 4 2 327 0 0 16384 1 FSlider 4 3 1638 0 0 16384 1 FSlider 4 4 11468 0 0 16384 1 FSlider 4 5 819 0 0 16384 1 FSlider 4 6 16384 0 1638 163840 1 Module 7 5 619 60 0 0 Port 0 0 5 2 Port 1 0 5 2 FSlider 5 0 8192 0 0 16384 1 FSlider 5 1 8192 0 0 16384 1 FSlider 5 2 8192 0 0 16384 1 ComboBox 5 0 1 1 Module 3 8 69 176 0 0 FSlider 8 0 19699 1 -75451 75451 1 FSlider 8 1 54766 0 0 102940 1 Module 6 10 432 248 0 mvclpf24 Mvclpf-3 Port 0 3 10 1 Port 1 1 10 3 FSlider 10 0 0 0 -983040 163840 1 FSlider 10 1 7264 0 -81920 81920 1 FSlider 10 2 0 0 0 163840 1 FSlider 10 3 1533 0 0 16384 1 FSlider 10 4 0 0 0 16384 1 FSlider 10 5 0 0 -245760 245760 1 Comment 0 0 110 100 414 184 #PARA# 0 0 0 Here the LFO modulates the pulse width of the rectangle oscillation generated by the VCO. It is recommended to play with the LFO frequency and the "PW" and "PW Gain" parameters of the VCO. #ARAP# ams-2.0.1/COPYING0000664000076400007640000003543311051241076010265 00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave, Cambridge, MA 02139, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS ams-2.0.1/pixmaps/0000777000076400007640000000000011315252054010766 500000000000000ams-2.0.1/pixmaps/ladspa_logo.xpm0000664000076400007640000001500111051107141013704 00000000000000/* XPM */ static const char * ladspa_logo_xpm[] = { "50 30 217 2", " c None", ". c #004461", "+ c #00425A", "@ c #00455E", "# c #004263", "$ c #003B57", "% c #004261", "& c #004C67", "* c #004D64", "= c #00435E", "- c #003D60", "; c #004265", "> c #004563", ", c #004061", "' c #004066", ") c #004364", "! c #004665", "~ c #004660", "{ c #00465C", "] c #004860", "^ c #004A63", "/ c #00415B", "( c #00425E", "_ c #003D5C", ": c #003F5B", "< c #004866", "[ c #004969", "} c #004565", "| c #004764", "1 c #004664", "2 c #004765", "3 c #004562", "4 c #00445E", "5 c #004A67", "6 c #004B6E", "7 c #004252", "8 c #004258", "9 c #004161", "0 c #004162", "a c #00415D", "b c #003F5A", "c c #003F59", "d c #003F58", "e c #003D56", "f c #003C3E", "g c #00434C", "h c #003B45", "i c #004840", "j c #003E3C", "k c #003844", "l c #003B4C", "m c #00434D", "n c #00373B", "o c #004049", "p c #003E46", "q c #004348", "r c #004648", "s c #004041", "t c #00454B", "u c #003A47", "v c #004A4F", "w c #003B46", "x c #00444C", "y c #00464C", "z c #004453", "A c #003D50", "B c #004A47", "C c #00404B", "D c #00435F", "E c #003E4C", "F c #004844", "G c #004748", "H c #00424E", "I c #00383C", "J c #00484A", "K c #00484F", "L c #003C4E", "M c #00394C", "N c #004749", "O c #004A48", "P c #00414E", "Q c #003F51", "R c #003F50", "S c #00444D", "T c #004F55", "U c #004B58", "V c #003D4C", "W c #004B49", "X c #004B59", "Y c #003A3F", "Z c #005D65", "` c #00454F", " . c #005051", ".. c #004A4E", "+. c #004A50", "@. c #003A50", "#. c #004254", "$. c #004D66", "%. c #003644", "&. c #004B5A", "*. c #004153", "=. c #004553", "-. c #00464A", ";. c #00424C", ">. c #004951", ",. c #004953", "'. c #004151", "). c #003B43", "!. c #003F57", "~. c #003B4D", "{. c #00424B", "]. c #004A4A", "^. c #003750", "/. c #003741", "(. c #00494A", "_. c #004259", ":. c #004752", "<. c #003A43", "[. c #003E54", "}. c #00384C", "|. c #003243", "1. c #003D51", "2. c #004E54", "3. c #00404D", "4. c #003446", "5. c #003A44", "6. c #003C42", "7. c #00485E", "8. c #004157", "9. c #004255", "0. c #003F49", "a. c #004F59", "b. c #003D44", "c. c #004F53", "d. c #004147", "e. c #004051", "f. c #00464B", "g. c #003A57", "h. c #004D4D", "i. c #00435B", "j. c #003A4E", "k. c #004C54", "l. c #004855", "m. c #004751", "n. c #003947", "o. c #00465A", "p. c #003F4F", "q. c #003E4A", "r. c #003C51", "s. c #004F4F", "t. c #004654", "u. c #004A52", "v. c #004A55", "w. c #004A53", "x. c #00444A", "y. c #00465B", "z. c #004548", "A. c #003E41", "B. c #003E4D", "C. c #00434B", "D. c #004055", "E. c #004655", "F. c #004C57", "G. c #003B48", "H. c #004B5C", "I. c #003F4C", "J. c #003E3E", "K. c #003643", "L. c #004346", "M. c #004443", "N. c #00454A", "O. c #00434F", "P. c #003B42", "Q. c #00354A", "R. c #003044", "S. c #004448", "T. c #003D46", "U. c #003946", "V. c #003C46", "W. c #00474E", "X. c #004447", "Y. c #003744", "Z. c #00495C", "`. c #004242", " + c #004048", ".+ c #004251", "++ c #00414C", "@+ c #003A5D", "#+ c #00445B", "$+ c #004A5D", "%+ c #00455F", "&+ c #00475C", "*+ c #00475B", "=+ c #003B5D", "-+ c #00415F", ";+ c #003E5B", ">+ c #004659", ",+ c #00425F", "'+ c #004A62", ")+ c #004B67", "!+ c #004966", "~+ c #003C59", "{+ c #003D58", "]+ c #004859", "^+ c #00445A", "/+ c #00455D", "(+ c #00465D", "_+ c #004463", ":+ c #004358", "<+ c #004155", "[+ c #003B56", "}+ c #004464", "|+ c #003E5C", "1+ c #003758", "2+ c #003958", "3+ c #003C5F", "4+ c #003E5D", " ", " . + @ # ", " $ % & * = - ; ", " > , ' ) ! ~ { ] ^ ~ / ( ", " _ : < [ } ! | 1 > | 2 3 4 = 5 6 ", " 7 7 8 9 0 9 9 9 9 9 9 9 a b b c d e ", " ", " ", " ", " ", " ", " f g h i j k l m n o p q r s t u v w ", " x y z A B C D E F G H I J K L M N O P Q R ", " S y l T U V W X Q Y Z ` ... l +.V ", " S t @.#.$.%. W &. *.=. h -.;. >. ,.'. ).!. ~. ", " {.]. ^. /. (._. '.:. <.[.}.|.1. 2.x 3.4.5. 6.7. 8.9. ", " 0.y a.A b.c.d.e. f.g. =.h. i.j. k.l. g m.n.o.p. ", " q.r. s.t.{.u.v.w. x.y. R z. A. B. C. D.E.F.G.H.l ", " I.@.d.J.K. L. M. N.O.P.Q.R.S. T.U.l P V.W. X. Y.Z. `. + ", " .+++ ", " ", " ", " ", " ", " @+#+$+%+, D &+y.y.*+&+&+&+~ > , =+- -+;+ ", " >+!.,+| '+'+'+'+'+'+'+)+!+( ~+{+ ", " ]+^+%+/+y.(+~ 3 _+%+:+<+ ", " , [+d 3 }+|+1+2+ ", " 3+4+{+^. ", " "}; ams-2.0.1/pixmaps/Makefile.in0000664000076400007640000002367411315245614012771 00000000000000# Makefile.in generated by automake 1.10.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Makefile.am for ams VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = pixmaps DIST_COMMON = $(dist_pixmapsdata_DATA) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/src/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(pixmapsdatadir)" dist_pixmapsdataDATA_INSTALL = $(INSTALL_DATA) DATA = $(dist_pixmapsdata_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMS_CXXFLAGS = @AMS_CXXFLAGS@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LADSPA_PATH = @LADSPA_PATH@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LN_S = @LN_S@ LRELEASE = @LRELEASE@ LTLIBOBJS = @LTLIBOBJS@ LUPDATE = @LUPDATE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MOC = @MOC@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ QT_CFLAGS = @QT_CFLAGS@ QT_CXXFLAGS = @QT_CXXFLAGS@ QT_LIBS = @QT_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ pixmapsdatadir = @datadir@/pixmaps dist_pixmapsdata_DATA = \ ams_32.xpm EXTRA_DIST = \ ladspa_logo.xpm all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu pixmaps/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu pixmaps/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh install-dist_pixmapsdataDATA: $(dist_pixmapsdata_DATA) @$(NORMAL_INSTALL) test -z "$(pixmapsdatadir)" || $(MKDIR_P) "$(DESTDIR)$(pixmapsdatadir)" @list='$(dist_pixmapsdata_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(dist_pixmapsdataDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pixmapsdatadir)/$$f'"; \ $(dist_pixmapsdataDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pixmapsdatadir)/$$f"; \ done uninstall-dist_pixmapsdataDATA: @$(NORMAL_UNINSTALL) @list='$(dist_pixmapsdata_DATA)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(pixmapsdatadir)/$$f'"; \ rm -f "$(DESTDIR)$(pixmapsdatadir)/$$f"; \ done tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(pixmapsdatadir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dist_pixmapsdataDATA install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-dist_pixmapsdataDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am \ install-dist_pixmapsdataDATA install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am \ uninstall-dist_pixmapsdataDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ams-2.0.1/pixmaps/Makefile.am0000664000076400007640000000020111051107140012721 00000000000000# Makefile.am for ams pixmapsdatadir = @datadir@/pixmaps dist_pixmapsdata_DATA = \ ams_32.xpm EXTRA_DIST = \ ladspa_logo.xpm ams-2.0.1/pixmaps/ams_32.xpm0000664000076400007640000000267111051076356012532 00000000000000/* XPM */ static const char* ams_32_xpm[] = { "32 32 17 1", " c None", ". c #4D4640", "+ c #5F5750", "@ c #805B30", "# c #825D38", "$ c #886643", "% c #7B746E", "& c #A27724", "* c #94795C", "= c #8D7C69", "- c #9C8562", "; c #9E8A76", "> c #BA932D", ", c #9F9589", "' c #9C9795", ") c #B9A35D", "! c #DCAE15", "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", "@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$@@", "@@@@@@@@@@@@@@@@@@@@@,''''''''*@", "@@********@@@@@@@@@@@,.......%*@", "@@,%%%%%%,@@@@@@@@#&&).......%*@", "@@,+....+,@@@@@@#==!!!.......%*@", "@@,+....+,@@@@$==*@@@,.......%*@", "@@,+....+,@@$==*#@@@@,.......%*@", "@@,+....+!!>=$@@@@@@@,.......%*@", "@@,+....+)&&@@@@@@@@@,.......%*@", "@@,+....+,@@@@@@@@#&&).......%*@", "@@,+....+,@@@@@@$==>!!.......%*@", "@@,+....+,@@#$===*#@@,.......%*@", "@@,+....+>!>==*$@@@@@,+++++++,*@", "@@,+....+>!>#@@@@@@@@*;;;;;;;;$@", "@@,+....+,@@@@@@@@@@@@@@@@@@@@@@", "@@,%%%%%%,@@@@@@@@@@@@@@@@@@@@@@", "@@*;;;;;;*@@@@@@@@@@@@@@@@@@@@@@", "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", "@@###############@@@@@@@@*****@@", "@@;,,,,,,,,,,,,,,$@@@@@@$,%%%'@@", "@@,+............%*@@@@@@@;...'@@", "@@,+............%*@@@@*>!>...'@@", "@@,+............%*@@$==&>)...'@@", "@@,+............->>-,=#@$,...'@@", "@@,+............)!!-$@@@$,...'@@", "@@,+............%-@@@@@@$,...'@@", "@@,+............%*@@@@@@$,%%%'@@", "@@,''''''''''''''*@@@@@@#*;;;;@@", "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"}; ams-2.0.1/config.guess0000755000076400007640000012751611146403535011561 00000000000000#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 # Free Software Foundation, Inc. timestamp='2008-01-08' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner . # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # The plan is that this can be called by configure scripts if you # don't specify an explicit build system type. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep __ELF__ >/dev/null then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm:riscos:*:*|arm:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[456]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep __LP64__ >/dev/null then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) case ${UNAME_MACHINE} in pc98) echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:[3456]*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; EM64T | authenticamd) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) echo ia64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then echo ${UNAME_MACHINE}-unknown-linux-gnu else echo ${UNAME_MACHINE}-unknown-linux-gnueabi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo crisv32-axis-linux-gnu exit ;; frv:Linux:*:*) echo frv-unknown-linux-gnu exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips #undef mipsel #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mipsel #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips64 #undef mips64el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mips64el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips64 #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent # problems with other programs or directories called `ld' in the path. # Set LC_ALL=C to ensure ld outputs messages in English. ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ | sed -ne '/supported targets:/!d s/[ ][ ]*/ /g s/.*supported targets: *// s/ .*// p'` case "$ld_supported_targets" in elf32-i386) TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" exit ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" exit ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-pc-linux-gnuoldld" exit ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include #ifdef __ELF__ # ifdef __GLIBC__ # if __GLIBC__ >= 2 LIBC=gnu # else LIBC=gnulibc1 # endif # else LIBC=gnulibc1 # endif #else #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) LIBC=gnu #else LIBC=gnuaout #endif #endif #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^LIBC/{ s: ::g p }'`" test x"${LIBC}" != x && { echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit } test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i386. echo i386-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: ams-2.0.1/missing0000755000076400007640000002557711146403535010644 00000000000000#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2006-05-10.23 # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006 # Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' sed_minuso='s/.* -o \([^ ]*\).*/\1/p' # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case $1 in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' autom4te touch the output file, or create a stub one automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). case $1 in lex|yacc) # Not GNU programs, they don't have --version. ;; tar) if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then exit 1 fi ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case $1 in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case $f in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison|yacc) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.h fi ;; esac fi if test ! -f y.tab.h; then echo >y.tab.h fi if test ! -f y.tab.c; then echo 'main() { return 0; }' >y.tab.c fi ;; lex|flex) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if test ! -f lex.yy.c; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit 1 fi ;; makeinfo) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n ' /^@setfilename/{ s/.* \([^ ]*\) *$/\1/ p q }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; tar) shift # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case $firstarg in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case $firstarg in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: ams-2.0.1/install-sh0000755000076400007640000003246411146403535011242 00000000000000#!/bin/sh # install - install a program, script, or datafile scriptversion=2006-12-25.00 # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. nl=' ' IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} if test -z "$doit"; then doit_exec=exec else doit_exec=$doit fi # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_glob='?' initialize_posix_glob=' test "$posix_glob" != "?" || { if (set -f) 2>/dev/null; then posix_glob= else posix_glob=: fi } ' posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false no_target_directory= usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *' '* | *' '* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) dst_arg=$2 shift;; -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then trap '(exit $?); exit' 1 2 13 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names starting with `-'. case $src in -*) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # Protect names starting with `-'. case $dst in -*) dst=./$dst;; esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else # Prefer dirname, but fall back on a substitute if dirname fails. dstdir=` (dirname "$dst") 2>/dev/null || expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$dst" : 'X\(//\)[^/]' \| \ X"$dst" : 'X\(//\)$' \| \ X"$dst" : 'X\(/\)' \| . 2>/dev/null || echo X"$dst" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q' ` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 if (umask $mkdir_umask && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writeable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; -*) prefix='./';; *) prefix='';; esac eval "$initialize_posix_glob" oIFS=$IFS IFS=/ $posix_glob set -f set fnord $dstdir shift $posix_glob set +f IFS=$oIFS prefixes= for d do test -z "$d" && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && eval "$initialize_posix_glob" && $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && $posix_glob set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: ams-2.0.1/src/0000777000076400007640000000000011315252054010074 500000000000000ams-2.0.1/src/midisliderbase.h0000664000076400007640000000110511051103102013122 00000000000000#ifndef MIDISLIDERBASE_H #define MIDISLIDERBASE_H #include #include #include "synthdata.h" #include "midiguicomponent.h" /** *@author Karsten Wiese */ #define SLIDER_SCALE 16384.0 class MidiSliderBase: public MidiGUIcomponent { Q_OBJECT QLabel valueLabel; QLabel minLabel, maxLabel; public: QSlider slider; MidiSliderBase(class MidiControllableBase &mcAble, Qt::Orientation orientation); virtual void updateMin(); virtual void updateMax(); virtual void mcAbleChanged(); private slots: void valueChanged(int value); }; #endif ams-2.0.1/src/spectrumscreen.h0000664000076400007640000000657311051103234013230 00000000000000#ifdef OUTDATED_CODE #ifndef KSPECTRUMSCREEN_H #define KSPECTRUMSCREEN_H #include #include #include #include #include #include #include #include #include #include //Added by qt3to4: #include #include #include #include "synthdata.h" #include #define MINIMUM_WIDTH 100 #define MINIMUM_HEIGHT 50 #define SPECTRUM_WIDTH 1280 #define SPECTRUM_HEIGHT 800 #define SPECTRUM_BUFSIZE 128000 #define MIN_SPECTRUM_DB -60 #define MAX_SPECTRUM_DB 10 enum spectrumModeType { SPECTRUM_MODE_NORMAL, SPECTRUM_MODE_SUM }; enum fftModeType { FFT_MODE_POW, FFT_MODE_ABS, FFT_MODE_LOG }; enum viewModeType { VIEW_MODE_FIF, VIEW_MODE_FIFT }; enum normModeType { NORM_MODE_EACH, NORM_MODE_GLOBAL, NORM_MODE_FIXED }; enum spectrumTriggerModeType { SPECTRUM_TRIGGERMODE_CONTINUOUS, SPECTRUM_TRIGGERMODE_SINGLE }; enum fftWindowType { WINDOW_HAMMING, WINDOW_BARTLETT, WINDOW_HANNING, WINDOW_WELCH }; class SpectrumScreen : public QWidget { Q_OBJECT signals: void f_minmaxChanged(); void freqChanged(); void runSpectrum(); private: SynthData *synthdata; spectrumModeType mode; fftModeType fftMode; viewModeType viewMode; spectrumTriggerModeType triggerMode; normModeType normMode; fftWindowType window; int ch1, ch2; double zoom, f_min, f_max, f; int fftFrames; fftw_real max1, max2, maxsum; fftw_real *spectrumbuf_ch1; fftw_real *spectrumbuf_ch2; fftw_real *spectrumbuf_sum; rfftw_plan plan; bool freqZoom, enableMouse; QPixmap *fftPixmap1, *fftPixmap2; QColor palette1[768], palette2[768]; public: int readofs, writeofs; float *spectrumdata; private: void initPalette(int index); protected: virtual void paintEvent(QPaintEvent *); virtual void resizeEvent (QResizeEvent* ); virtual void mousePressEvent (QMouseEvent* ); // virtual void mouseMoveEvent (QMouseEvent* ); public: SpectrumScreen(QWidget* parent=0, const char *name=0); ~SpectrumScreen(); virtual QSize sizeHint() const; virtual QSizePolicy sizePolicy() const; spectrumModeType setMode(spectrumModeType p_mode); fftModeType setFFTMode(fftModeType p_fftMode); viewModeType setViewMode(viewModeType p_viewMode); normModeType setNormMode(normModeType p_normMode); spectrumTriggerModeType setTriggerMode(spectrumTriggerModeType p_triggerMode); int setCh1(int p_ch1); int setCh2(int p_ch2); bool toggleFreqZoom(bool p_freqZoom); bool setEnableMouse(bool p_enableMouse); float set_f_min(float p_f_min); float set_f_max(float p_f_max); fftWindowType setWindow(fftWindowType p_window); double setZoom(double p_zoom); int setFFTFrames(int p_fftFrames); spectrumModeType getMode(); fftModeType getFFTMode(); viewModeType getViewMode(); normModeType getNormMode(); spectrumTriggerModeType getTriggerMode(); int getCh1(); int getCh2(); fftWindowType getWindow(); double get_f_min(); double get_f_max(); double get_f(); double getZoom(); int getFFTFrames(); public slots: void refreshSpectrum(); void singleShot(); }; #endif #endif ams-2.0.1/src/m_vca.cpp0000664000076400007640000000443111051111616011600 00000000000000#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "synthdata.h" #include "m_vca.h" #include "port.h" M_vca::M_vca(bool p_expMode, QWidget* parent) : Module(M_type_vca, 1, parent, p_expMode ? tr("Exp. VCA") : tr("Lin. VCA")) { setGeometry(MODULE_NEW_X, MODULE_NEW_Y, MODULE_VCA_WIDTH, MODULE_VCA_HEIGHT); gain1 = 0; gain2 = 0; in1 = 1.0; in2 = 1.0; out = 1.0; expMode = p_expMode; port_M_gain1 = new Port(tr("Gain 0"), PORT_IN, 0, this); port_M_gain2 = new Port(tr("Gain 1"), PORT_IN, 1, this); port_M_in1 = new Port(tr("In 0"), PORT_IN, 2, this); port_M_in2 = new Port(tr("In 1"), PORT_IN, 3, this); cv.out_off = 115; port_out = new Port(tr("Out"), PORT_OUT, 0, this); configDialog->addSlider(tr("Gain"), gain1, 0, 1); configDialog->addSlider(tr("Gain 1"), gain2, 0, 1); configDialog->addSlider(tr("In 0"), in1, 0, 2); configDialog->addSlider(tr("In 1"), in2, 0, 2); configDialog->addSlider(tr("Output level"), out, 0, 2); } void M_vca::generateCycle() { int l1; unsigned int l2; float v, g; float **gainData1, **gainData2, **inData1, **inData2; gainData1 = port_M_gain1->getinputdata (); gainData2 = port_M_gain2->getinputdata (); inData1 = port_M_in1->getinputdata (); inData2 = port_M_in2->getinputdata (); if (expMode) { for (l1 = 0; l1 < synthdata->poly; l1++) { for (l2 = 0; l2 < synthdata->cyclesize; l2++) { v = gain1 + gainData1[l1][l2] + gain2 * gainData2[l1][l2]; g = (v > 0) ? synthdata->exp_table ((v - 1.0) * 9.21) : 0; // This gives a range of 80 dB data[0][l1][l2] = g * out * (in1 * inData1[l1][l2] + in2 * inData2[l1][l2]); } } } else { for (l1 = 0; l1 < synthdata->poly; l1++) { for (l2 = 0; l2 < synthdata->cyclesize; l2++) { data[0][l1][l2] = (gain1 + gainData1[l1][l2] + gain2 * gainData2[l1][l2]) * out * (in1 * inData1[l1][l2] + in2 * inData2[l1][l2]); } } } } ams-2.0.1/src/m_advmcv.h0000664000076400007640000000160211051103044011745 00000000000000#ifndef M_ADVMCV_H #define M_ADVMCV_H #include "module.h" #define MODULE_ADVMCV_WIDTH 140 #define MODULE_ADVMCV_HEIGHT 240 #define MODULE_ADVMCV_CONTROLLER_PORTS 4 class M_advmcv : public Module { Q_OBJECT float pitchbend; Port *port_note_out, *port_gate_out, *port_velocity_out, *port_trig_out; Port *port_aftertouch_out, *port_pitchbend_out, *port_controller_out[MODULE_ADVMCV_CONTROLLER_PORTS]; public: int pitch, channel, controller_num[MODULE_ADVMCV_CONTROLLER_PORTS]; float freq[MAXPOLY], aftertouch_cv, pitchbend_cv; float controller_cv[MODULE_ADVMCV_CONTROLLER_PORTS]; public: M_advmcv(QWidget* parent=0); ~M_advmcv(); void aftertouchEvent(int value); void controllerEvent(int controlNum, int value); void pitchbendEvent(int value); void generateCycle(); }; #endif ams-2.0.1/src/midipushbutton.cpp0000664000076400007640000000141211051103426013565 00000000000000#include #include #include #include "midipushbutton.h" #include "midicontrollable.h" MidiPushButton::MidiPushButton(MidiControllableDoOnce &mcAble) : MidiGUIcomponent(mcAble) { componentType = GUIcomponentType_pushbutton; QHBoxLayout *buttonBox = new QHBoxLayout(this); buttonBox->setMargin(5); buttonBox->addStretch(0); pushButton = new QPushButton(mcAble.name); buttonBox->addWidget(pushButton); buttonBox->addStretch(0); QObject::connect(pushButton, SIGNAL(clicked()), this, SLOT(clicked())); } MidiGUIcomponent *MidiPushButton::createTwin() { return new MidiPushButton(dynamic_cast(mcAble)); } void MidiPushButton::clicked() { static_cast(mcAble).trigger(); } ams-2.0.1/src/midicontrollable.h0000644000076400007640000001350011204222150013472 00000000000000#ifndef MIDICONTROLLABLE_H #define MIDICONTROLLABLE_H #include #include "midisliderbase.h" #include "midicontroller.h" #include "module.h" #define SLIDER_SCALE 16384.0 /*forward declarations*/ class MidiControllerKey; class MCed; class MidiControllableBase { protected: static QString temp; public: Module &module; QString name; int midiControllableListIndex; QList midiControllerList; QList mcws; bool midiSign; MidiControllableBase(Module &module, const QString &name) : module(module) , name(name) , midiSign(true) { midiControllableListIndex = module.midiControllables.count(); module.midiControllables.append(this); } void disconnect(bool *updateActiveMidiControllers); virtual ~MidiControllableBase(); virtual void updateMGCs(MidiGUIcomponent *sender); virtual int getValue() { return *(int*)0; } virtual int getMin() { return *(int*)0; } virtual int getMax() { return *(int*)0; } virtual bool setMidiValueRT(int ) = 0; virtual int getMidiValue() = 0; virtual int sliderMin() { return 0;} virtual int sliderMax() { return 0;} virtual int sliderVal() { return 0;} virtual int sliderStep() { return 0;} virtual void setValRT(int ) {}; virtual void setVal(int , MidiGUIcomponent *) {}; virtual const QString &minString() { return *(QString*)NULL;} virtual const QString &maxString() { return *(QString*)NULL;} virtual const QString &valString() { return *(QString*)NULL;} void connectTo(MCed *mcw) { mcws.append(mcw); } void disconnect(MCed *mcw) { mcws.removeAll(mcw); } void connectToController(MidiControllerKey midiController); void disconnectController(MidiControllerKey midiController, bool *updateActiveMidiControllers = NULL); }; class MidiControllableDoOnce: public QObject, public MidiControllableBase { Q_OBJECT int lastVal; public: MidiControllableDoOnce(Module &module, const QString &name) : MidiControllableBase(module, name) , lastVal(64) {} virtual void updateMGCs(MidiGUIcomponent *sender); virtual bool setMidiValueRT(int ); virtual int getMidiValue(); void trigger() { emit triggered(); } signals: void triggered(); }; static const int CONTROL14_MAX = (1 << 14) - 1; template class MidiControllable: public MidiControllableBase { protected: t &value; const t min, max; static t round(float f); public: MidiControllable(Module &module, const QString &name, t &value, t min, t max) : MidiControllableBase(module, name) , value(value) , min(min) , max(max) {} void setValRT(int val) { value = val; }; void setVal(int val, MidiGUIcomponent *sender) { setValRT(val); updateMGCs(sender); } int toInt(t _t) {return (int)_t;} t toType(float i) {return (t)i;} virtual int getValue() { return toInt(value); } virtual int getMin() { return toInt(min); } virtual int getMax() { return toInt(max); } virtual bool setMidiValueRT(int control14) { float tick = (float)(max - min) / CONTROL14_MAX; if (!midiSign) control14 = CONTROL14_MAX - control14; t old = value; value = min + (int)(0.5 + tick * control14); return old != value; } virtual int getMidiValue() { return 0;} virtual int sliderMin() { return getMin(); } virtual int sliderMax() { return getMax(); } virtual int sliderVal() { return getValue(); } virtual int sliderStep() { return 1; } virtual const QString &minString() { return temp.setNum(toInt(min)); } virtual const QString &maxString() { return temp.setNum(toInt(max)); } virtual const QString &valString() { return temp.setNum(toInt(value)); } }; template <> inline float MidiControllable::round(float f) { return f; } template <> inline int MidiControllable::round(float f) { return (int)(0.5 + f); } class MidiControllableFloat: public MidiControllable { bool isLog; float varMin, varMax; int scaledMin, scaledMax; public: MidiControllableFloat(Module &module, const QString &name, float &value, float min, float max, bool isLog = false) : MidiControllable(module, name, value, min, max) , isLog(isLog) { resetMinMax(); } operator float() {return value;} int scale(float ); bool getLog() { return isLog; } void setLog(bool ); void setNewMin(int min); void setNewMax(int max); void setNewMin(); void setNewMax(); void resetMinMax(); void updateFloatMGCs(); virtual bool setMidiValueRT(int ); virtual int getMidiValue(); virtual int sliderMin(); virtual int sliderMax(); virtual int sliderVal(); virtual int sliderStep(); virtual void setValRT(int ); virtual void setVal(int , MidiGUIcomponent *); virtual const QString &minString(); virtual const QString &maxString(); virtual const QString &valString(); }; class MidiControllableNames: public MidiControllable { public: QStringList itemNames; MidiControllableNames(Module &module, const QString &name, int &value, const QStringList &itemNames) : MidiControllable(module, name, value, 0, itemNames.count() - 1) , itemNames(itemNames) {} }; #endif ams-2.0.1/src/configdialog.h0000644000076400007640000001024511150721750012611 00000000000000#ifndef CONFIGDIALOG_H #define CONFIGDIALOG_H #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "synthdata.h" #include "function.h" template class MidiControllable; /** configuration dialog for each module * */ class ConfigDialog : public QDialog { Q_OBJECT QVBoxLayout *configBox; int addStretch; QPushButton *removeButton; QHBoxLayout *removeFrame; public: QList midiSliderList; QList intMidiSliderList; QList floatIntMidiSliderList; QList midiComboBoxList; QList midiCheckBoxList; QList midiPushButtonList; QList envelopeList; QList scopeScreenList; #ifdef OUTDATED_CODE QList spectrumScreenList; #endif QList functionList; QList lineEditList; QList labelList; Module &module; QTabWidget *tabWidget; protected: void insertWidget(QBoxLayout *layout, QWidget *widget, int stretch = 0, Qt::Alignment alignment = 0, int pos = -1); public: ConfigDialog(Module &module); ~ConfigDialog(); void setAddStretch(int v) { addStretch = v; } void removeButtonShow(bool show); MidiSlider *addSlider(const QString &name, float &valueRef, float minValue, float maxValue, bool isLog = false, QBoxLayout *layout = NULL); IntMidiSlider *addIntSlider(const QString &name, int &valueRef, int minValue, int maxValue, QBoxLayout *layout = NULL); int addFloatIntSlider(const QString &name, float &valueRef, float minValue, float maxValue, QBoxLayout *layout = NULL); MidiComboBox *addComboBox(const QString &name, int &valueRef, const QStringList &itemNames, QBoxLayout *layout = NULL); int addCheckBox(const QString &name, float &valueRef, QBoxLayout *layout = NULL); int addCheckBox(MidiControllable &mcAble, QBoxLayout *layout = NULL); class MidiControllableDoOnce *addPushButton(const QString &name, QBoxLayout *layout = NULL); int addEnvelope(class MidiControllableFloat &delayRef, MidiControllableFloat &attackRef, MidiControllableFloat &holdRef, MidiControllableFloat &decayRef, MidiControllableFloat &sustainRef, MidiControllableFloat &releaseRef, QBoxLayout *layout = NULL); class MultiEnvelope *addMultiEnvelope(int envCount, float *timeScaleRef, float *attackRef, float *sustainRef, float *releaseRef, QBoxLayout *layout = NULL); int addFunction(int p_functionCount, int *p_mode, int *p_editIndex, tFunction &, int p_pointCount, QBoxLayout *layout = NULL); int addLabel(const QString& label, QBoxLayout *layout = NULL); int addScopeScreen(float &timeScaleRef, int &modeRef, int &edgeRef, int &triggerModeRef, float &triggerThrsRef, float &zoomRef, QBoxLayout *layout = NULL); #ifdef OUTDATED_CODE int addSpectrumScreen(QWidget *parent=0); #endif int addTab(QWidget *tabPage, const QString &tabLabel) { return tabWidget->addTab(tabPage, tabLabel); } QVBoxLayout *addVBoxTab(const char *tabLabel); QVBoxLayout *addVBoxTab(const QString &tabLabel); QHBoxLayout *addHBox(QBoxLayout *layout = NULL); QVBoxLayout *addVBox(QBoxLayout *layout = NULL); int addLineEdit(const char *lineName, QBoxLayout *layout = NULL); int initTabWidget(); MidiSlider* getMidiSlider(int); IntMidiSlider* getIntMidiSlider(int); IntMidiSlider* getFloatIntMidiSlider(int); MidiComboBox* getMidiComboBox(int); MidiCheckBox* getMidiCheckBox(int); MidiPushButton* getMidiPushButton(int); Function* getFunction(int); signals: void removeModuleClicked(); public slots: void removeButtonClicked(); }; #endif ams-2.0.1/src/m_noise.cpp0000664000076400007640000000365611051111565012157 00000000000000#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "synthdata.h" #include "m_noise.h" #include "port.h" M_noise::M_noise(QWidget* parent) : Module(M_type_noise, 3, parent, tr("Noise")) { QString qs; int l2; long t; rate = 5; level = 0.5; count = 0; randmax = 2.0 / (double)RAND_MAX; setGeometry(MODULE_NEW_X, MODULE_NEW_Y, MODULE_NOISE_WIDTH, MODULE_NOISE_HEIGHT); port_white = new Port(tr("White"), PORT_OUT, 0, this); port_pink = new Port(tr("Pink"), PORT_OUT, 1, this); port_random = new Port(tr("Random"), PORT_OUT, 2, this); configDialog->addSlider(tr("Random Rate"), rate, 0, 10); configDialog->addSlider(tr("Random Level"), level, 0, 1); r = 0; for (l2 = 0; l2 < 3; ++l2) { buf[l2] = 0; } t = time(NULL) % 1000000; srand(abs(t - 10000 * (t % 100))); } void M_noise::generateCycle() { int l1; unsigned int l2, random_rate; double white_noise; random_rate = (unsigned int)(5000.0 * (double)rate + 100.0); for (l2 = 0; l2 < synthdata->cyclesize; ++l2) { count++; if (count > random_rate) { count = 0; r = level * (double)rand() * randmax - 1.0; } white_noise = (double)rand() * randmax - 1.0; buf[0] = 0.99765 * buf[0] + white_noise * 0.099046; buf[1] = 0.963 * buf[1] + white_noise * 0.2965164; buf[2] = 0.57 * buf[2] + white_noise * 1.0526913; data[1][0][l2] = buf[0] + buf[1] + buf[2] + white_noise * 0.1848; for (l1 = 0; l1 < synthdata->poly; ++l1) { data[0][l1][l2] = white_noise; data[1][l1][l2] = data[1][0][l2]; data[2][l1][l2] = r; } } } ams-2.0.1/src/m_mcv.h0000664000076400007640000000067511051103052011262 00000000000000#ifndef M_MCV_H #define M_MCV_H #include "module.h" #define MODULE_MCV_WIDTH 90 #define MODULE_MCV_HEIGHT 120 class M_mcv : public Module { Q_OBJECT float pitchbend; Port *port_note_out, *port_gate_out, *port_velocity_out, *port_trig_out; public: int pitch, channel; float freq[MAXPOLY]; public: M_mcv(QWidget* parent=0); void generateCycle(); }; #endif ams-2.0.1/src/m_scope.cpp0000664000076400007640000001057711213412470012152 00000000000000#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "synthdata.h" #include "midislider.h" #include "midicombobox.h" #include "midipushbutton.h" #include "m_scope.h" #include "module.h" #include "scopescreen.h" #include "port.h" M_scope::M_scope(QWidget* parent) : Module(M_type_scope, 0, parent, tr("Scope")) { QString qs; QHBoxLayout *hbox; setGeometry(MODULE_NEW_X, MODULE_NEW_Y, MODULE_SCOPE_WIDTH, MODULE_SCOPE_HEIGHT); gain = 0.5; mixer_gain[0] = 0.5; mixer_gain[1] = 0.5; port_in[0] = new Port(tr("In 0"), PORT_IN, 0, this); port_in[1] = new Port(tr("In 1"), PORT_IN, 1, this); configDialog->initTabWidget(); mode = 0; edge = 0; triggerMode = 1; triggerThrs = 0; zoom = 1; timeScale = 100; configDialog->setAddStretch(-1); QVBoxLayout *scopeTab = configDialog->addVBoxTab(tr("Scope")); configDialog->setAddStretch(-1); // scopeTab->setMinimumHeight(200); configDialog->addScopeScreen(timeScale, mode, edge, triggerMode, triggerThrs, zoom, scopeTab); configDialog->addSlider(tr("Time Scale"), timeScale, 10, 1000, false, scopeTab); configDialog->addSlider(tr("Gain"), zoom, 0.1, 10, false, scopeTab); QVBoxLayout *triggerTab = configDialog->addVBoxTab(tr("Trigger")); configDialog->setAddStretch(1); hbox = configDialog->addHBox(triggerTab); configDialog->setAddStretch(0); QStringList triggerModeNames; triggerModeNames << tr("Continuous") << tr("Triggered") << tr("Single"); configDialog->addComboBox(tr("Refresh Mode"), triggerMode, triggerModeNames, hbox); QObject::connect(configDialog->midiComboBoxList.at(0)->comboBox, SIGNAL(highlighted(int)), this, SLOT(updateTriggerMode(int))); QStringList edgeNames; edgeNames << tr("Rising") << tr("Falling"); configDialog->addComboBox(tr("Trigger Edge"), edge, edgeNames, hbox); configDialog->setAddStretch(1); configDialog->addSlider(tr("Trigger Level"), triggerThrs, -1, 1, false, triggerTab); //!! configDialog->addPushButton("Trigger", (void (Module::*)())&M_scope::singleShot, triggerTab); // QObject::connect(configDialog->midiPushButtonList.at(0), SIGNAL(clicked()), // configDialog->scopeScreenList.at(0), SLOT(singleShot())); floatdata = (float *)malloc(2 * synthdata->periodsize * sizeof(float)); memset(floatdata, 0, 2 * synthdata->periodsize * sizeof(float)); configDialog->scopeScreenList.at(0)->writeofs = 0; timer = new QTimer(this); QObject::connect(timer, SIGNAL(timeout()), this, SLOT(timerProc())); timer->setSingleShot(true); timer->start((int)(timeScale)); updateTriggerMode(1); } M_scope::~M_scope() { free(floatdata); } int M_scope::setGain(float p_gain) { gain = p_gain; return(0); } float M_scope::getGain() { return(gain); } void M_scope::generateCycle() { int l1, l3, ofs; unsigned int l2; float mixgain, wavgain; float *scopedata, **indata; wavgain = 32767.0 / synthdata->poly; memset(floatdata, 0, 2 * synthdata->cyclesize * sizeof(float)); for (l1 = 0; l1 < 2; ++l1) { indata = port_in [l1]->getinputdata (); mixgain = gain * mixer_gain[l1]; for (l2 = 0; l2 < synthdata->cyclesize; ++l2) { for (l3 = 0; l3 < synthdata->poly; ++l3) { floatdata[2 * l2 + l1] += mixgain * indata[l3][l2]; } } } scopedata = configDialog->scopeScreenList.at(0)->scopedata; ofs = configDialog->scopeScreenList.at(0)->writeofs; for (l2 = 0; l2 < synthdata->cyclesize; ++l2) { scopedata[2 * ofs] = wavgain * floatdata[2 * l2]; scopedata[2 * ofs + 1] = wavgain * floatdata[2 * l2 + 1]; ofs++; if (ofs >= SCOPE_BUFSIZE >> 1) { ofs -= SCOPE_BUFSIZE >> 1; } } configDialog->scopeScreenList.at(0)->writeofs = ofs; } void M_scope::timerProc() { if (triggerMode < 2) { timer->setSingleShot(true); timer->start((int)(timeScale)); } configDialog->scopeScreenList.at(0)->refreshScope(); } void M_scope::updateTriggerMode(int) { if (triggerMode < 2) { timer->setSingleShot(true); timer->start((int)(timeScale)); } } ams-2.0.1/src/m_lfo.cpp0000664000076400007640000000751511051103377011622 00000000000000#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "synthdata.h" #include "m_lfo.h" #include "port.h" M_lfo::M_lfo(QWidget* parent) : Module(M_type_lfo, 6, parent, tr("LFO")) { QString qs; int l1; long tm; setGeometry(MODULE_NEW_X, MODULE_NEW_Y, MODULE_LFO_WIDTH, MODULE_LFO_HEIGHT); freq = 5; phi0 = 0; wave_period = (double)synthdata->rate / (16.0 * freq); for (l1 = 0; l1 < MAXPOLY; l1++) { trigger[l1] = false; si[l1] = 0; old_si[l1] = 0; sa[l1] = -1; old_sa[l1] = 0; t[l1] = 0; old_t[l1] = 0; r[l1] = 0; old_r[l1] = 0; old_sh[l1] = 0; sh[l1] = 0; state[l1] = 0; dt[l1] = 4.0 / wave_period; } port_M_trigger = new Port(tr("Reset"), PORT_IN, 0, this); cv.out_off = 55; port_sine = new Port(tr("Sine"), PORT_OUT, 0, this); port_tri = new Port(tr("Triangle"), PORT_OUT, 1, this); port_sawup = new Port(tr("Saw Up"), PORT_OUT, 2, this); port_sawdown = new Port(tr("Saw Down"), PORT_OUT, 3, this); port_rect = new Port(tr("Rectangle"), PORT_OUT, 4, this); port_sh = new Port(tr("S & H"), PORT_OUT, 5, this); configDialog->addSlider(tr("Frequency"), freq, 0, 100, true); configDialog->addSlider(tr("Phi0"), phi0, 0, 6.283); tm = time(NULL) % 1000000; srand(abs(tm - 10000 * (tm % 100))); } void M_lfo::generateCycle() { int l1, l2, k, len, phi0i, l2_out; double ldsi, ldsa, ldt, ldr, ldsh, dt0, dsa; float **triggerData = port_M_trigger->getinputdata(); wave_period = (double)synthdata->rate / (16.0 * freq); dsa = 2.0 / wave_period; dt0 = 4.0 / wave_period; phi0i = (int)(phi0 / 6.283 * wave_period); for (l1 = 0; l1 < synthdata->poly; l1++) { len = synthdata->cyclesize; l2 = -1; l2_out = 0; do { k = (len > 24) ? 16 : len; l2 += k; if (!trigger[l1] && (triggerData[l1][l2] > 0.5)) { trigger[l1] = true; t[l1] = 0; state[l1] = 0; dt[l1] = dt0; r[l1] = -1; si[l1] = 0; } if (trigger[l1] && (triggerData[l1][l2] < 0.5)) { trigger[l1] = false; } if (t[l1] >= 1.0) { state[l1] = 1; dt[l1] = -dt0; } else if (t[l1] <= -1.0) { state[l1] = 3; dt[l1] = dt0; } else if ((state[l1] == 1) && (t[l1] < 0)) { state[l1] = 2; r[l1] = 1; sh[l1] = 2.0 * (double)rand() / (double)RAND_MAX - 1.0; } else if ((state[l1] == 3) && (t[l1] > 0)) { state[l1] = 0; r[l1] = -1; sh[l1] = 2.0 * (double)rand() / (double)RAND_MAX - 1.0; sa[l1] = -1; } si[l1] = (state[l1] < 2) ? t[l1] * (2.0 - t[l1]) : t[l1] * (2.0 + t[l1]); sa[l1] += dsa; t[l1] += dt[l1]; len -= k; ldsi = (si[l1] - old_si[l1]) / (double)k; ldsa = (sa[l1] - old_sa[l1]) / (double)k; ldsh = (sh[l1] - old_sh[l1]) / (double)k; ldt = (t[l1] - old_t[l1]) / (double)k; ldr = (r[l1] - old_r[l1]) / (double)k; while (k--) { old_si[l1] += ldsi; old_sa[l1] += ldsa; old_sh[l1] += ldsh; old_t[l1] += ldt; old_r[l1] += ldr; data[0][l1][l2_out] = old_si[l1]; data[1][l1][l2_out] = old_t[l1]; data[2][l1][l2_out] = old_sa[l1]; data[3][l1][l2_out] = -old_sa[l1]; data[4][l1][l2_out] = old_r[l1]; data[5][l1][l2_out] = old_sh[l1]; l2_out++; } } while(len); } } ams-2.0.1/src/m_wavout.cpp0000664000076400007640000002106111213412106012350 00000000000000#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "synthdata.h" #include "midicontrollable.h" #include "midipushbutton.h" #include "m_wavout.h" #include "module.h" #include "port.h" M_wavout::M_wavout(QWidget* parent) : Module(M_type_wavout, 0, parent, tr("WAV Out")) { QString qs; QHBoxLayout *hbox1, *hbox2; setGeometry(MODULE_NEW_X, MODULE_NEW_Y, MODULE_WAVOUT_WIDTH, MODULE_WAVOUT_HEIGHT); gain = 0.5; mixer_gain[0] = 0.5; mixer_gain[1] = 0.5; agc = 1; doRecord = 0; port_in[0] = new Port("In 0", PORT_IN, 0, this); port_in[1] = new Port("In 1", PORT_IN, 1, this); configDialog->initTabWidget(); QVBoxLayout *fileTab = configDialog->addVBoxTab(tr("File")); QVBoxLayout *recordTab = configDialog->addVBoxTab(tr("Record")); QVBoxLayout *gainTab = configDialog->addVBoxTab(tr("Gain")); configDialog->addLineEdit("File:", fileTab); hbox1 = configDialog->addHBox(fileTab); configDialog->addLabel(tr("Time: 0:00:00 "), recordTab); configDialog->labelList.at(0)->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter); MidiControllableDoOnce *do0 = configDialog->addPushButton( tr("&New File"), hbox1); MidiControllableDoOnce *do1 = configDialog->addPushButton( tr("&Overwrite Current File"), hbox1); hbox2 = configDialog->addHBox(recordTab); MidiControllableDoOnce *do2 = configDialog->addPushButton( tr("&Record"), hbox2); MidiControllableDoOnce *do3 = configDialog->addPushButton( tr("&Stop"), hbox2); QObject::connect(do0, SIGNAL(triggered()), this, SLOT(openBrowser())); QObject::connect(do1, SIGNAL(triggered()), this, SLOT(createWav())); QObject::connect(do2, SIGNAL(triggered()), this, SLOT(recordClicked())); QObject::connect(do3, SIGNAL(triggered()), this, SLOT(stopClicked())); configDialog->midiPushButtonList.at(2)->pushButton->setEnabled(false); configDialog->midiPushButtonList.at(3)->pushButton->setEnabled(false); configDialog->addSlider(tr("&Gain"), gain, 0, 1, false, gainTab); configDialog->addSlider(tr("Volume 1"), mixer_gain[0], 0, 1, false, gainTab); configDialog->addSlider(tr("Volume 2"), mixer_gain[1], 0, 1, false, gainTab); QStringList agcNames; agcNames << tr("Disbled") << tr("Enabled"); configDialog->addComboBox(tr("&Automatic Gain Control"), agc, agcNames, gainTab); wavDataSize = 0; wavdata = (char *)malloc(synthdata->periodsize * 4); memset(wavdata, 0, synthdata->periodsize * 4); floatdata = (float *)malloc(2 * synthdata->periodsize * sizeof(float)); memset(floatdata, 0, 2 * synthdata->periodsize * sizeof(float)); timer = new QTimer(this); QObject::connect(timer, SIGNAL(timeout()), this, SLOT(timerProc())); } M_wavout::~M_wavout() { free(wavdata); free(floatdata); } int M_wavout::setGain(float p_gain) { gain = p_gain; return(0); } float M_wavout::getGain() { return(gain); } void M_wavout::generateCycle() { int l3; unsigned int l1, l2; float max, mixgain, wavgain, **indata; short s; memset(floatdata, 0, 2 * synthdata->cyclesize * sizeof(float)); wavgain = 32767.0 / synthdata->poly; for (l1 = 0; l1 < 2; ++l1) { indata = port_in[l1]->getinputdata (); mixgain = gain * mixer_gain[l1]; for (l2 = 0; l2 < synthdata->cyclesize; ++l2) { for (l3 = 0; l3 < synthdata->poly; ++l3) floatdata[2 * l2 + l1] += mixgain * indata[l3][l2]; } if (agc) { max = 0; for (l2 = 0; l2 < synthdata->cyclesize; ++l2) { if (max < fabs(floatdata[2 * l2 + l1])) max = fabs(floatdata[2 * l2 + l1]); } if (max > 0.9) { max = 0.9 / max; for (l2 = 0; l2 < synthdata->cyclesize; ++l2) floatdata[2 * l2 + l1] *= max; } } } if (doRecord > 0) { for (l2 = 0; l2 < 2; ++l2) { for (l1 = 0; l1 < synthdata->cyclesize; ++l1) { s = (short)(wavgain * floatdata[2 * l1 + l2]); wavdata[4*l1+2*l2] = (unsigned char)s; wavdata[4*l1+2*l2+1] = s >> 8; } } wavfile.write(wavdata, synthdata->cyclesize * 4); wavDataSize += synthdata->cyclesize * 4; } } void M_wavout::recordToggled(bool on) { int tmpint; if (!on) { tmpint = wavDataSize + 36; outbuf[3] = tmpint >> 24; // ByteRate outbuf[2] = (tmpint >> 16) - ((tmpint >> 24) << 8); outbuf[1] = (tmpint >> 8) - ((tmpint >> 16) << 8); outbuf[0] = (unsigned char)tmpint; wavfile.seek(4); wavfile.write(outbuf, 4); tmpint = wavDataSize; outbuf[3] = tmpint >> 24; // ByteRate outbuf[2] = (tmpint >> 16) - ((tmpint >> 24) << 8); outbuf[1] = (tmpint >> 8) - ((tmpint >> 16) << 8); outbuf[0] = (unsigned char)tmpint; wavfile.seek(40); wavfile.write(outbuf, 4); wavfile.seek(wavfile.size()); wavfile.flush(); } else { timer->setSingleShot(true); timer->start(200); } } void M_wavout::recordClicked() { doRecord = true; recordToggled(true); } void M_wavout::stopClicked() { doRecord = false; recordToggled(false); } void M_wavout::createWav() { int tmpint; wavname = configDialog->lineEditList.at(0)->text(); wavfile.setFileName(wavname); if (wavfile.open(QIODevice::WriteOnly)) { wavDataSize = 0; outbuf[0] = 0x52; outbuf[1] = 0x49; outbuf[2] = 0x46; outbuf[3] = 0x46; // "RIFF" wavfile.write(outbuf, 4); outbuf[0] = 0x24; outbuf[1] = 0x00; outbuf[2] = 0xff; outbuf[3] = 0x00; // ChunkSize wavfile.write(outbuf, 4); outbuf[0] = 0x57; outbuf[1] = 0x41; outbuf[2] = 0x56; outbuf[3] = 0x45; // "WAVE" wavfile.write(outbuf, 4); outbuf[0] = 0x66; outbuf[1] = 0x6d; outbuf[2] = 0x74; outbuf[3] = 0x20; // "fmt " wavfile.write(outbuf, 4); outbuf[0] = 0x10; outbuf[1] = 0x00; outbuf[2] = 0x00; outbuf[3] = 0x00; // Subchunk1Size wavfile.write(outbuf, 4); outbuf[0] = 0x01; outbuf[1] = 0x00; // AudioFormat wavfile.write(outbuf, 2); outbuf[0] = 0x02; outbuf[1] = 0x00; // NumChannels wavfile.write(outbuf, 2); outbuf[3] = synthdata->rate >> 24; // SampleRate outbuf[2] = (synthdata->rate >> 16) - ((synthdata->rate >> 24) << 8); outbuf[1] = (synthdata->rate >> 8) - ((synthdata->rate >> 16) << 8); outbuf[0] = (unsigned char)synthdata->rate; wavfile.write(outbuf, 4); tmpint = synthdata->rate * 2 * 2; outbuf[3] = tmpint >> 24; // ByteRate outbuf[2] = (tmpint >> 16) - ((tmpint >> 24) << 8); outbuf[1] = (tmpint >> 8) - ((tmpint >> 16) << 8); outbuf[0] = (unsigned char)tmpint; wavfile.write(outbuf, 4); outbuf[0] = 0x04; outbuf[1] = 0x00; // BlockAlign wavfile.write(outbuf, 2); outbuf[0] = 0x10; outbuf[1] = 0x00; // BitsPerSample wavfile.write(outbuf, 2); outbuf[0] = 0x64; outbuf[1] = 0x61; outbuf[2] = 0x74; outbuf[3] = 0x61; // "data" wavfile.write(outbuf, 4); outbuf[0] = 0x00; outbuf[1] = 0x00; outbuf[2] = 0xff; outbuf[3] = 0x00; // Subchunk2Size wavfile.write(outbuf, 4); configDialog->midiPushButtonList.at(2)->pushButton->setEnabled(true); configDialog->midiPushButtonList.at(3)->pushButton->setEnabled(true); configDialog->labelList.at(0)->setText("Time: 0:00:00 "); } else { configDialog->midiPushButtonList.at(2)->pushButton->setEnabled(false); configDialog->midiPushButtonList.at(3)->pushButton->setEnabled(false); } } void M_wavout::openBrowser() { char buf[2048]; getcwd(buf, 2048); wavname = QFileDialog::getSaveFileName(this, tr("Choose Wave File"), buf, tr("WAV files (*.wav)")); if (!wavname.isEmpty()) { configDialog->lineEditList.at(0)->setText(wavname); createWav(); } } void M_wavout::timerProc() { QString qs1, qs2, qs3; int seconds, minutes, displaySeconds; if (doRecord) { timer->setSingleShot(true); timer->start(200); seconds = (wavDataSize >> 2) / synthdata->rate; minutes = (seconds % 3600) / 60; displaySeconds = seconds % 60; qs1.sprintf("%d", seconds / 3600); if (minutes < 10) { qs2.sprintf("0%d", minutes); } else { qs2.sprintf("%d", minutes); } if (displaySeconds < 10) { qs3.sprintf("0%d", displaySeconds); } else { qs3.sprintf("%d", displaySeconds); } configDialog->labelList.at(0)->setText( tr("Time: %1:%2:%3 ").arg(qs1).arg(qs2).arg(qs3)); } } ams-2.0.1/src/guiwidget.h0000644000076400007640000000333611150721750012157 00000000000000#ifndef GUIWIDGET_H #define GUIWIDGET_H #include #include #include #include #include #include #include #include #include #include "synthdata.h" #include "midiguicomponent.h" #define GUI_DEFAULT_WIDTH 300 #define GUI_DEFAULT_HEIGHT 200 #define MAX_PRESETS 128 class GuiWidget : public QDialog { Q_OBJECT QVBoxLayout vLayout; QVBoxLayout *currentGroupBox; QTabWidget *tabWidget; QHBoxLayout *currentTab; int currentPreset, currentTabIndex; QLabel *presetLabel, *presetCountLabel; QLineEdit *presetName; public: struct GuiFrame { int tabIndex; QVBoxLayout *frameBox; }; int presetCount; QStringList frameNameList; QList frameBoxList; QStringList tabNameList; QStringList presetNameList; QList tabList; QList parameterList; QList mgcs; QList presetList[MAX_PRESETS]; public: GuiWidget(QWidget* parent, const char *name=0); int addFrame(const QString &frameName); int setFrame(int index); int addTab(const QString &tabName); int setTab(int index); int setPresetCount(int count); int setCurrentPreset(int presetNum, bool rt = false); void setCurrentPresetText(); int addParameter(MidiControllableBase *, const QString ¶meterName); void remove(MidiControllableBase *); MidiControllableBase* getMidiControllableParameter(int); GuiWidget::GuiFrame* getGuiFrame(int); void save(QTextStream&); public slots: void presetDec(); void presetInc(); void addPreset(); void overwritePreset(); void clearPresets(); void clearGui(); void refreshGui(); }; #endif ams-2.0.1/src/m_noise2.h0000664000076400007640000000072611051111565011701 00000000000000#ifndef M_NOISE2_H #define M_NOISE2_H #include "module.h" #define MODULE_NOISE2_WIDTH 90 #define MODULE_NOISE2_HEIGHT 75 enum Noises {WHITE,RAND,PINK}; class M_noise2 : public Module { Q_OBJECT int NoiseType; unsigned int count; float rate, level; float buf[3], r; Port *port_white, *port_pink, *port_random; float randmax; public: M_noise2(QWidget* parent=0); void generateCycle(); }; #endif ams-2.0.1/src/midipushbutton.h0000664000076400007640000000072711051103102013231 00000000000000#ifndef MIDIPUSHBUTTON_H #define MIDIPUSHBUTTON_H #include #include #include "synthdata.h" #include "midiguicomponent.h" /** *@author Matthias Nagorni */ class MidiPushButton : public MidiGUIcomponent { Q_OBJECT private slots: void clicked(); public: QPushButton *pushButton; public: MidiPushButton(class MidiControllableDoOnce &mcAble); virtual MidiGUIcomponent *createTwin(); void mcAbleChanged() {}; }; #endif ams-2.0.1/src/m_scmcv.cpp0000664000076400007640000001514711203763532012161 00000000000000#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "synthdata.h" #include "midipushbutton.h" #include "m_scmcv.h" #include "midicontrollable.h" #include "port.h" M_scmcv::M_scmcv(QWidget* parent, QString *p_sclname) : Module(M_type_scmcv, 4, parent, tr("Scala MCV")) { QString qs; int l1; setGeometry(MODULE_NEW_X, MODULE_NEW_Y, MODULE_SCMCV_WIDTH, MODULE_SCMCV_HEIGHT); port_gate_out = new Port(tr("Gate"), PORT_OUT, 0, this); port_note_out = new Port(tr("Freq"), PORT_OUT, 1, this); port_velocity_out = new Port(tr("Velocity"), PORT_OUT, 2, this); port_trig_out = new Port(tr("Trigger"), PORT_OUT, 3, this); QStringList channelNames; channelNames << "RESERVED FOR LATER USE"; for (l1 = 1; l1 < 17; l1++) { qs.sprintf("RESERVED FOR LATER USE"); channelNames << qs; } channel = 0; base = 0; pitch = 0; lastbase = 12; pitchbend = 0; for (l1 = 0; l1 < synthdata->poly; l1++) { lastfreq[l1] = 0; freq[l1] = 0; } for (l1 = 0; l1 < 12; l1++) { scale_lut_isRatio[l1] = false; scale_lut[l1] = 100.0 + (float)l1 * 100.0; } scale_lut_isRatio[12] = true; scale_lut[12] = 2.0; scale_lut_length = 12; configDialog->addComboBox(" ", channel, channelNames); configDialog->addIntSlider(tr("Scale Offset"), base, -60, 60); configDialog->addIntSlider(tr("Note Offset"), pitch, -36, 36); configDialog->addSlider(tr("Pitch"), pitchbend, -1, 1); sclname = "No_Scale_loaded"; configDialog->addLabel(tr(" Scale: ") + sclname); configDialog->addLabel(" "); MidiControllableDoOnce * doO = configDialog->addPushButton(tr("Load Scale")); QObject::connect(doO, SIGNAL(triggered()), this, SLOT(openBrowser())); fileDialog = NULL; dirpath.sprintf("%s", getenv("SCALA_PATH")); if (dirpath.length() < 1) { qWarning("\nYou did not set the environment variable SCALA_PATH."); qWarning("Assuming SCALA_PATH=/usr/share/scala"); dirpath = "/usr/share/scala"; } else StdErr << "SCALA_PATH: " << dirpath << endl; if (p_sclname && !p_sclname->contains("No_Scale_loaded")) loadScale(dirpath + "/" + *p_sclname); } void M_scmcv::calcScale() { int l1, index; float base_cv, base_freq; lastbase = base; base_cv = base / 12.0 - 5.0; base_freq = synthdata->exp2_table(8.0313842 + base_cv); fprintf(stderr, "base: %d, base_cv: %f, base_freq: %f\n", base, base_cv, base_freq); scale_notes[0] = base_cv; index = 1; while (index < 128) { for (l1 = 0; l1 < scale_lut_length; l1++) { if (scale_lut_isRatio[l1]) { scale_notes[index] = log(base_freq * scale_lut[l1])/M_LN2 - 8.0313842; } else { scale_notes[index] = base_cv + scale_lut[l1] / 1200.0; } index++; if (index > 127) break; } base_cv = scale_notes[index - 1]; base_freq = synthdata->exp2_table(8.0313842 + base_cv); } } void M_scmcv::generateCycle() { int l1, index; unsigned int l2; float df, gate, velocity; if (base != lastbase) calcScale(); for (l1 = 0; l1 < synthdata->poly; l1++) { gate = (synthdata->channel[l1] == channel - 1 || channel == 0) && synthdata->noteCounter[l1] < 1000000; lastfreq[l1] = freq[l1]; index = synthdata->notes[l1] + pitch; freq[l1] = ((index >=0) && (index < 128)) ? pitchbend + scale_notes[index] : 0; // if (freq[l1] < 0) freq[l1] = 0; velocity = (float)synthdata->velocity[l1] / 127.0; memset(data[3][l1], 0, synthdata->cyclesize * sizeof(float)); // data[3][l1][0] = trig[l1]; data[3][l1][15] = synthdata->noteCounter[l1] == 0; // Added for interpolated input ports (e.g. m_vcenv.cpp) if ((freq[l1] == lastfreq[l1]) || (freq[l1] == 0) || (lastfreq[l1] == 0)) { for (l2 = 0; l2 < synthdata->cyclesize; l2++) { data[0][l1][l2] = gate; data[1][l1][l2] = freq[l1]; data[2][l1][l2] = velocity; } } else { df = (freq[l1] - lastfreq[l1]) / (float)MODULE_SCMCV_RESPONSE; for (l2 = 0; l2 < MODULE_SCMCV_RESPONSE; l2++) { data[0][l1][l2] = gate; data[1][l1][l2] = lastfreq[l1] + df * (float)l2; data[2][l1][l2] = velocity; } for (l2 = MODULE_SCMCV_RESPONSE; l2 < synthdata->cyclesize; l2++) { data[0][l1][l2] = gate; data[1][l1][l2] = freq[l1]; data[2][l1][l2] = velocity; } } } } void M_scmcv::openBrowser() { if (!fileDialog) { fileDialog = new QFileDialog(NULL, tr("Load Scala"), dirpath, tr("Scala files (*.scl)")); QObject::connect(fileDialog, SIGNAL(currentChanged(const QString &)), this, SLOT(loadScale(const QString &))); } fileDialog->show(); } void M_scmcv::loadScale(const QString &p_sclname) { QString qs, qs2, qs3; int index, n; sclname = p_sclname; QFile qfile(sclname); if (!qfile.open(QIODevice::ReadOnly)) { QMessageBox::information( this, "AlsaModularSynth", tr("Could not load Scala file '%1'").arg(sclname)); sclname = "No_Scale_loaded"; return; } configDialog->labelList.at(0)->setText(tr(" Scale: ") + sclname); QTextStream stream(&qfile); while (!stream.atEnd()) { qs = stream.readLine(); if (!qs.contains("!")) break; } configDialog->labelList.at(0)->setText(" " + qs); StdErr << "Scale: " << qs << endl; while (!stream.atEnd()) { qs = stream.readLine(); if (!qs.contains("!")) break; } index = 0; while (!stream.atEnd() && (index < 128)) { qs = stream.readLine(); if (qs.contains("!")) { continue; } qs2 = qs.simplified(); if (qs2.contains(".")) { if ((n = qs2.indexOf(" ")) > 0) { qs = qs2.left(n); } else { qs = qs2; } scale_lut_isRatio[index] = false; scale_lut[index] = qs.toFloat(); index++; } else { scale_lut_isRatio[index] = true; if (qs.contains("/")) { qs = qs2.left(qs2.indexOf("/")); qs3 = qs2.mid(qs2.indexOf("/") + 1); if ((n = qs3.indexOf(" ")) > 0) { qs2 = qs3.left(n); } else { qs2 = qs3; } scale_lut[index] = qs.toFloat() / qs2.toFloat(); } else { if ((n = qs2.indexOf(" ")) > 0) qs = qs2.left(n); else qs = qs2; scale_lut[index] = qs.toFloat(); } index++; } } scale_lut_length = index; calcScale(); } ams-2.0.1/src/m_pcmout.h0000664000076400007640000000110211051103057011773 00000000000000#ifndef M_PCMOUT_H #define M_PCMOUT_H #include "module.h" #define MODULE_PCMOUT_WIDTH 90 #define MODULE_PCMOUT_HEIGHT 80 class M_pcmout : public Module { Q_OBJECT float gain, polyroot; float mixer_gain[2]; float ag, ag_displayed; int agc; Module *module_in[2]; Port *port_in[2]; virtual void mcAbleChanged(MidiControllableBase *); public: float *pcmdata[2]; public: M_pcmout(QWidget* parent, int port); ~M_pcmout(); void generateCycle(); }; #endif ams-2.0.1/src/function.h0000664000076400007640000000645111051103035012005 00000000000000#ifndef FUNCTION_H #define FUNCTION_H #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "synthdata.h" #include "canvas.h" #define FUNCTION_MINIMUM_WIDTH 550 #define FUNCTION_MINIMUM_HEIGHT 350 #define MAX_FUNCTIONS 4 #define MAX_POINTS 11 #define FUNCTION_WIDTH 10000 // Function points range from 0 to 10000. #define FUNCTION_HEIGHT 10000 // Width == Height #define FUNCTION_SCALE 1000 // 1000 in point coordinates correspond to 1 V #define FUNCTION_CENTER_X 5000 // Origin of the point coordinate system. This Origin #define FUNCTION_CENTER_Y 5000 // is subtracted from the point coordinate to get negative CVs. #define FUNCTION_BORDER_L 50 #define FUNCTION_BORDER_R 35 #define FUNCTION_BORDER_B 35 #define FUNCTION_BORDER_T 40 #define FUNCTION_GRID 1000 #define FUNCTION_COLOR_1 0xF02020 #define FUNCTION_COLOR_2 0xF0F000 #define FUNCTION_COLOR_3 0x00F0F0 #define FUNCTION_COLOR_4 0x00F000 #define FUNCTION_COLOR_5 0xF00000 #define FUNCTION_COLOR_6 0x00F000 #define FUNCTION_COLOR_7 0xF000F0 #define FUNCTION_COLOR_8 0x8080FF #define FUNCTION_COLOR_BG 0x141450 #define FUNCTION_COLOR_FG 0x505080 typedef float float_function[2][MAX_FUNCTIONS+2][MAX_POINTS+2]; struct FunctionPointT { float x, y; operator QPointF () { return QPointF(x * FUNCTION_SCALE, y * FUNCTION_SCALE); } }; typedef FunctionPointT tFunction[MAX_FUNCTIONS][MAX_POINTS]; class Function : public QGraphicsView { Q_OBJECT friend class CanvasFunction; friend class CanvasPoint; private: int *mode, *editIndex; // QPolygon *screenPoints[MAX_FUNCTIONS]; tFunction &point; QColor colorTable[MAX_FUNCTIONS]; int deltaArray[MAX_POINTS]; QList gridX, gridY; QList canvasFunctionList; QList canvasTextList; QMatrix matrix; float zoom; bool mousePressed; int activeFunction, activePoint; QPoint mousePressPos; public: float_function f; int pointCount; int functionCount; protected: void drawBackground(QPainter *painter, const QRectF &rect); virtual void resizeEvent (QResizeEvent* ); virtual void contentsMousePressEvent (QMouseEvent* ); virtual void contentsMouseReleaseEvent (QMouseEvent* ); virtual void contentsMouseMoveEvent (QMouseEvent* ); public: Function(int p_functionCount, int *p_mode, int *p_editIndex, tFunction &point, int p_pointCount, QWidget* parent=0, const char *name=0); ~Function(); void setPointCount(int count); void setFunctionCount(int count); void setPoint(int f_index, int p_index, int x, int y); QPoint getPoint(int f_index, int p_index); virtual QSize sizeHint() const; virtual QSizePolicy sizePolicy() const; void redrawFunction(); void redrawGrid(); void updateScale(); signals: void mousePos(int, int); public slots: void updateFunction(int index); void setZoom(float p_zoom); void highlightFunction(int index); }; #endif ams-2.0.1/src/m_noise.h0000664000076400007640000000064111051111565011613 00000000000000#ifndef M_NOISE_H #define M_NOISE_H #include "module.h" #define MODULE_NOISE_WIDTH 100 #define MODULE_NOISE_HEIGHT 100 class M_noise : public Module { Q_OBJECT unsigned int count; float rate, level; float buf[3], r; Port *port_white, *port_pink, *port_random; double randmax; public: M_noise(QWidget* parent=0); void generateCycle(); }; #endif ams-2.0.1/src/modularsynth.h0000644000076400007640000001217211214542637012724 00000000000000#ifndef MODULARSYNTH_H #define MODULARSYNTH_H #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "main.h" #include "synthdata.h" #include "module.h" #include "port.h" #include "port_popup.h" #include "midiwidget.h" #include "msoptions.h" #include "ladspadialog.h" extern QTextStream StdErr; extern QTextStream StdOut; enum connectorStyleType {CONNECTOR_STRAIGHT, CONNECTOR_BEZIER}; class ModularSynth : public QWidget { Q_OBJECT QMessageBox *aboutWidget; QList listModule; QList listTextEdit; connectorStyleType connectorStyle; Port *selectedPort; QSocketNotifier *seqNotifier; LadspaDialog *ladspaDialog; MidiWidget *midiWidget; class GuiWidget *guiWidget; class PrefWidget *prefWidget; bool loadingPatch; QString pcmname; unsigned int fsamp; snd_pcm_uframes_t frsize; unsigned int nfrags; int ncapt; int nplay; int verbose; bool paintFastly; double _zoomFactor; QPoint newBoxPos; QPoint lastMousePos; void initNewModule(Module *m); snd_pcm_t *open_pcm(bool openCapture); snd_seq_t *open_seq(); int initSeqNotifier(); void newM_mix(int in_channels); void newM_function(int functionCount); void newM_stereomix(int in_channels); void newM_seq(int seqLen); void newM_vcorgan(int oscCount); void newM_dynamicwaves(int oscCount); void newM_ad(int outCount); void new_textEdit(int w, int h); void showContextMenu(const QPoint&); public: ModularSynth(QWidget* parent, const ModularSynthOptions&); ~ModularSynth(); bool clearConfig(bool restart); QMenu *contextMenu; int go(bool forceJack, bool forceAlsa); void setPaintFastly(bool v) { paintFastly = v; } void moveAllBoxes(const QPoint &delta); bool isModified(); QString getLoadPath(); void setLoadPath(const QString& sp); QString getSavePath(); void setSavePath(const QString& sp); int getSynthDataPoly(); QSize sizeHint() const; protected: class QAbstractScrollArea *scrollArea() { return (QAbstractScrollArea *)parent(); } void paintEvent(QPaintEvent*); virtual void mousePressEvent(QMouseEvent*); virtual void mouseReleaseEvent(QMouseEvent*); virtual void mouseMoveEvent(QMouseEvent*); private: QWidget* dragWidget; bool modified; PopupMenu* portPopup; Module* getModuleWithId(int); TextEdit* getTextEditAt(int); public slots: void displayAbout(); void displayMidiController(); void displayParameterView(); void displayPreferences(); void displayLadspaPlugins(); void midiAction(int fd); void startSynth(); void stopSynth(); void new_textEdit(); void newM_delay(); void newM_seq_8(); void newM_seq_12(); void newM_seq_16(); void newM_seq_24(); void newM_seq_32(); void newM_env(); void newM_vcenv(); void newM_vcenv2(); void newM_vcdoubledecay(); void newM_vcpanning(); void newM_advenv(); void newM_mcv(); void newM_advmcv(); void newM_scmcv(); void newM_scmcv(QString *p_scalaName); void newM_vco(); void newM_vco2(); void newM_vca_lin(); void newM_vca_exp(); void newM_vcf(); void newM_lfo(); void newM_mphlfo(); void newM_noise(); void newM_noise2(); void newM_ringmod(); void newM_inv(); void newM_amp(); void newM_ad_2(); void newM_ad_4(); void newM_ad_6(); void newM_vquant(); void newM_conv(); void newM_cvs(); void newM_slew(); void newM_quantizer(); void newM_scquantizer(QString *p_scalaName); void newM_scquantizer(); void newM_mix_2(); void newM_mix_4(); void newM_mix_8(); void newM_function_1(); void newM_function_2(); void newM_function_4(); void newM_stereomix_2(); void newM_stereomix_4(); void newM_stereomix_8(); void newM_ladspa(int p_ladspaDesFuncIndex, int n, bool p_newLadspaPoly, bool p_extCtrlPorts); void newM_pcmout(); void newM_pcmin(); void newM_wavout(); void newM_sh(); void newM_midiout(); void newM_vcswitch(); void newM_scope(); void newM_spectrum(); void newM_vcorgan_4(); void newM_vcorgan_6(); void newM_vcorgan_8(); void newM_dynamicwaves_4(); void newM_dynamicwaves_6(); void newM_dynamicwaves_8(); void resizeTextEdit(const QPoint& pos); void portSelected(Port*); void deleteModule(); void deleteTextEdit(); void deleteTextEdit(TextEdit *te); void load(QTextStream&); void save(QTextStream&); void loadColors(); void saveColors(); void allVoicesOff(); void loadPreferences(QString&); void savePreferences(QTextStream&); void refreshColors(); void redrawPortConnections(); void updateColors(); }; #endif ams-2.0.1/src/m_vcf.cpp0000664000076400007640000003472211057315517011627 00000000000000#include #include #include #include #include #include #include #include #include #include #include "synthdata.h" #include "midicombobox.h" #include "m_vcf.h" #include "port.h" M_vcf::M_vcf(QWidget* parent) : Module(M_type_vcf, 1, parent, tr("VCF")) { QString qs; setGeometry(MODULE_NEW_X, MODULE_NEW_Y, MODULE_VCF_WIDTH, MODULE_VCF_HEIGHT); gain = 1.0; freq = 5; resonance = 0.8; dBgain = 3.0; initBuf(0); freq_const = 2.85f / 20000.0f; fInvertRandMax= 1.0f/(float)RAND_MAX ; b_noise = 19.1919191919191919191919191919191919191919; pi2_rate = 2.0f * M_PI / synthdata->rate; // how often changes the rate? I guess once on init, or? inv2_rate = 2.0 / (double)synthdata->rate;// this double seems unnecessary port_M_in = new Port(tr("In"), PORT_IN, 0, this); port_M_freq = new Port(tr("Freq"), PORT_IN, 1, this); port_M_exp = new Port(tr("Exp. FM"), PORT_IN, 2, this); port_M_lin = new Port(tr("Lin. FM"), PORT_IN, 3, this); port_M_resonance = new Port(tr("Resonance"), PORT_IN, 4, this); cv.out_off = 130; port_out = new Port(tr("Out"), PORT_OUT, 0, this); QStringList vcfTypeNames; vcfTypeNames << tr("Resonant Lowpass"); vcfTypeNames << tr("Lowpass"); vcfTypeNames << tr("Highpass"); vcfTypeNames << tr("Bandpass I"); vcfTypeNames << tr("Bandpass II"); vcfTypeNames << tr("Notch"); vcfTypeNames << tr("24 dB Lowpass I"); vcfTypeNames << tr("24 dB Lowpass II"); configDialog->addComboBox(tr("VCF Type"), vcfType, vcfTypeNames); QObject::connect(configDialog->midiComboBoxList.at(0)->comboBox, SIGNAL(highlighted(int)), this, SLOT(initBuf(int))); configDialog->addSlider(tr("Input Gain"), gain, 0, 10); configDialog->addSlider(tr("Frequency"), freq, 0, 10); configDialog->addSlider(tr("Exp. FM Gain"), vcfExpFMGain, 0, 10); configDialog->addSlider(tr("Lin. FM Gain"), vcfLinFMGain, 0, 10); configDialog->addSlider(tr("Resonance"), resonance, 0.01, 1); configDialog->addSlider(tr("Resonance Gain"), resonanceGain, 0, 1); } void M_vcf::initBuf(int) { int l1, l2; for (l1 = 0; l1 < MAXPOLY; ++l1) { for (l2 = 0; l2 < 5; ++l2) { buf[l2][l1] = 0; in[l2][l1] = 0; } } } void M_vcf::generateCycle() { int l1; unsigned int l2; double t1, t2, fa, fb, q0, f, q, p, iv_sin, iv_cos, iv_alpha, a0, a1, a2, b0, b1, b2; inData = port_M_in->getinputdata(); freqData = port_M_freq->getinputdata(); expFMData = port_M_exp->getinputdata(); linFMData = port_M_lin->getinputdata(); resonanceData = port_M_resonance->getinputdata(); switch (vcfType) { case VCF_LR: { double b_noiseout; int i_noise; q0 = resonance; freq_tune = 5.0313842f + freq; gain_linfm = 1000.0f * vcfLinFMGain; for (l1 = 0; l1 < synthdata->poly; ++l1) { for (l2 = 0; l2 < synthdata->cyclesize; ++l2) { f = freq_const * (synthdata->exp2_table(freq_tune + freqData[l1][l2] + vcfExpFMGain * expFMData[l1][l2]) + gain_linfm * linFMData[l1][l2]); if (f < 0.0) f = 0.0; else if (f > 0.99) f = 0.99; q = q0 + resonanceGain * resonanceData[l1][l2]; if (q < 0.01) q = 0.01; else if (q > 1.0) q = 1.0; fa = 1.0 - f; fb = q * (1.0 + (1.0 / fa)); // generate dither (?) noise b_noise = b_noise * b_noise; i_noise = (int)b_noise; b_noise = b_noise - i_noise; b_noiseout = b_noise - 1.5;// was 0.5 b_noise = b_noise + 19.0; buf[0][l1] = fa * buf[0][l1] + f * (gain * inData[l1][l2] + fb * (buf[0][l1] - buf[1][l1]) + 0.00001 * b_noiseout);// ((float)rand() * fInvertRandMax - 1.0f)); buf[1][l1] = fa * buf[1][l1] + f * buf[0][l1]; data[0][l1][l2] = buf[1][l1]; } } break; } case VCF_LPF: { double temp; q0 = resonance; freq_tune = 5.0313842f + freq; gain_linfm = 1000.0f * vcfLinFMGain; for (l1 = 0; l1 < synthdata->poly; ++l1) { for (l2 = 0; l2 < synthdata->cyclesize; ++l2) { f = synthdata->exp2_table(freq_tune + freqData[l1][l2] + vcfExpFMGain * expFMData[l1][l2]) + gain_linfm * linFMData[l1][l2]; if (f < MIN_FREQ) f = MIN_FREQ; else if (f > MAX_FREQ) f = MAX_FREQ; q = q0 + resonanceGain * resonanceData[l1][l2]; if (q < 0.01) q = 0.01; else if (q > 1.0) q = 1.0; iv_sin = sin(pi2_rate * f); iv_cos = cos(pi2_rate * f); iv_alpha = iv_sin/(64.0 * q); b0 = (1.0 - iv_cos) * 0.5; b1 = 1.0 - iv_cos; b2 = b0; a0 = 1.0 + iv_alpha; a1 = -2.0 * iv_cos; a2 = 1.0 - iv_alpha; temp = 1.0 / a0 * (b0 * gain * inData[l1][l2] + b1 * buf[0][l1] + b2 * buf[1][l1] - a1 * buf[2][l1] - a2 * buf[3][l1]); data[0][l1][l2]=temp; buf[1][l1] = buf[0][l1]; buf[0][l1] = gain * inData[l1][l2]; buf[3][l1] = buf[2][l1]; buf[2][l1] = temp;//data[0][l1][l2]; } } break; } case VCF_HPF: { double temp; q0 = resonance; freq_tune = 5.0313842f + freq; gain_linfm = 1000.0f * vcfLinFMGain; for (l1 = 0; l1 < synthdata->poly; ++l1) { for (l2 = 0; l2 < synthdata->cyclesize; ++l2) { f = synthdata->exp2_table(freq_tune + freqData[l1][l2] + vcfExpFMGain * expFMData[l1][l2]) + gain_linfm * linFMData[l1][l2]; if (f < MIN_FREQ) f = MIN_FREQ; else if (f > MAX_FREQ) f = MAX_FREQ; q = q0 + resonanceGain * resonanceData[l1][l2]; if (q < 0.01) q = 0.01; else if (q > 1.0) q = 1.0; iv_sin = sin(pi2_rate * f); iv_cos = cos(pi2_rate * f); iv_alpha = iv_sin/(64.0 * q); b0 = (1.0 + iv_cos) * 0.5; b1 = - 1.0 - iv_cos; b2 = b0; a0 = 1.0 + iv_alpha; a1 = -2.0 * iv_cos; a2 = 1.0 - iv_alpha; temp = 1.0 / a0 * (gain * b0 * inData[l1][l2] + b1 * buf[0][l1] + b2 * buf[1][l1] - a1 * buf[2][l1] - a2 * buf[3][l1]); data[0][l1][l2]=temp; buf[1][l1] = buf[0][l1]; buf[0][l1] = gain * inData[l1][l2]; buf[3][l1] = buf[2][l1]; buf[2][l1] = temp;//data[0][l1][l2]; } } break; } case VCF_BPF_I: { double temp; q0 = resonance; freq_tune = 5.0313842f + freq; gain_linfm = 1000.0f * vcfLinFMGain; for (l1 = 0; l1 < synthdata->poly; ++l1) { for (l2 = 0; l2 < synthdata->cyclesize; ++l2) { f = synthdata->exp2_table(freq_tune + freqData[l1][l2] + vcfExpFMGain * expFMData[l1][l2]) + gain_linfm * linFMData[l1][l2]; if (f < MIN_FREQ) f = MIN_FREQ; else if (f > MAX_FREQ) f = MAX_FREQ; q = q0 + resonanceGain * resonanceData[l1][l2]; if (q < 0.01) q = 0.01; else if (q > 1.0) q = 1.0; iv_sin = sin(pi2_rate * f); iv_cos = cos(pi2_rate * f); iv_alpha = iv_sin/(64.0 * q); b0 = q * iv_alpha; b1 = 0.0; b2 = -q * iv_alpha; a0 = 1.0 + iv_alpha; a1 = -2.0 * iv_cos; a2 = 1.0 - iv_alpha; temp = 1.0 / a0 * (gain * b0 * inData[l1][l2] + b1 * buf[0][l1] + b2 * buf[1][l1] - a1 * buf[2][l1] - a2 * buf[3][l1]); data[0][l1][l2]=temp; buf[1][l1] = buf[0][l1]; buf[0][l1] = gain * inData[l1][l2]; buf[3][l1] = buf[2][l1]; buf[2][l1] = temp;//data[0][l1][l2]; } } break; } case VCF_BPF_II: { double temp; q0 = resonance; freq_tune = 5.0313842f + freq; gain_linfm = 1000.0f * vcfLinFMGain; for (l1 = 0; l1 < synthdata->poly; ++l1) { for (l2 = 0; l2 < synthdata->cyclesize; ++l2) { f = synthdata->exp2_table(freq_tune + freqData[l1][l2] + vcfExpFMGain * expFMData[l1][l2]) + gain_linfm * linFMData[l1][l2]; if (f < MIN_FREQ) f = MIN_FREQ; else if (f > MAX_FREQ) f = MAX_FREQ; q = q0 + resonanceGain * resonanceData[l1][l2]; if (q < 0.01) q = 0.01; else if (q > 1.0) q = 1.0; iv_sin = sin(pi2_rate * f); iv_cos = cos(pi2_rate * f); iv_alpha = iv_sin/(64.0 * q); b0 = iv_alpha; b1 = 0.0; b2 = -iv_alpha; a0 = 1.0 + iv_alpha; a1 = -2.0 * iv_cos; a2 = 1.0 - iv_alpha; temp = 1.0 / a0 * (gain * b0 * inData[l1][l2] + b1 * buf[0][l1] + b2 * buf[1][l1] - a1 * buf[2][l1] - a2 * buf[3][l1]); data[0][l1][l2] = temp; buf[1][l1] = buf[0][l1]; buf[0][l1] = gain * inData[l1][l2]; buf[3][l1] = buf[2][l1]; buf[2][l1] = temp;//data[0][l1][l2]; } } break; } case VCF_NF: { double temp; q0 = resonance; freq_tune = 5.0313842f + freq; gain_linfm = 1000.0f * vcfLinFMGain; for (l1 = 0; l1 < synthdata->poly; ++l1) { for (l2 = 0; l2 < synthdata->cyclesize; ++l2) { f = synthdata->exp2_table(freq_tune + freqData[l1][l2] + vcfExpFMGain * expFMData[l1][l2]) + gain_linfm * linFMData[l1][l2]; if (f < MIN_FREQ) f = MIN_FREQ; else if (f > MAX_FREQ) f = MAX_FREQ; q = q0 + resonanceGain * resonanceData[l1][l2]; if (q < 0.01) q = 0.01; else if (q > 1.0) q = 1.0; iv_sin = sin(pi2_rate * f); iv_cos = cos(pi2_rate * f); iv_alpha = iv_sin/(64.0 * q); b0 = 1.0; b1 = -2.0 * iv_cos; b2 = 1.0; a0 = 1.0 + iv_alpha; a1 = -2.0 * iv_cos; a2 = 1.0 - iv_alpha; temp = 1.0 / a0 * (gain * b0 * inData[l1][l2] + b1 * buf[0][l1] + b2 * buf[1][l1] - a1 * buf[2][l1] - a2 * buf[3][l1]); data[0][l1][l2] = temp;// conversion buf[1][l1] = buf[0][l1]; buf[0][l1] = gain * inData[l1][l2]; buf[3][l1] = buf[2][l1]; buf[2][l1] = temp;//data[0][l1][l2]; } } break; } case VCF_MOOG1: {// Timo Tossavainen version double b_noiseout; int i_noise; q0 = resonance; freq_tune = 5.0313842f + freq; gain_linfm = 1000.0f * vcfLinFMGain; for (l1 = 0; l1 < synthdata->poly; ++l1) { for (l2 = 0; l2 < synthdata->cyclesize; ++l2) { f = synthdata->exp2_table(freq_tune + freqData[l1][l2] + vcfExpFMGain * expFMData[l1][l2]) + gain_linfm * linFMData[l1][l2]; if (f < MIN_FREQ) f = MIN_FREQ; else if (f > MAX_FREQ2) f = MAX_FREQ2; q = q0 + resonanceGain * resonanceData[l1][l2]; if (q < 0.01) q = 0.01; else if (q > 1.0) q = 1.0; fa = inv2_rate * f; moog_f = fa * 1.16f; revMoog = 1.0f - moog_f; moog2times= moog_f * moog_f; fb = 4.1 * q * (1.0 - 0.15 * moog2times); // generate dither (?) noise b_noise = b_noise * b_noise; i_noise = (int)b_noise; b_noise = b_noise - i_noise; b_noiseout = b_noise - 1.5; // was - 0.5 now with - 1.0 b_noise = b_noise + 19.0; in[0][l1] = gain * inData[l1][l2] + 0.000001 * b_noiseout;//((float)rand() * fInvertRandMax - 1.0); in[0][l1] -= fb * buf[4][l1]; in[0][l1] *=0.35013 * (moog2times * moog2times); buf[1][l1] = in[0][l1] + 0.3 * in[1][l1] + revMoog * buf[1][l1]; in[1][l1] = in[0][l1]; buf[2][l1] = buf[1][l1] + 0.3 * in[2][l1] + revMoog * buf[2][l1]; in[2][l1] = buf[1][l1]; buf[3][l1] = buf[2][l1] + 0.3 * in[3][l1] + revMoog * buf[3][l1]; in[3][l1] = buf[2][l1]; buf[4][l1] = buf[3][l1] + 0.3 * in[4][l1] + revMoog * buf[4][l1]; in[4][l1] = buf[3][l1]; data[0][l1][l2] = buf[4][l1]; } } break; } case VCF_MOOG2: // Paul Kellet version { double b_noiseout; int i_noise; q0 = resonance; freq_tune = 5.0313842f + freq; gain_linfm = 1000.0f * vcfLinFMGain; for (l1 = 0; l1 < synthdata->poly; ++l1) { for (l2 = 0; l2 < synthdata->cyclesize; ++l2) { f = synthdata->exp2_table(freq_tune + freqData[l1][l2] + vcfExpFMGain * expFMData[l1][l2]) + gain_linfm * linFMData[l1][l2]; if (f < MIN_FREQ) f = MIN_FREQ; else if (f > MAX_FREQ2) f = MAX_FREQ2; qr = q0 + resonanceGain * resonanceData[l1][l2]; if (qr < 0.01) qr = 0.01; else if (qr > 1.0) qr = 1.0; fb = inv2_rate * f; q = 1.0 - fb; p = fb + 0.8 * fb * q; fa = p + p - 1.0; q = qr * (1.0 + 0.5 * q * (1.0 - q + 5.6 * q * q)); // generate dither (?) noise b_noise = b_noise * b_noise; i_noise = (int)b_noise; b_noise = b_noise - i_noise; b_noiseout = b_noise - 1.5;// was 0.5 b_noise = b_noise + 19.0; in[0][l1] = gain * inData[l1][l2] + 0.000001 * b_noiseout;//* ((float)rand() * fInvertRandMax - 1.0); in[0][l1] -= q * buf[4][l1]; if (in[0][l1] < -1.0) in[0][l1] = -1.0; if (in[0][l1] > 1.0) in[0][l1] = 1.0; t1 = buf[1][l1]; buf[1][l1] = (in[0][l1] + buf[0][l1]) * p - buf[1][l1] * fa; t2 = buf[2][l1]; buf[2][l1] = (buf[1][l1] + t1) * p - buf[2][l1] * fa; t1 = buf[3][l1]; buf[3][l1] = (buf[2][l1] + t2) * p - buf[3][l1] * fa; buf[4][l1] = (buf[3][l1] + t1) * p - buf[4][l1] * fa; buf[4][l1] -= buf[4][l1] * buf[4][l1] * buf[4][l1] * 0.166667; buf[0][l1] = in[0][l1]; data[0][l1][l2] = buf[4][l1]; } } break; } } } ams-2.0.1/src/m_midiout.h0000664000076400007640000000115111051103053012136 00000000000000#ifndef M_MIDIOUT_H #define M_MIDIOUT_H #include "module.h" #define MODULE_MIDIOUT_WIDTH 90 #define MODULE_MIDIOUT_HEIGHT 100 class M_midiout : public Module { Q_OBJECT float mixer_gain[2], triggerLevel; int midiMode, offset[2], controller[2], channel; Port *port_in[2], *port_M_trigger; bool trigger[MAXPOLY]; int triggeredNote[2][MAXPOLY], lastmididata[2][MAXPOLY]; public: float **inData[2], **triggerData; public: M_midiout(QWidget* parent=0); ~M_midiout(); void generateCycle(); }; #endif ams-2.0.1/src/m_stereomix.h0000664000076400007640000000154011051103067012512 00000000000000#ifndef M_STEREOMIX_H #define M_STEREOMIX_H #include "module.h" #include "midiguicomponent.h" #define MODULE_STEREOMIX_WIDTH 115 #define MODULE_STEREOMIX_HEIGHT 40 #define MAX_STEREOMIX_IN 16 class M_stereomix : public Module { Q_OBJECT class MCableMute; class MCableSolo; QList in_port_list; Port *port_out[2]; float gain; float mixer_gain[MAX_STEREOMIX_IN], pan[MAX_STEREOMIX_IN]; float mute[MAX_STEREOMIX_IN], solo[MAX_STEREOMIX_IN]; bool ignore_check; unsigned solo_index; void soloed(float &s); void updateSolos(MidiGUIcomponent *sender); public: float **inData[MAX_STEREOMIX_IN]; unsigned in_channels; public: M_stereomix(int p_in_channels, QWidget* parent=0); void generateCycle(); }; #endif ams-2.0.1/src/midislider.h0000664000076400007640000000051511051103102012273 00000000000000#ifndef MIDISLIDER_H #define MIDISLIDER_H #include "midisliderbase.h" /** *@author Karsten Wiese */ class MidiSlider : public MidiSliderBase { public: MidiSlider(class MidiControllableFloat &mcAble, Qt::Orientation orientation = Qt::Horizontal); virtual MidiGUIcomponent *createTwin(); void minMaxChanged(); }; #endif ams-2.0.1/src/translations/0000777000076400007640000000000011315252054012615 500000000000000ams-2.0.1/src/translations/ams_fr.ts0000664000076400007640000037632511315251324014371 00000000000000 ColorWidget Change... Changer... ConfigDialog &Remove Module &Supprimer le Module Function Out %1 GuiWidget &Add Preset &Ajouter Preset &Overwrite Preset &Remplacer Preset Presets for this configuration: 0 Presets pour cette configuration: 0 Presets for this configuration: %1 Presets pour cette configuration: %1 LadspaDialog Ladspa Browser Explorateur LADSPA &Search &Rechercher &Export control ports as module ports &Exporter les ports contrôle comme ports module &Create Plugin &Créer Plugin Create &Poly Plugin Créer &Poly Plugin Label: Label: Author: Auteur: Copyright: Copyright: M_ad Analog Driver %1 Out Detune Amplitude Detune Modulation Detune Rate Drift Amplitude Drift Modulation Drift Rate Display Voice Detune %1 Drift %1 Autotune Bypass CV In CV Out %1 Parameter M_advenv Advanced ENV Gate Retrigger Inverse Out Time Scale / Sustain / Delay Attack Time Attack Level Release Time Release Level Time Scale Sustain Delay Attack Time 0 Attack Level 0 Attack Time 1 Attack Level 1 Attack Time 2 Attack Level 2 Attack Time 3 Release Time 0 Release Level 0 Release Time 1 Release Level 1 Release Time 2 M_advmcv Advanced MCV Gate Freq Velocity Trigger Aftertouch Pitchbend Controller %1 Note Offset Pitch M_amp Amplifier In Out Gain M_conv Converter V/Octave --> Hz V/Octave --> 0..1, 1=rate/2 V/Octave --> 0..1, 1=20000 Hz Conversion Mode Octave Offset M_cvs CV Source M_delay Delay In Out M_dynamicwaves DynamicWaves %1 M_env ENV Gate Retrigger Out Inverse Out ADSR Delay / Hold / Time Scale Delay Attack Hold Decay Sustain Release Time Scale M_function Function In Out %1 Function %1 -> 1 ID %2 Move Point Shift X Shift Y Scale X Scale Y Reset Linear Mouse X: _____ Y: _____ Mode Edit Function Zoom M_inv Inverter M_ladspa Poly Name: Author: Auteur: Copyright: Copyright: M_lfo LFO Reset Sine Triangle Saw Up Saw Down Rectangle S & H Frequency Phi0 M_mcv MCV Gate Freq Velocity Trigger Note Offset Pitch M_midiout Midi Out In 0 In 1 Trigger Gain / Offset / Trigger Level MIDI Settings MIDI Channel Gain 0 Gain 1 Offset 0 Offset 1 In 0/1: Controller In 0: Controller In 1: Pitchbend In 0/1: Note In 0: Note, In 1: Velocity MIDI Event Type Controller 0 Controller 1 Trigger Level M_mix Mixer %1 Gain In %1 Volume %1 Out M_mphlfo Multiphase LFO Frequency (Hz) Gain Saw Gain Triangle Saw Up Saw Down Saw Up (0..135) / Saw Down (180..315) Saw Mode M_noise Noise White Pink Random Random Rate Random Level M_noise2 Noise2 White Random Pink Noise Type Random Rate Random Level M_pcmin PCM In Gain Volume 1 Volume 2 M_pcmout PCM Out Gain Volume 1 Volume 2 Disabled Per Cycle Keep Reevaluate Automatic Gain Control M_quantizer Quantizer In Trigger Transpose Trigger Out 1/12 1/6 Major Scale Minor Scale Major Chord Minor Chord Major 7 Chord Minor 7 Chord Major 6 Chord Minor 6 Chord Pentatonic Quantization M_ringmod Ring Modulator In 0 In 1 Out Gain M_scmcv Scala MCV Gate Freq Velocity Trigger Scale Offset Note Offset Pitch Scale: Load Scale Load Scala Scala files (*.scl) Could not load Scala file '%1' M_scope Scope In 0 In 1 Time Scale Gain Trigger Continuous Triggered Single Refresh Mode Rising Falling Trigger Edge Trigger Level M_scquantizer Scala Quantizer In Trigger Transpose Out Trigger Out Note Offset Scale: Load Scala Could not load Scala file '%1' M_seq SEQ Trigger Gate Freq Velocity Pitch Offset / Tempo / Gate Time M_sh Sample & Hold In Trigger Out Gate Trigger Level M_slew Slew Limiter In Out Time Up Time Down M_spectrum Spectrum In 0 In 1 Spectrum ID %1 Gain (dB) Frequency Zoom Normal Spectrum Spectrum over Time Display Mode Continuous Single Mouse Refresh Mode Each Line Global Fixed Normalization Mode Power Spectrum Abs dB Spectrum Mode Hamming Bartlett Hanning Welch Window Size Zoom Mode / Window M_stereomix Stereo Mixer %1 Master Volume In %1 Mute %1 Solo %1 Volume %1 Pan %1 M_vca Exp. VCA Lin. VCA Gain 0 Gain 1 In 0 In 1 Out Gain Output level M_vcdoubledecay VC Double Decay Gate Retrigger Attack Decay Sustain Release Ratio Out Attack Offset Decay Offset Sustain Offset Ratio Offset Release Offset Attack Gain Decay Gain Sustain Gain Ratio Gain Release Gain M_vcenv VC Envelope Gate Retrigger Attack Decay Sustain Release Out Attack Offset Decay Offset Sustain Offset Release Offset Attack Gain Decay Gain Sustain Gain Release Gain Time Scale Linear Exponential Decay/Release Mode M_vcenv2 VC Envelope II Gate Retrigger Attack Decay Sustain Release Out Attack Offset Decay Offset Sustain Offset Release Offset Attack Gain Decay Gain Sustain Gain Release Gain M_vcf VCF In Freq Exp. FM Lin. FM Resonance Out Resonant Lowpass Lowpass Highpass Bandpass I Bandpass II Notch 24 dB Lowpass I 24 dB Lowpass II VCF Type Input Gain Frequency Exp. FM Gain Lin. FM Gain Resonance Gain M_vco VCO Freq Exp. FM Lin. FM PW Sine Triangle Saw Rectangle Aux Frequency Octave Tune Harmonic Subharmonic Pulse Width / Phase PW Gain Phi0 Modulation / Aux Waveform Saw 1 Saw 2 Aux Wave Form Exp. FM Gain Lin. FM Gain M_vco2 VCO2 Freq Exp. FM Lin. FM PW Out Frequency Sine Triangle Sawtooth Rectangle Aux Saw Aux Saw 1 Aux Saw 2 Wave Form Octave Tune Harmonic Subharmonic Pulse Width / Phase PW Gain Phi0 Modulation / Aux Waveform Exp. FM Gain Lin. FM Gain M_vcorgan VC Organ Freq Exp. FM Lin. FM Out Sine Saw Tri Rect Saw 2 Tune / Modulation Octave Tune Exp. FM Gain Lin. FM Gain Mixer Volume %1 Mixer 0-3 Mixer 4-7 Osc %1 Wave Form %1 Octave %1 Tune %1 Harmonic %1 Subharmonic %1 Phi0 %1 M_vcpanning VC Panning In Pan CV Pan Offset Pan Gain VC control Fixed alternating panorama, full width Fixed alternating panorama, half width Fixed alternating panorama, quarter width Sort by pitch, Low <--> High Sort by pitch, High <--> Low Mono Panning Mode M_vcswitch VC Switch CV In 0 In 1 Out 0 Out 1 Mix Switch Level M_vquant Quantizer 2 In Out Gain M_wavout WAV Out File Record Gain Time: 0:00:00 &New File &Overwrite Current File &Record &Stop &Gain Volume 1 Volume 2 Disbled Enabled &Automatic Gain Control Choose Wave File WAV files (*.wav) Time: %1:%2:%3 MainWindow &File &Fichier &Synthesis &Synthèse &Module &Module &View &Affichage &Help Ai&de &New &Nouveau &Open... &Ouvrir... &Recently opened files Fichiers &Récents &Save &Enregistrer Save &as... Enregistrer &sous... &Load Colors... &Charger Couleurs... Save &Colors as... En&registrer Couleurs sous... &Quit &Quitter &Start &Démarrer Sto&p &Arrêter &All Voices Off Arrêter tous les &voix Amplifier Analog Driver (2 Out) Analog Driver (4 Out) Analog Driver (6 Out) Advanced ENV Advanced MCV Comment Converter CVS Delay Dynamic Waves (4 Oscillators) Dynamic Waves (6 Oscillators) Dynamic Waves (8 Oscillators) ENV Function 1 --> 1 Function 1 --> 2 Function 1 --> 4 INV LFO MCV MIDI Out Mixer 2 -> 1 Mixer 4 -> 1 Mixer 8 -> 1 Multiphase LFO Noise / Random Noise / Random 2 PCM Out PCM In Quantizer Quantizer 2 Ring Modulator Sample && Hold Scala MCV Scala Quantizer Scope View SEQ 8 SEQ 12 SEQ 16 SEQ 24 SEQ 32 Slew Limiter Spectrum View Stereo Mixer 2 Stereo Mixer 4 Stereo Mixer 8 VC Double Decay VC Envelope VC Envelope II VC Organ (4 Oscillators) VC Organ (6 Oscillators) VC Organ (8 Oscillators) VC Panning VC Switch VCA lin. VCA exp. VCF VCO VCO2 WAV Out &Show Ladspa Browser... &Afficher l'explorateur LADSPA... &Control Center... &Centre de Contrôle... &Parameter View... Vue &Paramètres... Pre&ferences... Pré&férences... &About AlsaModularSynth... &A propos d'AlsaModularSynth... About &Qt... A propos de &Qt... Unnamed file was changed. Save changes? Le fichier sans nom a été modifié. Enregistrer les modifications? File '%1' was changed. Save changes? Le fichier '%1' a été modifié. Enregistrer les modifications? Save changes Enregistrer les modifications &Yes &Oui &No &Non Cancel Annuler Open patch file Ouvrir fichier patch Patch files Fichiers patch Could not read file '%1' Echec de lecture du fichier '%1' Could not open file '%1' Echec d'ouverture du fichier '%1' Save patch file Enregistrer fichier patch Saving aborted Enregistrement annulé noname sansnom About Qt A propos de Qt MidiControllerModel type: %1 channel: %2 param: %3 type: %1 canal: %2 param: %3 Module Module MIDI Controller / Parameter Controleur MIDI / Paramètre Type: %1 Channel: %2 Param: %3 MidiWidget &Log &Log Set Mi&n Définir Mi&n Set Ma&x Définir Ma&x &Reset Min/Max &Réinitialiser Min/Max Omni Omni MIDI C&hannel: Canal &MIDI: Add to &Parameter View Ajouter à la Vue &Paramètres &Enable note events Activer les &Evênements de Notes &Follow Configuration Dialog Suivre &Fenêtre de Configuration Follow &MIDI Suivre entrée &MIDI &Bind &Relier &Clear Binding &Séparer Clear &All &Tout Séparer &Toggle MIDI Sign &Inverser Signe MIDI This will erase all presets for this configuration. Continue? Ceci effacera tous les presets pour cette configuration. Continuer? Add this parameter to frame: Ajouter ce paramètre au cadre: Frame '%1' does not exist. Create? Le cadre '%1' n'existe pas. Créer? Add frame to tab: Ajouter le cadre à l'onglet: Tab '%1' does not exist. Create? L'onglet '%1' n'existe pas. Créer? Parameter name: Nom du paramètre: ModularSynth AlsaModularSynth Control Center Centre de Contrôle AlsaModularSynth AlsaModularSynth Parameter View Vue Paramètres AlsaModularSynth AlsaModularSynth Preferences Préférences AlsaModularSynth About A propos de Load Colors Charger Couleurs AlsaModularSynth Color files (*.acs) Fichiers Couleurs AlsaModularSynth (*.acs) Could not open file. Echec d'ouverture du fichier. Save Colors Enregistrer Couleurs Could not save file. Echec d'enregistrement fichier. Could not find LADSPA plugin "%1" from library "%2". Plugin LADSPA "%1" de la librairie "%2" non trouvé. Input port %1 of module %2 is already connected. New connection to module %3 ignored. Le port d'entrée %1 du module %2 est déjà connecté. Nouvelle connexion au module %3 ignorée. Unknown MIDI controller tag found: %1 Tag controleur MIDI inconnu détecté: %1 Loading LADSPA plugin "%1" from library "%2". AlsaModularSynth Color files Module ID %1 ID %1 ModuleModel MIDI Sign Signe MIDI Module / Parameter Module / Paramètre MultiEnvelope Multi Envelope Env. %1 PopupMenu &Disconnect &Déconnecter De&fault Cable Cable &Standard Gr&ay Cable Cable &Gris &Red Cable Cable &Rouge &Green Cable Cable &Vert &Blue Cable Cable &Bleu &Yellow Cable Cable &Jaune Set &Jack Color... Définir Couleur &Jack... Set &Cable Color... Définir Couleur &Cable... PrefWidget &Colors &Couleurs &MIDI &MIDI &Paths &Chemins Background Color Couleur de Fond Module Background Color Fond des Modules Module Border Color Cadre des Modules Module Font Color Police des Modules Cable Color Couleur des Cables Jack Color Couleur des Jacks &Default colors Couleurs &Standards M&IDI Controller Mode: Mode Controleur M&IDI: Avoid Parameter Jumps Eviter les sauts de paramètres Init MIDI Controller Initialiser le controleur MIDI Follow MIDI Controller Suivre le controleur MIDI &Load Path: Chemin de &chargement: &Browse... &Explorer... &Save Path: Chemin d'&enregistrement: Bro&wse... E&xplorer... &Apply &Appliquer OK OK Cancel Annuler Choose Load Path Choisir le chemin de chargement Choose Save Path Choisir le chemin d'enregistrement &Editing Box movement: Standard No topleft border QObject Could not create ams home directory. Echec de création du repertoire ams home. Failed to open file '%1' Echec d'ouverture du fichier '%1' Ooops in %1 at %2 Ooops dans %1 à %2 Client name '%1' occupied. Nom du client '%1' déjà occupé. Preset path now %1 Chemin des Presets: %1 Loading preset %1 Chargement du Preset %1 Closing synthesizer... Fermeture du synthétiseur... Could not unlock preferences file. Echec de déverouillage du fichier de préférences. Alsa MIDI wont work! ALSA MIDI ne fonctionnera pas! Error opening ALSA sequencer. Erreur d'ouverture du séquenceur ALSA. Error creating sequencer write port. Erreur de création du port d'écriture du séquenceur. Error creating sequencer read port. Erreur de création du port de lecture du séquenceur. All available output ports are in use Tous les ports de sortie disponibles sont déjà utilisés All available input ports are in use Tous les ports d'entrée disponibles sont déjà utilisés No title for tab '%1' found. Titre pour l'onglet '%1' introuvable. No data for frame '%1' found. Données pour le cadre '%1' non trouvées. No parameter values found. Valeurs de paramètre introuvables. No parameter name '%1' found. Nom du paramètre '%1' non trouvé. No name for preset '%1' found. Nom du Preset '%1' non trouvé. Can't create ALSA thread with RT priority Echec d'établir un fil ALSA avec priorité RT Can't create ALSA thread Echec d'établir un fil ALSA Closing ALSA... Fermeture d'ALSA... Can't connect to JACK Echec de connexion à JACK Can't activate JACK Echec d'activation de JACK Closing JACK... Fermeture de JACK... TextEdit &Remove Comment &Supprimer le commentaire ams-2.0.1/src/translations/ams_de.ts0000664000076400007640000037337011315251324014347 00000000000000 ColorWidget Change... Ändern... ConfigDialog &Remove Module &Entferne Modul Function Out %1 GuiWidget &Add Preset &Overwrite Preset Presets for this configuration: 0 Presets for this configuration: %1 LadspaDialog Ladspa Browser &Search &Suchen &Export control ports as module ports &Create Plugin &Erzeuge Plugin Create &Poly Plugin Label: Bezeichnung: Author: Autor: Copyright: Copyright: M_ad Analog Driver %1 Out Detune Amplitude Detune Modulation Detune Rate Drift Amplitude Drift Modulation Drift Rate Display Voice Stimme Detune %1 Verstimmung %1 Drift %1 Autotune Bypass CV In CV Out %1 Parameter M_advenv Advanced ENV Gate Retrigger Inverse Out Time Scale / Sustain / Delay Attack Time Attack Level Release Time Release Level Time Scale Sustain Delay Attack Time 0 Attack Level 0 Attack Time 1 Attack Level 1 Attack Time 2 Attack Level 2 Attack Time 3 Release Time 0 Release Level 0 Release Time 1 Release Level 1 Release Time 2 M_advmcv Advanced MCV Gate Freq Velocity Trigger Aftertouch Pitchbend Controller %1 Note Offset Pitch M_amp Amplifier Verstärker In Out Gain M_conv Converter V/Octave --> Hz V/Octave --> 0..1, 1=rate/2 V/Octave --> 0..1, 1=20000 Hz Conversion Mode Octave Offset M_cvs CV Source M_delay Delay In Out M_dynamicwaves DynamicWaves %1 M_env ENV Gate Retrigger Out Inverse Out ADSR Delay / Hold / Time Scale Delay Attack Hold Decay Sustain Release Time Scale M_function Function Funktion In Out %1 Function %1 -> 1 ID %2 Move Point Shift X Shift Y Scale X Scale Y Reset Zurücksetzen Linear Mouse X: _____ Y: _____ Mode Modus Edit Function Zoom M_inv Inverter Invertierer M_ladspa Poly Name: Name: Author: Autor: Copyright: Copyright: M_lfo LFO Reset Zurücksetzen Sine Triangle Saw Up Saw Down Rectangle S & H Frequency Phi0 M_mcv MCV Gate Freq Velocity Trigger Note Offset Pitch M_midiout Midi Out In 0 In 1 Trigger Gain / Offset / Trigger Level MIDI Settings MIDI Channel Gain 0 Gain 1 Offset 0 Offset 1 In 0/1: Controller In 0: Controller In 1: Pitchbend In 0/1: Note In 0: Note, In 1: Velocity MIDI Event Type Controller 0 Controller 1 Trigger Level M_mix Mixer %1 Gain In %1 Volume %1 Out M_mphlfo Multiphase LFO Frequency (Hz) Gain Saw Gain Triangle Saw Up Saw Down Saw Up (0..135) / Saw Down (180..315) Saw Mode M_noise Noise White Pink Random Random Rate Random Level M_noise2 Noise2 White Random Pink Noise Type Random Rate Random Level M_pcmin PCM In Gain Volume 1 Volume 2 M_pcmout PCM Out Gain Volume 1 Volume 2 Disabled Per Cycle Keep Reevaluate Automatic Gain Control M_quantizer Quantizer In Trigger Transpose Trigger Out 1/12 1/6 Major Scale Minor Scale Major Chord Minor Chord Major 7 Chord Minor 7 Chord Major 6 Chord Minor 6 Chord Pentatonic Quantization M_ringmod Ring Modulator In 0 In 1 Out Gain M_scmcv Scala MCV Gate Freq Velocity Trigger Scale Offset Note Offset Pitch Scale: Load Scale Load Scala Scala files (*.scl) Could not load Scala file '%1' M_scope Scope In 0 In 1 Time Scale Gain Trigger Continuous Triggered Single Refresh Mode Rising Falling Trigger Edge Trigger Level M_scquantizer Scala Quantizer In Trigger Transpose Out Trigger Out Note Offset Scale: Load Scala Could not load Scala file '%1' M_seq SEQ Trigger Gate Freq Velocity Pitch Offset / Tempo / Gate Time M_sh Sample & Hold In Trigger Out Gate Trigger Level M_slew Slew Limiter In Out Time Up Time Down M_spectrum Spectrum In 0 In 1 Spectrum ID %1 Gain (dB) Frequency Zoom Normal Spectrum Spectrum over Time Display Mode Continuous Single Mouse Refresh Mode Each Line Global Fixed Normalization Mode Power Spectrum Abs dB Spectrum Mode Hamming Bartlett Hanning Welch Window Size Zoom Mode / Window M_stereomix Stereo Mixer %1 Master Volume In %1 Mute %1 Solo %1 Volume %1 Pan %1 M_vca Exp. VCA Lin. VCA Gain 0 Gain 1 In 0 In 1 Out Gain Output level M_vcdoubledecay VC Double Decay Gate Retrigger Attack Decay Sustain Release Ratio Out Attack Offset Decay Offset Sustain Offset Ratio Offset Release Offset Attack Gain Decay Gain Sustain Gain Ratio Gain Release Gain M_vcenv VC Envelope Gate Retrigger Attack Decay Sustain Release Out Attack Offset Decay Offset Sustain Offset Release Offset Attack Gain Decay Gain Sustain Gain Release Gain Time Scale Linear Exponential Decay/Release Mode M_vcenv2 VC Envelope II Gate Retrigger Attack Decay Sustain Release Out Attack Offset Decay Offset Sustain Offset Release Offset Attack Gain Decay Gain Sustain Gain Release Gain M_vcf VCF In Freq Exp. FM Lin. FM Resonance Out Resonant Lowpass Lowpass Tiefpass Highpass Hochpass Bandpass I Bandpass II Notch 24 dB Lowpass I 24 dB Lowpass II VCF Type Input Gain Frequency Exp. FM Gain Lin. FM Gain Resonance Gain M_vco VCO Freq Exp. FM Lin. FM PW Sine Triangle Saw Rectangle Aux Frequency Octave Tune Harmonic Subharmonic Pulse Width / Phase PW Gain Phi0 Modulation / Aux Waveform Saw 1 Saw 2 Aux Wave Form Exp. FM Gain Lin. FM Gain M_vco2 VCO2 Freq Exp. FM Lin. FM PW Out Frequency Sine Triangle Sawtooth Rectangle Aux Saw Aux Saw 1 Aux Saw 2 Wave Form Octave Tune Harmonic Subharmonic Pulse Width / Phase PW Gain Phi0 Modulation / Aux Waveform Exp. FM Gain Lin. FM Gain M_vcorgan VC Organ Freq Exp. FM Lin. FM Out Sine Saw Tri Rect Saw 2 Tune / Modulation Octave Tune Exp. FM Gain Lin. FM Gain Mixer Volume %1 Mixer 0-3 Mixer 4-7 Osc %1 Wave Form %1 Octave %1 Tune %1 Harmonic %1 Subharmonic %1 Phi0 %1 M_vcpanning VC Panning In Pan CV Pan Offset Pan Gain VC control Fixed alternating panorama, full width Fixed alternating panorama, half width Fixed alternating panorama, quarter width Sort by pitch, Low <--> High Sort by pitch, High <--> Low Mono Panning Mode M_vcswitch VC Switch CV In 0 In 1 Out 0 Out 1 Mix Switch Level M_vquant Quantizer 2 In Out Gain M_wavout Choose Wave File Wave-Datei wählen WAV files (*.wav) WAV-Dateien (*.wav) WAV Out File Record Gain Time: 0:00:00 &New File &Overwrite Current File &Record &Stop &Gain Volume 1 Volume 2 Disbled Enabled &Automatic Gain Control Time: %1:%2:%3 MainWindow &File &Datei &Synthesis &Klangsynthese &Module &Modul &View &Ansicht &Help &Hilfe &New &Neu &Open... &Öffnen... &Save &Speichern Save &as... Speichern &unter... &Quit &Beenden &Start &Starten Sto&p An&halten &All Voices Off &Alle Stimmen aus Amplifier Verstärker Analog Driver (2 Out) Analog Driver (4 Out) Analog Driver (6 Out) Advanced ENV Advanced MCV Comment Kommentar Converter CVS Delay Dynamic Waves (4 Oscillators) Dynamic Waves (6 Oscillators) Dynamic Waves (8 Oscillators) ENV Function 1 --> 1 Function 1 --> 2 Function 1 --> 4 INV LFO MCV MIDI Out Mixer 2 -> 1 Mixer 4 -> 1 Mixer 8 -> 1 Multiphase LFO Noise / Random Noise / Random 2 PCM Out PCM In Quantizer Quantizer 2 Ring Modulator Sample && Hold Scala MCV Scala Quantizer Scope View SEQ 8 SEQ 12 SEQ 16 SEQ 24 SEQ 32 Slew Limiter Spectrum View Stereo Mixer 2 Stereo Mixer 4 Stereo Mixer 8 VC Double Decay VC Envelope VC Envelope II VC Organ (4 Oscillators) VC Organ (6 Oscillators) VC Organ (8 Oscillators) VC Panning VC Switch VCA lin. VCA exp. VCF VCO VCO2 WAV Out &Show Ladspa Browser... &Control Center... &Kontrollzentrum... &Parameter View... &Parameteransicht... Pre&ferences... &Einstellungen... &About AlsaModularSynth... &Über AlsaModularSynth... Unnamed file was changed. Save changes? Die unbenannte Datei wurde geändert. Änderungen speichern? File '%1' was changed. Save changes? Die Datei '%1' wurde geändert. Änderungen speichern? Save changes Änderungen speichern &Yes &Ja &No &Nein Cancel Abbrechen Open patch file Patch files Could not read file '%1' Could not open file '%1' Save patch file Saving aborted Speichern abgebrochen noname unbenannt About &Qt... Über &Qt... About Qt Über Qt &Load Colors... &Farbschema laden... Save &Colors as... F&arbschema speichern unter... &Recently opened files &Zuletzt geöffnete Dateien MidiControllerModel Module Modul MIDI Controller / Parameter Type: %1 Channel: %2 Param: %3 MidiWidget &Log Set Mi&n Set Ma&x &Reset Min/Max Omni MIDI C&hannel: MIDI-&Kanal: Add to &Parameter View &Enable note events &Follow Configuration Dialog Follow &MIDI &Bind &Clear Binding Clear &All &Toggle MIDI Sign This will erase all presets for this configuration. Continue? Add this parameter to frame: Frame '%1' does not exist. Create? Add frame to tab: Tab '%1' does not exist. Create? Parameter name: Parametername: ModularSynth AlsaModularSynth Control Center AlsaModularSynth Parameter View AlsaModularSynth Parameteransicht AlsaModularSynth Preferences Load Colors Farben lasen AlsaModularSynth Color files (*.acs) Farbschemadateien (*.acs) Could not open file. Konnte Datei nicht öffnen. Save Colors Farben speichern Could not save file. Konnte Datei nicht speichern. Could not find LADSPA plugin "%1" from library "%2". Unknown MIDI controller tag found: %1 About Über Input port %1 of module %2 is already connected. New connection to module %3 ignored. Loading LADSPA plugin "%1" from library "%2". AlsaModularSynth Color files Module ID %1 ID %1 ModuleModel MIDI Sign Module / Parameter MultiEnvelope Multi Envelope Env. %1 PopupMenu &Disconnect &Trennen De&fault Cable &Standardkabel Gr&ay Cable Gr&aues Kabel &Red Cable &Rotes Kabel &Green Cable &Grünes Kabel &Blue Cable &Blaues Kabel &Yellow Cable G&elbes Kabel Set &Jack Color... Ste&ckerfarbe... Set &Cable Color... &Kabelfarbe... PrefWidget &Colors &Farben &MIDI &MIDI &Paths &Pfade Background Color Hintergrund Module Background Color Modulhintergrund Module Border Color Modulum&randung Module Font Color Schrift Cable Color Kabel Jack Color Stecker &Default colors &Voreinstellung M&IDI Controller Mode: Avoid Parameter Jumps Init MIDI Controller Follow MIDI Controller &Load Path: &Browse... &Wählen... &Save Path: Bro&wse... W&ählen... &Apply &Anwenden OK OK Cancel Abbrechen Choose Load Path Choose Save Path &Editing Box movement: Standard No topleft border QObject Ooops in %1 at %2 Preset path now %1 Loading preset %1 Error opening ALSA sequencer. Error creating sequencer write port. Error creating sequencer read port. All available output ports are in use All available input ports are in use Connection refused. Keine Verbindung möglich. No title for tab '%1' found. No data for frame '%1' found. No parameter values found. No parameter name '%1' found. No name for preset '%1' found. Can't create ALSA thread with RT priority Can't create ALSA thread Closing ALSA... Schließe ALSA-Verbindung... Can't connect to JACK Can't activate JACK Closing JACK... Schließe JACK-Verbindung... Could not create ams home directory. Client name '%1' occupied. Failed to open file '%1' Closing synthesizer... Schließe Synthesizer... Could not unlock preferences file. Alsa MIDI wont work! TextEdit &Remove Comment K&ommentar entfernen ams-2.0.1/src/m_scmcv.h0000664000076400007640000000157611051103060011610 00000000000000#ifndef M_SCMCV_H #define M_SCMCV_H #include #include "module.h" #define MODULE_SCMCV_WIDTH 90 #define MODULE_SCMCV_HEIGHT 120 #define MODULE_SCMCV_RESPONSE 32 class M_scmcv : public Module { Q_OBJECT private: float pitchbend; float scale_lut[128]; bool scale_lut_isRatio[128]; int scale_lut_length, pitch; float scale_notes[128]; Port *port_note_out, *port_gate_out, *port_velocity_out, *port_trig_out; QFileDialog *fileDialog; private: void calcScale(); public: int base, lastbase, channel; QString sclname, dirpath; float freq[MAXPOLY], lastfreq[MAXPOLY]; public: M_scmcv(QWidget* parent=0, QString *p_sclname = 0); void generateCycle(); public slots: void loadScale(const QString &p_sclname); void openBrowser(); }; #endif ams-2.0.1/src/midicontroller.cpp0000664000076400007640000000061711055600760013552 00000000000000#include "midicontroller.h" #include "midiguicomponent.h" #include "midicontrollable.h" void MidiControllerContext::setMidiValueRT(int value) { for (typeof(mcAbles.constBegin()) it = mcAbles.constBegin(); it != mcAbles.constEnd(); it++) { if ((*it)->setMidiValueRT(value)) { synthdata->mcSet.put(*it); synthdata->pipeMessage |= 1; } } } ams-2.0.1/src/textedit.h0000664000076400007640000000161111051113056012007 00000000000000#ifndef TEXTEDIT_H #define TEXTEDIT_H #include "box.h" #define TEXTEDIT_DEFAULT_WIDTH 200 #define TEXTEDIT_DEFAULT_HEIGHT 170 #define TEXTEDIT_NEW_X 50 #define TEXTEDIT_NEW_Y 50 class TextEdit: public Box { Q_OBJECT bool sizeDrag; public: int textEditID; class QTextEdit *textEdit; private: QPoint mousePressPos; public: TextEdit(QWidget* parent=0, const char *name=0); virtual ~TextEdit(); protected: virtual void paintEvent(class QPaintEvent *ev); virtual void mousePressEvent (class QMouseEvent* ); virtual void mouseReleaseEvent (QMouseEvent* ); virtual void mouseMoveEvent (QMouseEvent* ); signals: void dragged(QPoint pos); void sizeDragged(const QPoint&); void removeTextEdit(); public slots: virtual void removeThisTextEdit(); }; #endif ams-2.0.1/src/module.cpp0000644000076400007640000003720111257442016012010 00000000000000#include #include #include #include "configdialog.h" #include "intmidislider.h" #include "main.h" #include "midicheckbox.h" #include "midicombobox.h" #include "midicontrollable.h" #include "midislider.h" #include "modularsynth.h" #include "module.h" #include "port.h" #include "synthdata.h" int Module::portmemAllocated; Module::CtorVar Module::cv; Module::Module(M_typeEnum M_type, int outPortCount, QWidget* parent, const QString &name) : Box(parent, name) , alive(true) , connections(0) , data(NULL) , M_type(M_type) , outPortCount(outPortCount) { cv.reset(); cycleReady = false; synthdata->incModuleCount(); moduleID = synthdata->getModuleID(); getColors(); // colorBackground = synthdata->colorModuleBackground; // colorBorder = synthdata->colorModuleBorder; // colorFont = synthdata->colorModuleFont; synthdata->moduleList.append(this); // setPalette(QPalette(colorBackground, colorBackground)); setGeometry(MODULE_NEW_X, MODULE_NEW_Y, MODULE_DEFAULT_WIDTH, MODULE_DEFAULT_HEIGHT); configDialog = new ConfigDialog(*this); configDialog->setWindowTitle(name + " ID " + QString::number(moduleID)); QObject::connect(configDialog, SIGNAL(removeModuleClicked()), this, SLOT(removeThisModule())); if (outPortCount) portMemAlloc(outPortCount, true); } void Module::portMemAlloc(int outports, bool poly) { // TODO Caution, if poly is changed outPortCount = outports; data = (float ***)malloc(outPortCount * sizeof(float **)); int voices = poly ? synthdata->poly : 1; for (int l1 = 0; l1 < outPortCount; ++l1) { data[l1] = (float **)malloc(synthdata->poly * sizeof(float *)); int size = voices * synthdata->periodsize * sizeof(float); data[l1][0] = (float *)malloc(size); memset(data[l1][0], 0, size); portmemAllocated += size; for (int l2 = 1; l2 < synthdata->poly; ++l2) data[l1][l2] = data[l1][l2 - 1] + (poly ? synthdata->periodsize : 0); } } void Module::Delete() { int k; pthread_mutex_lock(&synthdata->rtMutex); switch (M_type) { default: break; case M_type_pcmout: k = synthdata->find_play_mod(this); if (k >= 0) synthdata->set_play_mod(k, 0); break; case M_type_pcmin: k = synthdata->find_capt_mod(this); if (k >= 0) synthdata->set_capt_mod(k, 0); break; case M_type_wavout: synthdata->wavoutModuleList.removeAll((M_wavout *)this); break; case M_type_scope: synthdata->scopeModuleList.removeAll((M_scope *)this); break; case M_type_midiout: synthdata->midioutModuleList.removeAll((M_midiout *)this); break; #ifdef OUTDATED_CODE case M_type_spectrum: synthdata->spectrumModuleList.remove((QObject *)m); break; #endif } pthread_mutex_unlock(&synthdata->rtMutex); bool updateActiveMidiControllers = true; alive = false; for (typeof(midiControllables.begin()) mcAI = midiControllables.begin(); mcAI != midiControllables.end(); ++mcAI) (*mcAI)->disconnect(&updateActiveMidiControllers); synthdata->midiWidget->removeModule(this); deleteLater(); } Module::~Module() { int l1; delete configDialog; qDeleteAll(midiControllables.begin(), midiControllables.end()); for (l1 = 0; l1 < portList.count(); ++l1) { Port *port = portList.at(l1); if (port != NULL) port->removeAllConnectedPorts(); } for (l1 = 0; l1 < outPortCount; ++l1) { free(data[l1][0]); portmemAllocated -= synthdata->poly * synthdata->periodsize * sizeof(float); free(data[l1]); } free(data); } void Module::addPort(Port *p) { portList.append(p); if (p->isInPort()) { p->move(0, cv.in_off + cv.in_index * cv.step); cv.in_index++; } else { p->move(width() - p->width(), cv.out_off + cv.out_index * cv.step); cv.out_index++; } connect(p, SIGNAL(portClicked(Port*)), this, SIGNAL(portSelected(Port*))); connect(p, SIGNAL(portDisconnected()), this, SIGNAL(portDisconnected())); } void Module::paint(QPainter &p) { QString qs; p.setPen(colorBorder); for (int i = 0; i < 3; ++i) { p.setPen(colorBorder.light(100 + 15 * i)); p.drawRect(i, i, width() - 2 * i - 1, height() - 2 * i - 1); } p.setPen(colorFont); p.setFont(synthdata->bigFont); p.drawText(10, 20, objectName()); p.setFont(synthdata->smallFont); qs = tr("ID %1").arg(moduleID); p.drawText(10, 32, qs); } void Module::paintEvent(QPaintEvent *) { QPainter p(this); paint(p); } void Module::showConfigDialog(const QPoint& pos) { configDialog->move(pos); configDialog->show(); configDialog->raise(); } void Module::removeThisModule() { emit removeModule(); } void Module::save(QTextStream& ts) { saveConnections(ts); saveParameters(ts); saveBindings(ts); } int Module::connected() { return connections; } void Module::saveConnections(QTextStream& ts) { Port *inport; Port *outport; for (int l1 = 0; l1 < portList.count(); ++l1) { inport = portList.at(l1); outport = inport->needsConnectionToPort(); if (outport != NULL) { ts << "ColorP " << inport->index << ' ' << outport->index << ' ' << inport->module->moduleID << ' ' << outport->module->moduleID << ' ' << inport->jackColor.red() << ' ' << inport->jackColor.green() << ' ' << inport->jackColor.blue() << ' ' << inport->cableColor.red() << ' ' << inport->cableColor.green() << ' ' << inport->cableColor.blue() << endl; } } } void Module::saveParameters(QTextStream& ts) { int l1, l2, l3; for (l1 = 0; l1 < configDialog->midiSliderList.count(); ++l1) { MidiControllableFloat &mcAbleF = dynamic_cast(configDialog->midiSliderList.at(l1)->mcAble); ts << "FSlider " << moduleID << ' ' << l1 << ' ' << mcAbleF.sliderVal() << ' ' << mcAbleF.getLog() << ' ' << mcAbleF.sliderMin() << ' ' << mcAbleF.sliderMax() << ' ' << mcAbleF.midiSign << endl; } for (l1 = 0; l1 < configDialog->intMidiSliderList.count(); ++l1) ts << "ISlider " << moduleID << ' ' << l1 << ' ' << configDialog->intMidiSliderList.at(l1)->mcAble.sliderVal() << ' ' << configDialog->intMidiSliderList.at(l1)->mcAble.midiSign << endl; for (l1 = 0; l1 < configDialog->floatIntMidiSliderList.count(); ++l1) ts << "LSlider " << moduleID << ' ' << l1 << ' ' << configDialog->floatIntMidiSliderList.at(l1)->mcAble.sliderVal() << ' ' << configDialog->floatIntMidiSliderList.at(l1)->mcAble.midiSign << endl; for (l1 = 0; l1 < configDialog->midiComboBoxList.count(); ++l1) ts << "ComboBox " << moduleID << ' ' << l1 << ' ' << configDialog->midiComboBoxList.at(l1)->mcAble.getValue() << ' ' << configDialog->midiComboBoxList.at(l1)->mcAble.midiSign << endl; for (l1 = 0; l1 < configDialog->midiCheckBoxList.count(); ++l1) ts << "CheckBox " << moduleID << ' ' << l1 << ' ' << configDialog->midiCheckBoxList.at(l1)->mcAble.getValue() << ' ' << configDialog->midiCheckBoxList.at(l1)->mcAble.midiSign << endl; for (l1 = 0; l1 < configDialog->functionList.count(); ++l1) { ts << "Function " << moduleID << ' ' << l1 << ' ' << configDialog->functionList.at(l1)->functionCount << ' ' << configDialog->functionList.at(l1)->pointCount << endl; for (l2 = 0; l2 < configDialog->functionList.at(l1)->functionCount; l2++) for (l3 = 0; l3 < configDialog->functionList.at(l1)->pointCount; l3++) { ts << "Point " << moduleID << ' ' << l1 << ' ' << l2 << ' ' << l3 << ' ' << configDialog->functionList.at(l1)->getPoint(l2, l3).x() << ' ' << configDialog->functionList.at(l1)->getPoint(l2, l3).y() << endl; } } } void Module::saveBindings(QTextStream& ts) { int l1, l2; for (l1 = 0; l1 < configDialog->midiSliderList.count(); ++l1) { for (l2 = 0; l2 < configDialog->midiSliderList.at(l1) ->mcAble.midiControllerList.count(); ++l2) { ts << "FSMIDI " << moduleID << ' ' << l1 << ' ' << configDialog->midiSliderList.at(l1) ->mcAble.midiControllerList.at(l2).type() << ' ' << configDialog->midiSliderList.at(l1) ->mcAble.midiControllerList.at(l2).ch() << ' ' << configDialog->midiSliderList.at(l1) ->mcAble.midiControllerList.at(l2).param() << endl; } } for (l1 = 0; l1 < configDialog->intMidiSliderList.count(); ++l1) { for (l2 = 0; l2 < configDialog->intMidiSliderList.at(l1) ->mcAble.midiControllerList.count(); ++l2) { ts << "ISMIDI " << moduleID << ' ' << l1 << ' ' << configDialog->intMidiSliderList.at(l1) ->mcAble.midiControllerList.at(l2).type() << ' ' << configDialog->intMidiSliderList.at(l1) ->mcAble.midiControllerList.at(l2).ch() << ' ' << configDialog->intMidiSliderList.at(l1) ->mcAble.midiControllerList.at(l2).param() << endl; } } for (l1 = 0; l1 < configDialog->floatIntMidiSliderList.count(); ++l1) { for (l2 = 0; l2 < configDialog->floatIntMidiSliderList.at(l1) ->mcAble.midiControllerList.count(); ++l2) { ts << "LSMIDI " << moduleID << ' ' << l1 << ' ' << configDialog->floatIntMidiSliderList.at(l1) ->mcAble.midiControllerList.at(l2).type() << ' ' << configDialog->floatIntMidiSliderList.at(l1) ->mcAble.midiControllerList.at(l2).ch() << ' ' << configDialog->floatIntMidiSliderList.at(l1) ->mcAble.midiControllerList.at(l2).param() << endl; } } for (l1 = 0; l1 < configDialog->midiComboBoxList.count(); ++l1) { for (l2 = 0; l2 < configDialog->midiComboBoxList.at(l1) ->mcAble.midiControllerList.count(); ++l2) { ts << "CMIDI " << moduleID << ' ' << l1 << ' ' << configDialog->midiComboBoxList.at(l1) ->mcAble.midiControllerList.at(l2).type() << ' ' << configDialog->midiComboBoxList.at(l1) ->mcAble.midiControllerList.at(l2).ch() << ' ' << configDialog->midiComboBoxList.at(l1) ->mcAble.midiControllerList.at(l2).param() << endl; } } for (l1 = 0; l1 < configDialog->midiCheckBoxList.count(); ++l1) { for (l2 = 0; l2 < configDialog->midiCheckBoxList.at(l1) ->mcAble.midiControllerList.count(); ++l2) { ts << "TMIDI " << moduleID << ' ' << l1 << ' ' << configDialog->midiCheckBoxList.at(l1) ->mcAble.midiControllerList.at(l2).type() << ' ' << configDialog->midiCheckBoxList.at(l1) ->mcAble.midiControllerList.at(l2).ch() << ' ' << configDialog->midiCheckBoxList.at(l1) ->mcAble.midiControllerList.at(l2).param() << endl; } } } void Module::getColors(void) { QColor alphaBack(synthdata->colorModuleBackground); alphaBack.setAlpha(203); setPalette(QPalette(alphaBack, alphaBack)); colorBorder = synthdata->colorModuleBorder; colorFont = synthdata->colorModuleFont; // update also port colors for (int l2 = 0; l2 < portList.count(); ++l2) { Port* port = portList.at(l2); port->setPalette(QPalette( synthdata->colorModuleBackground, synthdata->colorModuleBackground)); } } float **Module::getData(int index) { if (!cycleReady) { generateCycle(); cycleReady = true; } return data[index]; } void Module::incConnections() { if (connections++ == 0) configDialog->removeButtonShow(false); } void Module::decConnections() { if (--connections == 0) configDialog->removeButtonShow(true); } bool Module::hasModuleId(int id) { return (moduleID == id); } void Module::setModuleId(int id) { QString qs, qs2; if (moduleID != id) { moduleID = id; qs = configDialog->windowTitle(); qs2 = qs.left(qs.lastIndexOf(' ')); qs.sprintf(" %d", moduleID); configDialog->setWindowTitle(qs2+qs); } } MidiControllableBase* Module::getMidiControlableBase(int idx) { MidiControllableBase* mcb = NULL; if ((idx + 1) > midiControllables.count()) qWarning("MidiControllableBase index out of range (value = %d)", idx); else mcb = midiControllables.at(idx); return mcb; } Port* Module::getPortAt(int idx) { Port* p = NULL; if ((idx + 1) > portList.count()) { qWarning("Port index out of range (value = %d).", idx); } else p = portList.at(idx); return p; } Port* Module::getPortWithIndex(int idx) { Port* p = NULL; for (int i = 0; i < portList.count(); ++i) { p = portList.at(i); if (p != NULL && p->hasIndex(idx)) { break; } } if (p == NULL) qWarning("No port with index %d found.", idx); return p; } Port* Module::getInPortWithIndex(int idx) { Port* p = NULL; for (int i = 0; i < portList.count(); ++i) { p = portList.at(i); if (p != NULL && p->hasIndex(idx) && p->isInPort()) { break; } } if (p == NULL) qWarning("No input port with index %d found.", idx); return p; } Port* Module::getOutPortWithIndex(int idx) { Port* p = NULL; for (int i = 0; i < portList.count(); ++i) { p = portList.at(i); if (p != NULL && p->hasIndex(idx) && !p->isInPort()) { break; } } if (p == NULL) qWarning("No output port with index %d found.", idx); return p; } void Module::paintCablesToConnectedPorts(QPainter& painter) { int inportx, inporty, outportx, outporty; for (int i = 0; i < portList.count(); ++i) { Port* inport = portList.at(i); Port* outport = inport->needsConnectionToPort(); if (outport == NULL) continue; QColor cableColor, jackColor; QPen pen; QPainterPath path; int xShift = 30; cableColor = inport->cableColor; jackColor = outport->jackColor; // calculate cable path inportx = inport->pos().x() + x() - 10; outportx = outport->pos().x() + outport->width() + outport->module->x() + 10; inporty = inport->pos().y() + y() + inport->height()/2; outporty = outport->pos().y() + outport->module->y() + outport->height()/2; if (outportx > inportx) xShift += (outportx - inportx) >> 3; path.moveTo(inportx, inporty); path.cubicTo(inportx - xShift, inporty + 3, outportx + xShift, outporty + 3, outportx, outporty); // paint cable pen.setWidth(5); pen.setColor(cableColor.dark(120)); painter.strokePath(path, pen); pen.setWidth(3); pen.setColor(cableColor); painter.strokePath(path, pen); pen.setWidth(1); pen.setColor(cableColor.light(120)); painter.strokePath(path, pen); // paint jack painter.fillRect(inportx, inporty - 3, 11, 7, QBrush(jackColor.dark(120))); painter.fillRect(outportx - 11, outporty - 3, 11, 7, QBrush(jackColor.dark(120))); painter.fillRect(inportx, inporty - 2, 11, 5, QBrush(jackColor)); painter.fillRect(outportx - 11, outporty - 2, 11, 5, QBrush(jackColor)); painter.fillRect(inportx, inporty - 1, 11, 3, QBrush(jackColor.light(120))); painter.fillRect(outportx - 11, outporty - 1, 11, 3, QBrush(jackColor.light(120))); } } ams-2.0.1/src/m_slew.h0000664000076400007640000000066311051103066011451 00000000000000#ifndef M_SLEW_H #define M_SLEW_H #include "module.h" #define MODULE_SLEW_WIDTH 90 #define MODULE_SLEW_HEIGHT 75 class M_slew : public Module { Q_OBJECT Port *port_M_in, *port_out; float timeUp, timeDown; float lastData[MAXPOLY]; public: float **inData; public: M_slew(QWidget* parent=0); void generateCycle(); }; #endif ams-2.0.1/src/m_pcmout.cpp0000664000076400007640000000574111204265533012353 00000000000000#include #include #include #include "synthdata.h" #include "m_pcmout.h" #include "midicombobox.h" #include "midicontrollable.h" #include "port.h" M_pcmout::M_pcmout(QWidget* parent, int port) : Module(M_type_pcmout, 0, parent, tr("PCM Out")) { QString qs; setGeometry(MODULE_NEW_X, MODULE_NEW_Y, MODULE_PCMOUT_WIDTH, MODULE_PCMOUT_HEIGHT); gain = 0.5; ag = 1.0; mixer_gain[0] = 0.5; mixer_gain[1] = 0.5; polyroot = sqrt((double)synthdata->poly); agc = 0; qs.sprintf (" -> Out %2d", port); port_in[0] = new Port(qs, PORT_IN, 0, this); qs.sprintf(" -> Out %2d", port + 1); port_in[1] = new Port(qs, PORT_IN, 1, this); configDialog->addSlider(tr("Gain"), gain, 0, 1, false); configDialog->addSlider(tr("Volume 1"), mixer_gain[0], 0, 1, false); configDialog->addSlider(tr("Volume 2"), mixer_gain[1], 0, 1, false); QStringList agcNames; agcNames << tr("Disabled") << tr("Per Cycle") << tr("Keep") << tr("Reevaluate"); configDialog->addComboBox(tr("Automatic Gain Control"), agc, agcNames); if (synthdata->withAlsa) { pcmdata[0] = new float[2 * synthdata->periodsize]; pcmdata[1] = pcmdata[0] + synthdata->periodsize; } } void M_pcmout::mcAbleChanged(MidiControllableBase *mcAble) { if (configDialog->midiComboBoxList.count() < 1 || mcAble != &configDialog->midiComboBoxList.at(0)->mcAble) return; if (ag == ag_displayed) return; QString i3Name; if (ag == 1.0) i3Name = tr("Keep"); else QTextStream(&i3Name) << "K. " << ag; for (typeof(mcAble->mcws.constBegin()) mcw = mcAble->mcws.constBegin(); mcw != mcAble->mcws.constEnd(); mcw++) { MidiComboBox *b = dynamic_cast(*mcw); if (b) { b->comboBox->setItemText(2, i3Name); b->comboBox->update(); } } ag_displayed = ag; } M_pcmout::~M_pcmout() { if (synthdata->withAlsa) delete[] pcmdata[0]; } void M_pcmout::generateCycle() { int l1, l3; unsigned int l2; float max = 0.0; char pipeMessage = 0; if (agc == 3) { agc = 2; ag = 1.0; pipeMessage = 1; } for (l1 = 0; l1 < 2; l1++) { float **indata = port_in[l1]->getinputdata(); float mixgain = gain * mixer_gain[l1]; if (agc == 2) mixgain *= ag; int poly = synthdata->poly; if (poly > 1 && indata[1] == indata[0]) poly = 1; for (l2 = 0; l2 < synthdata->cyclesize; l2++) { pcmdata[l1][l2] = indata[0][l2]; for (l3 = 1; l3 < poly; l3++) pcmdata[l1][l2] += indata[l3][l2]; pcmdata[l1][l2] *= mixgain; if (agc && max < fabs(pcmdata[l1][l2])) max = fabs(pcmdata[l1][l2]); } } if (max > 0.999f) { max = 0.999f / max; for (l1 = 0; l1 < 2; l1++) for (l2 = 0; l2 < synthdata->cyclesize; l2++) pcmdata[l1][l2] *= max; if (agc == 2) { ag *= max; pipeMessage = 1; } } if (pipeMessage) { synthdata->mcSet.put(&configDialog->midiComboBoxList.at(0)->mcAble); synthdata->pipeMessage |= pipeMessage; } } ams-2.0.1/src/m_seq.h0000664000076400007640000000135511051103064011264 00000000000000#ifndef M_SEQ_H #define M_SEQ_H #include "module.h" #define MODULE_SEQ_WIDTH 90 #define MODULE_SEQ_HEIGHT 140 #define MODULE_SEQ_MAX_LEN 32 class M_seq : public Module { Q_OBJECT Port *port_trigger, *port_trigger_out, *port_note_out, *port_gate_out, *port_velocity_out; float seq_gate, seq_freq, seq_velocity; int seq_pos, tick, osc, note_len, triggerCount; int tickFrames, tickFramesRemain; public: int pitch[MODULE_SEQ_MAX_LEN], velocity[MODULE_SEQ_MAX_LEN]; int bpm, pitch_ofs, seqLen; float gate[MODULE_SEQ_MAX_LEN]; bool trigger, triggerOut; float **triggerData; public: M_seq(int p_seqLen, QWidget* parent=0); void generateCycle(); void nextStep(); }; #endif ams-2.0.1/src/configdialog.cpp0000644000076400007640000002334411150721750013150 00000000000000#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "synthdata.h" #include "configdialog.h" #include "midislider.h" #include "intmidislider.h" #include "midicheckbox.h" #include "midicombobox.h" #include "midicontrollable.h" #include "midipushbutton.h" #include "envelope.h" #include "multi_envelope.h" #include "scopescreen.h" #include "spectrumscreen.h" #include "function.h" ConfigDialog::ConfigDialog(Module &module) : QDialog(&module), addStretch(1) , removeButton(new QPushButton(tr("&Remove Module"))) , removeFrame(new QHBoxLayout()) , module(module) { QVBoxLayout *vBox = new QVBoxLayout(); setLayout(vBox); vBox->setMargin(0); vBox->setSpacing(0); configBox = new QVBoxLayout(); configBox->setMargin(5); configBox->setSpacing(5); vBox->addLayout(configBox); tabWidget = NULL; removeFrame->addStretch(); removeFrame->addWidget(removeButton); removeFrame->addStretch(); vBox->addLayout(removeFrame); removeButtonShow(true); QObject::connect(removeButton, SIGNAL(clicked()), this, SLOT(removeButtonClicked())); } ConfigDialog::~ConfigDialog() {} MidiSlider *ConfigDialog::addSlider(const QString &name, float &valueRef, float minValue, float maxValue, bool isLog, QBoxLayout *layout) { MidiControllableFloat * mcAble = new MidiControllableFloat(module, name, valueRef, minValue, maxValue, isLog); MidiSlider *midiSlider = new MidiSlider(*mcAble); insertWidget(layout, midiSlider); midiSliderList.append(midiSlider); return midiSlider; } int ConfigDialog::addFloatIntSlider(const QString &name, float &valueRef, float minValue, float maxValue, QBoxLayout *layout) { MidiControllable *mcAble = new MidiControllable(module, name, valueRef, minValue, maxValue); IntMidiSlider *intMidiSlider = new IntMidiSlider( GUIcomponentType_floatintslider, *mcAble); insertWidget(layout, intMidiSlider); floatIntMidiSliderList.append(intMidiSlider); return 0; } IntMidiSlider *ConfigDialog::addIntSlider(const QString &name, int &valueRef, int minValue, int maxValue, QBoxLayout *layout) { MidiControllable * mcAble = new MidiControllable(module, name, valueRef, minValue, maxValue); IntMidiSlider *intMidiSlider = new IntMidiSlider(GUIcomponentType_intslider, *mcAble); insertWidget(layout, intMidiSlider); intMidiSliderList.append(intMidiSlider); return intMidiSlider; } MidiComboBox *ConfigDialog::addComboBox(const QString &name, int &valueRef, const QStringList &itemNames, QBoxLayout *layout) { MidiControllableNames * mcAble = new MidiControllableNames(module, name, valueRef, itemNames); MidiComboBox *midiComboBox = new MidiComboBox(*mcAble); insertWidget(layout, midiComboBox, 0, Qt::AlignCenter); midiComboBoxList.append(midiComboBox); return midiComboBox; } int ConfigDialog::addCheckBox(const QString &name, float &valueRef, QBoxLayout *layout) { MidiControllable *mcAble = new MidiControllable(module, name, valueRef, 0, 1); return addCheckBox(*mcAble, layout); } int ConfigDialog::addCheckBox(MidiControllable &mcAble, QBoxLayout *layout) { MidiCheckBox *midiCheckBox; midiCheckBox = new MidiCheckBox(mcAble); insertWidget(layout, midiCheckBox, 0, Qt::AlignCenter); midiCheckBoxList.append(midiCheckBox); return 0; } MidiControllableDoOnce *ConfigDialog::addPushButton(const QString &name, QBoxLayout *layout) { MidiControllableDoOnce *mcAble = new MidiControllableDoOnce(module, name); MidiPushButton *midiPushButton; midiPushButton = new MidiPushButton(*mcAble); insertWidget(layout, midiPushButton, 0, Qt::AlignCenter); midiPushButtonList.append(midiPushButton); return mcAble; } int ConfigDialog::addEnvelope(MidiControllableFloat &delayRef, MidiControllableFloat &attackRef, MidiControllableFloat &holdRef, MidiControllableFloat &decayRef, MidiControllableFloat &sustainRef, MidiControllableFloat &releaseRef, QBoxLayout *layout) { Envelope *envelope = new Envelope(delayRef, attackRef, holdRef, decayRef, sustainRef, releaseRef); insertWidget(layout, envelope, 100, 0, 0); envelopeList.append(envelope); return(0); } MultiEnvelope *ConfigDialog::addMultiEnvelope(int envCount, float *timeScaleRef, float *attackRef, float *sustainRef, float *releaseRef, QBoxLayout *layout) { MultiEnvelope *envelope; envelope = new MultiEnvelope(envCount, timeScaleRef, attackRef, sustainRef, releaseRef); insertWidget(layout, envelope, 100); return envelope; } int ConfigDialog::addLabel(const QString& label, QBoxLayout *layout) { QLabel *configLabel; configLabel = new QLabel(); insertWidget(layout, configLabel); configLabel->setAlignment(/*Qt::WordBreak |*/ Qt::AlignLeft); configLabel->setText(label); labelList.append(configLabel); return(0); } void ConfigDialog::removeButtonClicked() { emit removeModuleClicked(); } int ConfigDialog::initTabWidget() { tabWidget = new QTabWidget(); configBox->insertWidget(configBox->count() - 1, tabWidget); return 0; } QHBoxLayout *ConfigDialog::addHBox(QBoxLayout *layout) { QHBoxLayout *hbox; if (!layout) layout = configBox; hbox = new QHBoxLayout(); layout->addLayout(hbox); if (addStretch > 0) layout->addStretch(addStretch); return hbox; } QVBoxLayout *ConfigDialog::addVBox(QBoxLayout *layout) { QVBoxLayout *vbox; if (!layout) layout = configBox; vbox = new QVBoxLayout(); layout->addLayout(vbox); if (addStretch > 0) layout->addStretch(addStretch); return vbox; } QVBoxLayout *ConfigDialog::addVBoxTab(const char *tabLabel) { return addVBoxTab(QString(tabLabel)); } QVBoxLayout *ConfigDialog::addVBoxTab(const QString &tabLabel) { QWidget *w = new QWidget(); tabWidget->addTab(w, tabLabel); return new QVBoxLayout(w); } int ConfigDialog::addLineEdit(const char *Name, QBoxLayout *layout) { QLineEdit *lineEdit; QHBoxLayout *line = addHBox(layout); // line->setSpacing(5); // line->setMargin(10); QLabel *nameLabel = new QLabel(); nameLabel->setText(Name); line->addWidget(nameLabel); lineEdit = new QLineEdit(); lineEditList.append(lineEdit); line->addWidget(lineEdit); return 0; } int ConfigDialog::addScopeScreen(float &timeScaleRef, int &modeRef, int &edgeRef, int &triggerModeRef, float &triggerThrsRef, float &zoomRef, QBoxLayout *layout) { ScopeScreen *scopeScreen; scopeScreen = new ScopeScreen(timeScaleRef, modeRef, edgeRef, triggerModeRef, triggerThrsRef, zoomRef); insertWidget(layout, scopeScreen, 1); scopeScreenList.append(scopeScreen); return(0); } #ifdef OUTDATED_CODE int ConfigDialog::addSpectrumScreen(QBoxLayout *layout) { SpectrumScreen *spectrumScreen; if (!parent) { spectrumScreen = new SpectrumScreen(NULL, "Spectrum"); } else { spectrumScreen = new SpectrumScreen(parent, "Spectrum"); } spectrumScreenList.append(spectrumScreen); return(0); } #endif int ConfigDialog::addFunction(int p_functionCount, int *p_mode, int *p_editIndex, tFunction &point, int p_pointCount, QBoxLayout *layout) { Function *function; function = new Function(p_functionCount, p_mode, p_editIndex, point, p_pointCount, NULL); insertWidget(layout, function, 1); functionList.append(function); return(0); } void ConfigDialog::insertWidget(QBoxLayout *layout, QWidget *widget, int stretch, Qt::Alignment alignment, int pos) { if (!layout) layout = configBox; layout->insertWidget(pos, widget, stretch, alignment); if (addStretch > 0) layout->addStretch(addStretch); } void ConfigDialog::removeButtonShow(bool show) { removeFrame->setEnabled(show); removeFrame->setMargin(show ? 5 : 0); removeButton->setVisible(show); } MidiSlider* ConfigDialog::getMidiSlider(int idx) { MidiSlider* ms = NULL; if ((idx + 1) > midiSliderList.count()) qWarning("Slider index out of range (value = %d)", idx); else ms = midiSliderList.at(idx); return ms; } IntMidiSlider* ConfigDialog::getIntMidiSlider(int idx) { IntMidiSlider* ims = NULL; if ((idx + 1) > intMidiSliderList.count()) qWarning("Integer slider index out of range (value = %d)", idx); else ims = intMidiSliderList.at(idx); return ims; } IntMidiSlider* ConfigDialog::getFloatIntMidiSlider(int idx) { IntMidiSlider* ims = NULL; if ((idx + 1) > floatIntMidiSliderList.count()) qWarning("Float slider index out of range (value = %d)", idx); else ims = floatIntMidiSliderList.at(idx); return ims; } MidiComboBox* ConfigDialog::getMidiComboBox(int idx) { MidiComboBox* mcb = NULL; if ((idx + 1) > midiComboBoxList.count()) qWarning("ComboBox index out of range (value = %d)", idx); else mcb = midiComboBoxList.at(idx); return mcb; } MidiCheckBox* ConfigDialog::getMidiCheckBox(int idx) { MidiCheckBox* mcb = NULL; if ((idx + 1) > midiCheckBoxList.count()) qWarning("CheckBox index out of range (value = %d)", idx); else mcb = midiCheckBoxList.at(idx); return mcb; } MidiPushButton* ConfigDialog::getMidiPushButton(int idx) { MidiPushButton* mpb = NULL; if ((idx + 1) > midiPushButtonList.count()) qWarning("PushButton index out of range (value = %d)", idx); else mpb = midiPushButtonList.at(idx); return mpb; } Function* ConfigDialog::getFunction(int idx) { Function* fnc = NULL; if ((idx + 1) > functionList.count()) qWarning("Function index out of range (value = %d)", idx); else fnc = functionList.at(idx); return fnc; } ams-2.0.1/src/textedit.cpp0000664000076400007640000000405511051113056012347 00000000000000#include #include #include #include #include #include #include "textedit.h" TextEdit::TextEdit(QWidget* parent, const char *name) : Box(parent, name) { QVBoxLayout *layout = new QVBoxLayout; textEdit = new QTextEdit(this); textEdit->setPalette(QPalette(QColor(77, 70, 64), QColor(250, 250, 250))); layout->addWidget(textEdit); QPushButton *removeButton = new QPushButton(tr("&Remove Comment"), this); QObject::connect(removeButton, SIGNAL(clicked()), this, SLOT(removeThisTextEdit())); layout->addWidget(removeButton); setLayout(layout); // synthdata->incTextEditCount(); // textEditID = synthdata->getTextEditID(); // synthdata->textEditList.append(this); textEditID = 0; // TODO assign this setPalette(QPalette(QColor(77, 70, 64), QColor(77, 70, 64))); setGeometry(TEXTEDIT_NEW_X, TEXTEDIT_NEW_Y, TEXTEDIT_DEFAULT_WIDTH, TEXTEDIT_DEFAULT_HEIGHT); sizeDrag = false; } TextEdit::~TextEdit() { // synthdata->textEditListList.removeRef(this); // synthdata->decTextEditCount(); } void TextEdit::paintEvent(QPaintEvent *) { QPainter p(this); int l1; for (l1 = 0; l1 < 4; l1++) { p.setPen(QColor(195 + 20*l1, 195 + 20*l1, 195 + 20*l1)); p.drawRect(l1, l1, width()-2*l1, height()-2*l1); } } void TextEdit::mousePressEvent(QMouseEvent *ev) { switch (ev->button()) { case Qt::MidButton: sizeDrag = true; mousePressPos = ev->pos(); ev->accept(); default: ev->ignore(); break; } } void TextEdit::mouseReleaseEvent(QMouseEvent *ev) { switch (ev->button()) { case Qt::MidButton: sizeDrag = false; ev->accept(); default: ev->ignore(); break; } } void TextEdit::mouseMoveEvent(QMouseEvent *ev) { if (sizeDrag) { emit sizeDragged(ev->pos()); ev->accept(); } else ev->ignore(); } void TextEdit::removeThisTextEdit() { emit removeTextEdit(); } ams-2.0.1/src/midisliderbase.cpp0000664000076400007640000000304111051103427013470 00000000000000#include #include #include "midisliderbase.h" #include "midicontrollable.h" /** *@author Karsten Wiese */ MidiSliderBase::MidiSliderBase(MidiControllableBase &mcAble, Qt::Orientation orientation) : MidiGUIcomponent(mcAble) , slider(orientation) { QVBoxLayout *sliderBox = new QVBoxLayout(this); sliderBox->setSpacing(0); sliderBox->setMargin(0); sliderBox->addWidget(&nameLabel, 0, Qt::AlignHCenter); QHBoxLayout *sliderLabels = new QHBoxLayout(); sliderBox->addLayout(sliderLabels); sliderLabels->addWidget(&minLabel, 0); sliderLabels->addWidget(&valueLabel, 0, Qt::AlignHCenter); sliderLabels->addWidget(&maxLabel, 0, Qt::AlignRight); updateMin(); updateMax(); slider.setPageStep(mcAble.sliderStep()); mcAbleChanged(); QObject::connect(&slider, SIGNAL(valueChanged(int)), this, SLOT(valueChanged(int))); sliderBox->addWidget(&slider); } void MidiSliderBase::valueChanged(int value) { mcAble.setVal(value, this); valueLabel.setText(mcAble.valString()); } void MidiSliderBase::updateMin() { minLabel.setText(mcAble.minString()); slider.blockSignals(true); slider.setMinimum(mcAble.sliderMin()); slider.blockSignals(false); } void MidiSliderBase::updateMax() { maxLabel.setText(mcAble.maxString()); slider.blockSignals(true); slider.setMaximum(mcAble.sliderMax()); slider.blockSignals(false); } void MidiSliderBase::mcAbleChanged() { slider.blockSignals(true); slider.setValue(mcAble.sliderVal()); slider.blockSignals(false); valueLabel.setText(mcAble.valString()); } ams-2.0.1/src/m_vcenv.cpp0000664000076400007640000001272411051103417012154 00000000000000#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "synthdata.h" #include "m_vcenv.h" #include "port.h" M_vcenv::M_vcenv(QWidget* parent) : Module(M_type_vcenv, 1, parent, tr("VC Envelope")) { QString qs; int l1; setGeometry(MODULE_NEW_X, MODULE_NEW_Y, MODULE_VCENV_WIDTH, MODULE_VCENV_HEIGHT); port_M_gate = new Port(tr("Gate"), PORT_IN, 0, this); port_M_retrigger = new Port(tr("Retrigger"), PORT_IN, 1, this); port_M_attack = new Port(tr("Attack"), PORT_IN, 2, this); port_M_decay = new Port(tr("Decay"), PORT_IN, 3, this); port_M_sustain = new Port(tr("Sustain"), PORT_IN, 4, this); port_M_release = new Port(tr("Release"), PORT_IN, 5, this); cv.out_off = 155; port_out = new Port(tr("Out"), PORT_OUT, 0, this); a0 = 0.01; d0 = 0.3; s0 = 0.7; r0 = 0.1; aGain = 0.0; dGain = 0.0; sGain = 0.0; rGain = 0.0; timeScale = 1; decayReleaseMode = 1; for (l1 = 0; l1 < synthdata->poly; l1++) { gate[l1] = false; retrigger[l1] = false; state[l1] = 0; noteActive[l1] = false; e[l1] = 0; old_e[l1] = 0; } configDialog->addSlider(tr("Attack Offset"), a0, 0, 1); configDialog->addSlider(tr("Decay Offset"), d0, 0, 1); configDialog->addSlider(tr("Sustain Offset"), s0, 0, 1); configDialog->addSlider(tr("Release Offset"), r0, 0, 1); configDialog->addSlider(tr("Attack Gain"), aGain, -1, 1); configDialog->addSlider(tr("Decay Gain"), dGain, -1, 1); configDialog->addSlider(tr("Sustain Gain"), sGain, -1, 1); configDialog->addSlider(tr("Release Gain"), rGain, -1, 1); QStringList timeScaleNames; timeScaleNames << " 0.1 s"; timeScaleNames << " 1.0 s"; timeScaleNames << "10.0 s"; configDialog->addComboBox(tr("Time Scale"), timeScale, timeScaleNames); QStringList decayReleaseModeNames; decayReleaseModeNames << tr("Linear"); decayReleaseModeNames << tr("Exponential"); configDialog->addComboBox(tr("Decay/Release Mode"), decayReleaseMode, decayReleaseModeNames); } void M_vcenv::generateCycle() { int l1, l2, l2_out; double ts, tsr, tsn, tmp, c, n, de; int k, len; gateData = port_M_gate->getinputdata (); retriggerData = port_M_retrigger->getinputdata (); attackData = port_M_attack->getinputdata (); decayData = port_M_decay->getinputdata (); sustainData = port_M_sustain->getinputdata (); releaseData = port_M_release->getinputdata (); switch(timeScale) { case 0: ts = 0.1; break; default: case 1: ts = 1.0; break; case 2: ts = 10.0; break; } tsr = 16.0 * ts / (double)synthdata->rate; tsn = ts * (double)synthdata->rate / 16.0; for (l1 = 0; l1 < synthdata->poly; l1++) { // fprintf(stderr, "gate:%d retrigger:%d noteActive:%d state: %d\n", gate[l1], retrigger[l1], noteActive[l1], state[l1]); len = synthdata->cyclesize; old_e[l1] = e[l1]; l2 = -1; l2_out = 0; do { k = (len > 24) ? 16 : len; l2 += k; len -= k; if (!gate[l1] && gateData[l1][l2] > 0.5) { gate[l1] = true; noteActive[l1] = true; state[l1] = 1; } if (gate[l1] && gateData[l1][l2] < 0.5) { gate[l1] = false; state[l1] = 4; } if (!retrigger[l1] && retriggerData[l1][l2] > 0.5) { retrigger[l1] = true; if (gate[l1]) { state[l1] = 1; } } if (retrigger[l1] && retriggerData[l1][l2] < 0.5) { retrigger[l1] = false; } switch (state[l1]) { case 0: e[l1] = 0; break; case 1: e[l1] += ((tmp = a0 + aGain * attackData[l1][l2]) > 0.001) ? tsr / tmp : tsr / 0.001; if (e[l1] >= 1.0) { state[l1] = 2; e[l1] = 1.0; } break; case 2: if (decayReleaseMode) { n = tsn * (d0 + dGain * decayData[l1][l2]); if (n < 1) n = 1; c = 2.3 / n; e[l1] *= exp(-c); } else { e[l1] -= ((tmp = d0 + dGain * decayData[l1][l2]) > 0.001) ? tsr / tmp : tsr / 0.001; } if (e[l1] <= s0 + sGain * sustainData[l1][l2] + 1e-20) { state[l1] = 3; } else { break; } case 3: e[l1] = s0 + sGain * sustainData[l1][l2]; break; case 4: if (decayReleaseMode) { n = tsn * (r0 + rGain * releaseData[l1][l2]); if (n < 1) n = 1; c = 2.3 / n; e[l1] *= exp(-c); } else { e[l1] -= ((tmp = r0 + rGain * releaseData[l1][l2]) > 0.001) ? tsr / tmp : tsr / 0.001; } if (e[l1] <= 1e-20) { e[l1] = 0; noteActive[l1] = false; } break; default: e[l1] = 0; } de = (e[l1] - old_e[l1]) / (double)k; while (k--) { old_e[l1] += de; data[0][l1][l2_out++] = old_e[l1]; } } while(len); } } ams-2.0.1/src/intmidislider.h0000664000076400007640000000045711051103036013021 00000000000000#ifndef INTMIDISLIDER_H #define INTMIDISLIDER_H #include "midisliderbase.h" class IntMidiSlider : public MidiSliderBase { public: IntMidiSlider(GUIcomponentType componentType, MidiControllableBase &mcAble, Qt::Orientation = Qt::Horizontal); virtual MidiGUIcomponent *createTwin(); }; #endif ams-2.0.1/src/m_advenv.h0000664000076400007640000000135111051103043011750 00000000000000#ifndef M_ADVENV_H #define M_ADVENV_H #include "module.h" #define MODULE_ADVENV_WIDTH 120 #define MODULE_ADVENV_HEIGHT 120 #define ADVENVELOPE_RESPONSE 256 class M_advenv : public Module { Q_OBJECT float attack[8], sustain, release[5]; float e_noteOff[MAXPOLY], de[MAXPOLY], de_release[MAXPOLY]; Port *port_gate, *port_retrigger, *port_inverse_out, *port_gain_out; public: float e[MAXPOLY]; float timeScale; bool noteActive[MAXPOLY], gate[MAXPOLY], retrigger[MAXPOLY]; int noteOnOfs[MAXPOLY]; int noteOffOfs[MAXPOLY]; float **gateData, **retriggerData; public: M_advenv(QWidget* parent=0); void generateCycle(); }; #endif ams-2.0.1/src/m_cvs.cpp0000664000076400007640000000243611051111565011630 00000000000000#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "synthdata.h" #include "m_cvs.h" #include "port.h" M_cvs::M_cvs(QWidget* parent) : Module(M_type_cvs, MODULE_CVS_CV_COUNT, parent, tr("CV Source")) { QString qs; int l1; setGeometry(MODULE_NEW_X, MODULE_NEW_Y, MODULE_CVS_WIDTH, MODULE_CVS_HEIGHT); for (l1 = 0; l1 < MODULE_CVS_CV_COUNT; l1++) { qs.sprintf("CV %d", l1); port_cv_out[l1] = new Port(qs, PORT_OUT, l1, this); } for (l1 = 0; l1 < MODULE_CVS_CV_COUNT; l1++) { cv[l1] = 0; cv_fine[l1] = 0; qs.sprintf("CV %d", l1); configDialog->addSlider(qs, cv[l1], 0, 5); qs.sprintf("CV %d Fine", l1); configDialog->addSlider(qs, cv_fine[l1], -0.5, 0.5); } } void M_cvs::generateCycle() { int l1, l3; unsigned int l2; for (l3 = 0; l3 < MODULE_CVS_CV_COUNT; l3++) { for (l1 = 0; l1 < synthdata->poly; l1++) { for (l2 = 0; l2 < synthdata->cyclesize; l2++) { data[l3][l1][l2] = cv[l3] + cv_fine[l3]; } } } } ams-2.0.1/src/m_delay.h0000664000076400007640000000075111051103046011571 00000000000000#ifndef M_DELAY_H #define M_DELAY_H #include "module.h" #define MODULE_DELAY_WIDTH 90 #define MODULE_DELAY_HEIGHT 75 #define MAX_DELAY_FRAMES 16384 class M_delay : public Module { Q_OBJECT float delay; int read_ofs; Port *port_M_in, *port_out; public: float **inData, **buf; public: M_delay(QWidget* parent=0); ~M_delay(); void generateCycle(); }; #endif ams-2.0.1/src/ladspadialog.cpp0000664000076400007640000002052611051103371013141 00000000000000#include #include #include #include #include #include #include #include #include #include #include #include #include #include "ladspadialog.h" #include "synthdata.h" #include int LadspaModel::rowCount(const QModelIndex &parent) const { if (!parent.isValid()) return ::synthdata->ladspaLib.count(); if (parent.internalId() == -1) { const LadspaLib &l = synthdata->ladspaLib.at(parent.row()); return l.desc.count(); } return 0; } QVariant LadspaModel::data(const QModelIndex &index, int role) const { if (!index.isValid() || role != Qt::DisplayRole) return QVariant(); if (index.internalId() == -1) { const LadspaLib &l = synthdata->ladspaLib.at(index.row()); return l.name; } return synthdata->ladspaLib.at(index.internalId()).desc.at(index.row())->Name; } QVariant LadspaModel::headerData(int /*section*/, Qt::Orientation orientation, int role) const { if (orientation == Qt::Horizontal && role == Qt::DisplayRole) return "Available Ladspa Plugins"; return QVariant(); } QModelIndex LadspaModel::index(int row, int column, const QModelIndex &parent) const { if (!parent.isValid()) return createIndex(row, column, -1); return createIndex(row, column, parent.row()); } QModelIndex LadspaModel::parent(const QModelIndex &child) const { if (child.isValid() && child.internalId() != -1) return index(child.internalId(), 0); return QModelIndex(); } int LadspaModel::columnCount(const QModelIndex &/*parent*/) const { return 1; } LadspaDialog::LadspaDialog() : vbox(this) , selectedLib(-1) , selectedDesc(-1) { char *error; std::string ladspadir, ladspapath, qs; void *so_handle; LADSPA_Descriptor_Function ladspa_dsc_func; unsigned l1; int colon, lastcolon; glob_t globbuf; setWindowTitle(tr("Ladspa Browser")); vbox.setMargin(10); vbox.setSpacing(10); const char *_lp = getenv("LADSPA_PATH"); if (!_lp) { qWarning("You did not set the environment variable LADSPA_PATH."); qWarning("Assuming LADSPA_PATH=" LADSPA_PATH); ladspapath = LADSPA_PATH; } else { ladspapath = _lp; std::cerr << "LADSPA_PATH: " << ladspapath << std::endl; } colon = -1; do { lastcolon = colon; colon = ladspapath.find(":", lastcolon + 1); if (colon >= 0) { ladspadir = ladspapath.substr(lastcolon + 1, colon - lastcolon - 1); } else { ladspadir = (lastcolon) ? ladspapath.substr(lastcolon + 1, ladspapath.length() - lastcolon - 1) : ladspapath; } // fprintf(stderr, "Searching for LADSPA plugins in %s\n", ladspadir.latin1()); ladspadir += "/*.so"; glob(ladspadir.c_str(), GLOB_MARK, NULL, &globbuf); for (l1 = 0; l1 < globbuf.gl_pathc; l1++) { // fprintf(stderr, " found %s\n", globbuf.gl_pathv[l1]); if (!(so_handle = dlopen(globbuf.gl_pathv[l1], RTLD_LAZY))) { fprintf(stderr, "Error opening shared ladspa object %s.\n", globbuf.gl_pathv[l1]); continue; } ladspa_dsc_func =(LADSPA_Descriptor_Function)dlsym(so_handle, "ladspa_descriptor"); if ((error = dlerror()) != NULL) { fprintf(stderr, "Error accessing ladspa descriptor in %s.\n", globbuf.gl_pathv[l1]); continue; } qs = globbuf.gl_pathv[l1]; LadspaLib lib; lib.name = qs.substr(qs.rfind("/") + 1, qs.rfind(".") - qs.rfind("/") - 1).c_str(); int d = 0; while (const LADSPA_Descriptor *desc = ladspa_dsc_func(d)) { lib.desc.append(desc); ++d; } if (d) synthdata->ladspaLib.append(lib); } globfree(&globbuf); } while (colon >= 0); vbox.addWidget(ladspaView = new QTreeView()); ladspaView->setModel(&ladspaModel); QHBoxLayout *searchBox = new QHBoxLayout(); vbox.addLayout(searchBox); searchBox->setSpacing(10); searchLine = new QLineEdit(); QObject::connect(searchLine, SIGNAL(textEdited(const QString &)), this, SLOT(searchLineEdited(const QString &))); searchBox->addWidget(searchLine); QPushButton *searchButton = new QPushButton(tr("&Search")); searchBox->addWidget(searchButton); QObject::connect(searchButton, SIGNAL(clicked()), this, SLOT(searchClicked())); QObject::connect(searchLine, SIGNAL(returnPressed()), this, SLOT(searchClicked())); QFrame *labelFrame = new QFrame(); vbox.addWidget(labelFrame); labelFrame->setFrameStyle(QFrame::StyledPanel | QFrame::Sunken); QVBoxLayout *labelBox = new QVBoxLayout(labelFrame); labelBox->setSpacing(5); pluginLabel = new QLabel(); labelBox->addWidget(pluginLabel); pluginLabel->setAlignment(/*Qt::WordBreak |*/ Qt::AlignLeft); pluginMaker = new QLabel(); labelBox->addWidget(pluginMaker); pluginMaker->setAlignment(/*Qt::WordBreak |*/ Qt::AlignLeft); pluginCopyright = new QLabel(); labelBox->addWidget(pluginCopyright); pluginCopyright->setAlignment(/*Qt::WordBreak |*/ Qt::AlignLeft); QObject::connect(ladspaView->selectionModel(), SIGNAL(selectionChanged(const QItemSelection &, const QItemSelection &)), this, SLOT(pluginHighlighted(const QItemSelection &, const QItemSelection &))); extCtrlPortsCheck = new QCheckBox( tr("&Export control ports as module ports")); vbox.addWidget(extCtrlPortsCheck); QHBoxLayout *buttonBox = new QHBoxLayout(); vbox.addLayout(buttonBox); insertButton = new QPushButton(tr("&Create Plugin")); buttonBox->addWidget(insertButton); insertButton->setEnabled(false); QObject::connect(insertButton, SIGNAL(clicked()), this, SLOT(insertClicked())); buttonBox->addStretch(); insertPolyButton = new QPushButton(tr("Create &Poly Plugin")); buttonBox->addWidget(insertPolyButton); insertPolyButton->setEnabled(false); QObject::connect(insertPolyButton, SIGNAL(clicked()), this, SLOT(insertPolyClicked())); } LadspaDialog::~LadspaDialog() { } void LadspaDialog::insertClicked() { if (selectedDesc != -1) emit createLadspaModule(selectedLib, selectedDesc, false, extCtrlPortsCheck->isChecked()); } void LadspaDialog::insertPolyClicked() { if (selectedDesc != -1) emit createLadspaModule(selectedLib, selectedDesc, true, extCtrlPortsCheck->isChecked()); } void LadspaDialog::pluginHighlighted(const QItemSelection &selected, const QItemSelection &) { selectedLib = selectedDesc = -1; if (selected.indexes().count() > 0) { const QModelIndex mi = selected.indexes().at(0); if (mi.internalId() != -1) { selectedLib = mi.internalId(); selectedDesc = mi.row(); } } insertButton->setEnabled(selectedDesc != -1); insertPolyButton->setEnabled(selectedDesc != -1); if (selectedDesc != -1) { const LADSPA_Descriptor * desc = synthdata->ladspaLib.at(selectedLib).desc.at(selectedDesc); pluginLabel->setText(tr("Label: ") + desc->Label); pluginMaker->setText(tr("Author: ") + desc->Maker); pluginCopyright->setText(tr("Copyright: ") + desc->Copyright); } else { pluginLabel->setText(""); pluginMaker->setText(""); pluginCopyright->setText(""); } } void LadspaDialog::search(bool select) { if (!synthdata->ladspaLib.count()) return; int lib = 0, desc = 0; int _lib, _desc; if (selectedDesc != -1) { lib = selectedLib; desc = selectedDesc; } _lib = lib; _desc = desc; QModelIndex parent = ladspaModel.index(lib, 0); do { if (++desc >= synthdata->ladspaLib.at(lib).desc.count()) { desc = 0; if (++lib >= synthdata->ladspaLib.count()) lib = 0; parent = ladspaModel.index(lib, 0); } const LadspaLib &libr = synthdata->ladspaLib.at(lib); if (QString(libr.desc.at(desc)->Name).contains(searchLine->text(), Qt::CaseInsensitive)) { if (select) { QModelIndex mi = ladspaModel.index(desc, 0, parent); ladspaView->scrollTo(mi); ladspaView->selectionModel()->select(mi, QItemSelectionModel::ClearAndSelect); return; } ladspaView->setRowHidden(lib, QModelIndex(), false); ladspaView->setRowHidden(desc, parent, false); ladspaView->expand(parent); } else if (!select) ladspaView->setRowHidden(desc, parent, true); } while(_lib != lib || _desc != desc); } void LadspaDialog::searchClicked() { search(true); } void LadspaDialog::searchLineEdited(const QString &) { for (int lib = 0; lib < synthdata->ladspaLib.count(); ++lib) ladspaView->setRowHidden(lib, QModelIndex(), true); search(false); } ams-2.0.1/src/m_vcenv2.h0000664000076400007640000000132611051103074011676 00000000000000#ifndef M_VCENV2_H #define M_VCENV2_H #include "module.h" #define MODULE_VCENV2_WIDTH 110 #define MODULE_VCENV2_HEIGHT 175 class M_vcenv2 : public Module { Q_OBJECT Port *port_M_gate, *port_M_retrigger, *port_M_attack, *port_M_decay, *port_M_sustain, *port_M_release, *port_out; public: float **gateData, **retriggerData, **attackData, **decayData, **sustainData, **releaseData; float a0, d0, s0, r0, aGain, dGain, sGain, rGain; float e[MAXPOLY]; int state[MAXPOLY]; bool noteActive[MAXPOLY], gate[MAXPOLY], retrigger[MAXPOLY]; public: M_vcenv2(QWidget* parent=0); void generateCycle(); }; #endif ams-2.0.1/src/m_vcdoubledecay.h0000664000076400007640000000156311051103070013303 00000000000000#ifndef M_VCDOUBLEDECAY_H #define M_VCDOUBLEDECAY_H #include "module.h" #define MODULE_VCDOUBLEDECAY_WIDTH 140 #define MODULE_VCDOUBLEDECAY_HEIGHT 200 class M_vcdoubledecay : public Module { Q_OBJECT Port *port_M_gate, *port_M_retrigger, *port_M_attack, *port_M_decay, *port_M_sustain, *port_M_ratio, *port_M_release, *port_out; public: float **gateData, **retriggerData, **attackData, **decayData, **sustainData, **releaseData, **ratioData; float a0, d0, s0, r0, rl0, aGain, dGain, sGain, rGain, rlGain; float e[MAXPOLY], e2[MAXPOLY], old_e[MAXPOLY], old_e2[MAXPOLY], s[MAXPOLY], old_s[MAXPOLY]; int state[MAXPOLY]; bool noteActive[MAXPOLY], gate[MAXPOLY], retrigger[MAXPOLY]; public: M_vcdoubledecay(QWidget* parent=0); void generateCycle(); }; #endif ams-2.0.1/src/box.cpp0000664000076400007640000000021711051113052011275 00000000000000#include "box.h" Box::Box(QWidget *parent, const QString &name) : QWidget(parent) { setObjectName(name); setAutoFillBackground(true); } ams-2.0.1/src/main.cpp0000664000076400007640000001610011214543413011440 00000000000000#include #include #include #include #include #include #include #include #include #include #include #include #include "mainwindow.h" #include "msoptions.h" #include "config.h" #define AMSDIR ".alsamodular" static struct option options[] = {{"periodsize", 1, 0, 'b'}, {"frag", 1, 0, 'f'}, {"poly", 1, 0, 'p'}, {"rate", 1, 0, 'r'}, {"edge", 1, 0, 'e'}, {"help", 0, 0, 'h'}, {"soundcard", 1, 0, 'c'}, {"preset", 1, 0, 'l'}, {"presetpath", 1, 0, 'd'}, {"nogui", 0, 0, 'n'}, {"jack", 0, 0, 'J'}, {"alsa", 0, 0, 'A'}, {"in", 1, 0, 'i'}, {"out", 1, 0, 'o'}, {"name", 1, 0, 'N'}, {0, 0, 0, 0}}; QTextStream StdOut(stdout); QTextStream StdErr(stderr); QString amsRcPath(const QString &synthName) { return QString("%1/" AMSDIR "/%2.cfg").arg(QDir::homePath()) .arg(synthName); } QString amsSynthName(const QString &name, unsigned int index) { return QString("%1_%2").arg(name).arg(index); } int makeSynthName(QString &name) { int fd; QDir amshome = QDir(QDir::homePath()); if (!amshome.exists(AMSDIR)) { if (!amshome.mkdir(AMSDIR)) { qWarning(QObject::tr("Could not create ams home " "directory.").toUtf8()); return -1; } } for (unsigned int index = 1; index <= 9; index++) { QString rcPath = amsRcPath(amsSynthName(name, index)); //StdOut << "Resource file path: " << rcPath << endl; fd = open(rcPath.toLatin1().data(), O_CREAT|O_RDWR, 0666); if (fd == -1) { qWarning(QObject::tr("Failed to open file '%1'") .arg(rcPath).toUtf8()); return -1; } struct flock lock = {F_WRLCK, SEEK_SET, 0, 0, 0}; if (fcntl(fd, F_SETLK, &lock) == -1) { close(fd); StdOut << "File occupied: " << rcPath << endl; } else { lock.l_type = F_RDLCK; if (fcntl(fd, F_SETLK, &lock) == -1) { qWarning(QObject::tr("Ooops in %1 at %2") .arg(__FUNCTION__).arg(__LINE__).toUtf8()); return -1; } name = amsSynthName(name, index); return fd; } } qWarning(QObject::tr("Client name '%1' occupied.").arg(name).toUtf8()); return -1; } int main(int argc, char *argv[]) { char aboutText[] = AMS_LONGNAME " " VERSION " (c)2002-2009"; /* "\nby Matthias Nagorni and Fons Adriaensen\n" "(c)2002-2003 SuSE AG Nuremberg\n" "(c)2003 Fons Adriaensen\n" "Additional programming:\n" "2007 Malte Steiner, Karsten Wiese\n" "2008 Guido Scholz\n"; */ QApplication app(argc, argv); // translator for Qt library strings QTranslator qtTr; QLocale loc = QLocale::system(); if (qtTr.load(QString("qt_") + loc.name(), QLibraryInfo::location(QLibraryInfo::TranslationsPath))) app.installTranslator(&qtTr); else qWarning("No Qt translation for locale '%s' found.", loc.name().toUtf8().constData()); // translator for ams strings QTranslator amsTr; if (amsTr.load(QString("ams_") + loc.name(), TRANSLATIONSDIR)) app.installTranslator(&amsTr); else qWarning("No " AMS_LONGNAME " translation for locale '%s' found.", loc.name().toUtf8().constData()); int getopt_return; int option_index; ModularSynthOptions msoptions; msoptions.synthName = "ams"; msoptions.pcmname = DEFAULT_PCMNAME; msoptions.frsize = DEFAULT_PERIODSIZE; msoptions.fsamp = DEFAULT_RATE; msoptions.ncapt = DEFAULT_CAPT_PORTS; msoptions.nfrags = DEFAULT_PERIODS; msoptions.nplay = DEFAULT_PLAY_PORTS; msoptions.poly = 1; msoptions.edge = 1.0; msoptions.noGui = false; msoptions.presetName = ""; msoptions.presetPath = ""; msoptions.havePreset = false; msoptions.havePresetPath = false; msoptions.forceJack = false; msoptions.forceAlsa = false; msoptions.verbose = 0; while ((getopt_return = getopt_long(argc, argv, "hnJjAab:p:f:e:c:l:d:r:i:o:vN:", options, &option_index)) >= 0) { switch(getopt_return) { case 'p': msoptions.poly = atoi(optarg); break; case 'b': msoptions.frsize = atoi(optarg); break; case 'f': msoptions.nfrags = atoi(optarg); break; case 'e': msoptions.edge = atof(optarg); break; case 'r': msoptions.fsamp = atoi(optarg); break; case 'c': msoptions.pcmname = optarg; break; case 'l': msoptions.presetName = optarg; msoptions.havePreset = true; break; case 'd': msoptions.presetPath = optarg; msoptions.havePresetPath = true; break; case 'n': msoptions.noGui = true; break; case 'J': case 'j': msoptions.forceJack = true; msoptions.forceAlsa = false; break; case 'A': case 'a': msoptions.forceJack = false; msoptions.forceAlsa = true; break; case 'i': msoptions.ncapt = atoi(optarg); break; case 'o': msoptions.nplay = atoi(optarg); break; case 'v': msoptions.verbose++; break; case 'N': msoptions.synthName += optarg; break; case 'h': printf("%s\n\n", aboutText); printf("Usage:\tams [OPTION]... [PRESETFILE]\n\nOptions:\n"); printf(" -J, --jack Force JACK\n"); printf(" -i, --in Number of JACK input ports\n"); printf(" -o, --out Number of JACK output ports\n"); printf(" -A, --alsa Force ALSA\n"); printf(" -c, --soundcard Soundcard [hw:0,0]\n"); printf(" -b, --periodsize Periodsize [%d]\n", DEFAULT_PERIODSIZE); printf(" -f, --frag Number of fragments [%d]\n", DEFAULT_PERIODS); printf(" -r, --rate Samplerate [%d]\n", DEFAULT_RATE); printf(" -p, --poly Polyphony [1]\n"); printf(" -e, --edge <0..10> VCO Edge [1.0]\n"); printf(" -l, --preset Preset file\n"); printf(" -d, --presetpath Preset path\n"); printf(" -n, --nogui Start without GUI\n"); printf(" -v, verbose\n"); printf(" -N, --name ALSASEQ/JACK clientname, windowtitle\n\n"); exit(EXIT_SUCCESS); break; } } if (!msoptions.havePreset && optind < argc){ msoptions.presetName = argv[optind]; msoptions.havePreset = true; } msoptions.rcFd = makeSynthName(msoptions.synthName); if (msoptions.rcFd == -1) exit(1); MainWindow* top = new MainWindow(msoptions); Q_CHECK_PTR(top); top->resize(DEFAULT_WIDTH, DEFAULT_HEIGHT); return app.exec(); } ams-2.0.1/src/module.h0000644000076400007640000000626311204112276011453 00000000000000#ifndef MODULE_H #define MODULE_H #include #include #include #include #include #include #include #include #include "synthdata.h" #include "configdialog.h" #include "box.h" enum { MODULE_DEFAULT_WIDTH = 50, MODULE_DEFAULT_HEIGHT = 100, MODULE_NEW_X = 50, MODULE_NEW_Y = 50 }; enum M_typeEnum { M_type_custom, M_type_vco, M_type_vca, M_type_lfo, M_type_delay, M_type_ringmod, M_type_ladspa, M_type_pcmout, M_type_mix, M_type_vcf, M_type_mcv, // 10 M_type_env, M_type_seq, M_type_inv, M_type_noise, M_type_slew, M_type_quantizer, M_type_pcmin, M_type_cvs, M_type_sh, M_type_vcorgan, // 20 M_type_dynamicwaves, M_type_advenv, M_type_wavout, M_type_scope, M_type_spectrum, M_type_vcswitch, M_type_jackin, M_type_jackout, M_type_midiout, M_type_scmcv, // 30 M_type_scquantizer, M_type_stereomix, M_type_conv, M_type_vcenv, M_type_advmcv, M_type_function, M_type_vcpanning, M_type_vcenv2, M_type_vcdoubledecay, M_type_vquant, M_type_amp, M_type_ad, M_type_mphlfo, M_type_noise2, M_type_vco2 }; /*forward declarations*/ class Port; class MidiControllableBase; // types jackin and jackout kept to ensure existing patches will load. FA class Module : public Box { Q_OBJECT bool alive; int connections; QList portList; protected: virtual ~Module(); public: ConfigDialog *configDialog; float ***data; bool cycleReady; M_typeEnum M_type; QList midiControllables; int moduleID, outPortCount; QColor colorBackground, colorBorder, colorFont; static int portmemAllocated; public: Module(M_typeEnum M_type, int outPortCount, QWidget* parent, const QString &name); void Delete(); bool isAlive() { return alive; } void addPort(Port*); int connected(); void incConnections(); void decConnections(); void save(QTextStream&); virtual void saveConnections(QTextStream&); virtual void saveParameters(QTextStream&); virtual void saveBindings(QTextStream&); virtual void mcAbleChanged(MidiControllableBase *) {} void getColors(void); float **getData(int); void showConfigDialog(const QPoint&); bool hasModuleId(int); void setModuleId(int); MidiControllableBase * getMidiControlableBase(int); Port* getPortAt(int); Port* getPortWithIndex(int); Port* getInPortWithIndex(int); Port* getOutPortWithIndex(int); void paintCablesToConnectedPorts(QPainter&); protected: virtual void generateCycle() = 0; void portMemAlloc(int outPortCount, bool poly); virtual void paintEvent(QPaintEvent *ev); void paint(QPainter &); struct CtorVar { static const int step = 20; int in_index, out_index; int in_off, out_off; void reset() { in_index = out_index = 0; in_off = out_off = 35; } }; static CtorVar cv; signals: void dragged(QPoint pos); void removeModule(); void portSelected(Port*); void portDisconnected(); public slots: virtual void removeThisModule(); }; #endif ams-2.0.1/src/m_scope.h0000664000076400007640000000132211051103061011574 00000000000000#ifndef M_SCOPE_H #define M_SCOPE_H #include #include "module.h" #define MODULE_SCOPE_WIDTH 90 #define MODULE_SCOPE_HEIGHT 80 class M_scope : public Module { Q_OBJECT private: int mode, edge, triggerMode; float zoom, timeScale, triggerThrs; long wavDataSize; float gain; float mixer_gain[2]; Port *port_in[2]; float *floatdata; QTimer *timer; public: float **inData[2]; public: M_scope(QWidget* parent=0); ~M_scope(); void generateCycle(); int setGain(float p_gain); float getGain(); public slots: void timerProc(); void updateTriggerMode(int val); }; #endif ams-2.0.1/src/m_quantizer.h0000664000076400007640000000141011051103060012502 00000000000000#ifndef M_QUANTIZER_H #define M_QUANTIZER_H #include "module.h" #define MODULE_QUANTIZER_WIDTH 90 #define MODULE_QUANTIZER_HEIGHT 140 #define MAX_LUT 11 enum quantumType { QUANT_12, QUANT_6, QUANT_MAJOR, QUANT_MINOR, QUANT_CHORD_MAJOR, QUANT_CHORD_MINOR, QUANT_PENTA }; class M_quantizer : public Module { Q_OBJECT Port *port_M_in, *port_M_trigger, *port_M_transpose, *port_out, *port_trigger_out; int qsig[MAXPOLY], trigCount[MAXPOLY]; bool trigger[MAXPOLY]; int quantum; int lut[MAX_LUT][12]; public: float **inData, **triggerData, **transposeData; public: M_quantizer(QWidget* parent=0); void generateCycle(); }; #endif ams-2.0.1/src/m_conv.cpp0000664000076400007640000000363011051111565011777 00000000000000#include #include #include #include #include #include #include #include #include #include #include #include #include #include //Added by qt3to4: #include #include "synthdata.h" #include "m_conv.h" #include "port.h" M_conv::M_conv(QWidget* parent) : Module(M_type_conv, 1, parent, tr("Converter")) { QString qs; convMode = 0; octave = 0; setGeometry(MODULE_NEW_X, MODULE_NEW_Y, MODULE_CONV_WIDTH, MODULE_CONV_HEIGHT); port_M_in = new Port("In", PORT_IN, 0, this); cv.out_off = 55; port_out = new Port("Out", PORT_OUT, 0, this); QStringList convModeNames; convModeNames << tr("V/Octave --> Hz"); convModeNames << tr("V/Octave --> 0..1, 1=rate/2"); convModeNames << tr("V/Octave --> 0..1, 1=20000 Hz"); configDialog->addComboBox(tr("Conversion Mode "), convMode, convModeNames); configDialog->addIntSlider(tr("Octave Offset"), octave, -3, 3); } void M_conv::generateCycle() { int l1; unsigned int l2; float offset; inData = port_M_in->getinputdata(); offset = octave + 5.0313842; if (convMode == 0) { for (l1 = 0; l1 < synthdata->poly; l1++) { for (l2 = 0; l2 < synthdata->cyclesize; l2++) { data[0][l1][l2] = exp(M_LN2 * (offset + inData[l1][l2])); } } } else if (convMode == 1) { for (l1 = 0; l1 < synthdata->poly; l1++) { for (l2 = 0; l2 < synthdata->cyclesize; l2++) { data[0][l1][l2] = 2.0 * exp(M_LN2 * (offset + inData[l1][l2])) / synthdata->rate; } } } else if (convMode == 2) { for (l1 = 0; l1 < synthdata->poly; l1++) { for (l2 = 0; l2 < synthdata->cyclesize; l2++) { data[0][l1][l2] = exp(M_LN2 * (offset + inData[l1][l2])) / 20000.0; } } } } ams-2.0.1/src/m_mphlfo.h0000664000076400007640000000066511051103054011763 00000000000000#ifndef M_MPHLFO_H #define M_MPHLFO_H #include "module.h" #define MODULE_MPHLFO_WIDTH 115 #define MODULE_MPHLFO_HEIGHT 360 class M_mphlfo : public Module { Q_OBJECT Port *port_out[16]; float freq, gain_saw, gain_tri; double tri, saw, d_tri, d_saw; double o[16]; int state; int mode; public: M_mphlfo(QWidget* parent=0); void generateCycle(); }; #endif ams-2.0.1/src/guiwidget.cpp0000644000076400007640000002373711152565023012522 00000000000000#include #include #include #include #include "synthdata.h" #include "guiwidget.h" #include "midicontroller.h" #include "midiguicomponent.h" #include "module.h" #include "midislider.h" #include "intmidislider.h" #include "midicombobox.h" #include "midicheckbox.h" #include "midipushbutton.h" GuiWidget::GuiWidget(QWidget* parent, const char *name) : QDialog(parent), vLayout(this) { setObjectName(name); setGeometry(0, 0, GUI_DEFAULT_WIDTH, GUI_DEFAULT_HEIGHT); QWidget *presetContainer = new QWidget(); QHBoxLayout *presetContainerLayout = new QHBoxLayout(presetContainer); vLayout.addWidget(presetContainer); QWidget *presetNameContainer = new QWidget(); QHBoxLayout *presetNameContainerLayout = new QHBoxLayout( presetNameContainer); vLayout.addWidget(presetNameContainer); tabWidget = new QTabWidget(); vLayout.addWidget(tabWidget); currentTab = NULL; currentGroupBox = NULL; currentTabIndex = 0; QPushButton *addPresetButton = new QPushButton(tr("&Add Preset")); presetContainerLayout->addWidget(addPresetButton); QObject::connect(addPresetButton, SIGNAL(clicked()), this, SLOT(addPreset())); QPushButton *overwritePresetButton = new QPushButton(tr("&Overwrite Preset")); presetContainerLayout->addWidget(overwritePresetButton); QObject::connect(overwritePresetButton, SIGNAL(clicked()), this, SLOT(overwritePreset())); presetCountLabel = new QLabel(); presetCountLabel->setText(tr("Presets for this configuration: 0")); presetContainerLayout->addWidget(presetCountLabel); QPushButton *decButton = new QPushButton("-1"); presetContainerLayout->addWidget(decButton); QObject::connect(decButton, SIGNAL(clicked()), this, SLOT(presetDec())); QPushButton *incButton = new QPushButton("+1"); presetContainerLayout->addWidget(incButton); QObject::connect(incButton, SIGNAL(clicked()), this, SLOT(presetInc())); presetLabel = new QLabel(); presetNameContainerLayout->addWidget(presetLabel); presetName = new QLineEdit(); presetNameContainerLayout->addWidget(presetName); setPresetCount(0); setCurrentPreset(0); } int GuiWidget::addFrame(const QString &frameName) { // printf("Adding frame %s.\n", frameName.latin1()); if (!currentTab) return -1; frameNameList.append(frameName); QGroupBox *gbox = new QGroupBox(frameName); gbox->setObjectName(frameName); currentTab->addWidget(gbox); QVBoxLayout *vbox = new QVBoxLayout(gbox); GuiFrame *guiFrame = new GuiFrame; guiFrame->frameBox = vbox; guiFrame->tabIndex = currentTabIndex; frameBoxList.append(guiFrame); currentGroupBox = vbox; return(0); } int GuiWidget::setFrame(int index) { // fprintf(stderr, "Setting frame index %d.\n", index); GuiFrame* gf = getGuiFrame(index); if (gf != NULL) currentGroupBox = gf->frameBox; return(0); } int GuiWidget::addTab(const QString &tabName) { tabNameList.append(tabName); QWidget *tab = new QWidget(); setObjectName(tabName); currentTab = new QHBoxLayout(tab); currentTabIndex = tabNameList.count() - 1; tabWidget->insertTab(-1, tab, tabName); tabList.append(currentTab); return(0); } int GuiWidget::setTab(int index) { currentTab = tabList.at(index); currentTabIndex = index; return(0); } int GuiWidget::addParameter(MidiControllableBase *mcAble, const QString ¶meterName) { if (currentGroupBox == NULL) { qWarning("No current group box found."); return -1; } if (mcAble == NULL) { qWarning("No MIDI controlable item found."); return -1; } clearPresets(); MidiGUIcomponent *mgc = dynamic_cast( mcAble->mcws.at(0))->createTwin(); if (mgc == NULL) { qWarning("No GUI component for MIDI controlable item found."); return -1; } currentGroupBox->addWidget(mgc); currentGroupBox->addStretch(100); parameterList.append(mcAble); mgcs.append(mgc); mgc->nameLabel.setText(parameterName); currentGroupBox->parentWidget()->show(); return 0; } int GuiWidget::setPresetCount(int count) { QString qs; presetCount = count; qs = tr("Presets for this configuration: %1").arg(presetCount); presetCountLabel->setText(qs); return 0; } int GuiWidget::setCurrentPreset(int presetNum, bool rt) { int index, value; if (presetCount == 0) currentPreset = 0; if (presetNum < 0 || presetNum >= presetCount) return -1; currentPreset = presetNum; for (index = 0; index < presetList[currentPreset].count(); index++) { value = presetList[currentPreset][index]; //!! parameterList.at(index)->invalidateController(); MidiControllableBase* mcb = getMidiControllableParameter(index); if (mcb != NULL) { if (rt) { mcb->setValRT(value); synthdata->mcSet.put(mcb); } else { // StdOut << currentPreset << " " << mcb->name << " " << index << " " << value << " " << endl; mcb->setVal(value, NULL); } } } if (!rt) setCurrentPresetText(); return 0; } void GuiWidget::setCurrentPresetText() { QString qs; QTextStream ts(&qs); ts << "Preset " << currentPreset << ":"; presetLabel->setText(qs); for (QStringList::Iterator it = presetNameList.begin(); it != presetNameList.end(); it++) { qs = (*it).mid(0, 3); if (qs.toInt() == currentPreset) { qs = (*it).mid(3); presetName->setText(qs); } } } void GuiWidget::presetDec() { if (currentPreset > 0) setCurrentPreset(currentPreset - 1); } void GuiWidget::presetInc() { if (currentPreset < presetCount - 1) setCurrentPreset(currentPreset + 1); } void GuiWidget::addPreset() { QString qs; if (presetCount) { setPresetCount(presetCount + 1); setCurrentPreset(presetCount - 1); } qs.sprintf("%3d", currentPreset); presetNameList.append(qs + presetName->text()); overwritePreset(); } void GuiWidget::overwritePreset() { int l1; QString qs; if (!presetCount) setPresetCount(presetCount + 1); presetList[currentPreset].clear(); for (l1 = 0; l1 < parameterList.count(); l1++) { MidiControllableBase* mcb = getMidiControllableParameter(l1); if (mcb != NULL) presetList[currentPreset].append(mcb->sliderVal()); } for (QStringList::Iterator it = presetNameList.begin(); it != presetNameList.end(); it++) { qs = (*it).mid(0, 3); if (qs.toInt() == currentPreset) { qs.sprintf("%3d", currentPreset); *it = qs + presetName->text(); } } } void GuiWidget::clearPresets() { int l1; for (l1 = 0; l1 < MAX_PRESETS; l1++) { presetList[l1].clear(); } presetNameList.clear(); presetName->setText(" "); setPresetCount(0); } void GuiWidget::clearGui() { delete tabWidget; frameBoxList.clear(); tabList.clear(); parameterList.clear(); presetNameList.clear(); presetName->setText(" "); frameNameList.clear(); tabNameList.clear(); tabWidget = new QTabWidget(); vLayout.addWidget(tabWidget); tabWidget->show(); setPresetCount(0); setCurrentPreset(0); } void GuiWidget::refreshGui() { tabWidget->hide(); tabWidget->show(); } void GuiWidget::remove(MidiControllableBase *mcAble) { int index = parameterList.indexOf(mcAble); if (index < 0) return; MidiGUIcomponent *mgc = mgcs.takeAt(index); delete mgc; for (int ps = 0; ps < presetCount; ps++) presetList[ps].removeAt(index); parameterList.removeAt(index); } MidiControllableBase* GuiWidget::getMidiControllableParameter(int idx) { MidiControllableBase* mcb = NULL; if ((idx + 1) > parameterList.count()) qWarning("Midi controllable parameter index out of " "range (value = %d)", idx); else mcb = parameterList.at(idx); return mcb; } GuiWidget::GuiFrame* GuiWidget::getGuiFrame(int idx) { GuiFrame* gf = NULL; if ((idx + 1) > frameBoxList.count()) qWarning("Gui frame index out of range (value = %d)", idx); else gf = frameBoxList.at(idx); return gf; } // save MIDI controller window configuration void GuiWidget::save(QTextStream& ts) { QStringList::iterator presetit; // save MIDI controller window configuration for (int i = 0; i < tabList.count(); ++i) ts << "Tab \"" << tabNameList.at(i) << "\"" << endl; for (int i = 0; i < frameBoxList.count(); ++i) { ts << "Frame \"" << frameBoxList.at(i)->frameBox->parentWidget() ->objectName() << "\" " << frameBoxList.at(i)->tabIndex << endl; for (int j = 0; j < parameterList.count(); ++j) if (mgcs.at(j)->parent() == frameBoxList.at(i)->frameBox->parentWidget()) { ts << "Parameter \"" << mgcs.at(j)->nameLabel.text() << "\" " << parameterList.at(j)->module.moduleID << ' ' << parameterList.at(j)->midiControllableListIndex; MidiControllableFloat *mcAbleF = dynamic_cast(parameterList.at(j)); if (mcAbleF) ts << ' ' << mcAbleF->sliderMin() << ' ' << mcAbleF->sliderMax() << ' ' << mcAbleF->getLog() << endl; else ts << endl; } } for (int i = 0; i < presetCount; ++i) for (int p = 0; p < presetList[i].count(); p++) ts << "Program " << i << ' ' << presetList[i][p] << endl; for (presetit = presetNameList.begin(); presetit != presetNameList.end(); ++presetit) { ts << "PresetName \"" << (*presetit).mid(3) << "\"" << endl; } } ams-2.0.1/src/m_vcpanning.h0000664000076400007640000000105311051103075012454 00000000000000#ifndef M_VCPANNING_H #define M_VCPANNING_H #include "module.h" #define MODULE_VCPANNING_WIDTH 110 #define MODULE_VCPANNING_HEIGHT 120 class M_vcpanning : public Module { Q_OBJECT Port *port_M_in, *port_M_pan, *port_out[2]; public: float **inData, **panData; float panGain, panOffset; float panPos[MAXPOLY], pan[2][MAXPOLY], oldpan[2][MAXPOLY]; int panMode; public: M_vcpanning(QWidget* parent=0); void generateCycle(); }; #endif ams-2.0.1/src/m_spectrum.h0000664000076400007640000000344611051103067012344 00000000000000#ifndef M_SPECTRUM_H #define M_SPECTRUM_H #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "synthdata.h" #include "module.h" #include "port.h" #ifndef OUTDATED_CODE #define MODULE_SPECTRUM_WIDTH 90 #define MODULE_SPECTRUM_HEIGHT 80 class M_spectrum : public Module { Q_OBJECT Port *port_in[2]; public: M_spectrum(QWidget* parent=0); void generateCycle() {} }; #else // OUTDATED_CODE #define MODULE_SPECTRUM_WIDTH 90 #define MODULE_SPECTRUM_HEIGHT 80 class M_spectrum : public Module { Q_OBJECT private: float zoom; float gain; float mixer_gain[2]; int agc; Port *port_in[2]; float *floatdata; QTimer *timer; int viewMode, fftFrames, normMode, fftMode, window, refreshMode; float freqZoom, f_min, f_max; QLabel *minLabel, *maxLabel; public: float **inData[2]; public: M_spectrum(QWidget* parent=0, const char *name=0); ~M_spectrum(); int setGain(float p_gain); float getGain(); public slots: void generateCycle(); void showConfigDialog(); void timerProc(); void updateFFTFrames(int val); void updateViewMode(int val); void updateZoom(int val); void update_f_min(int val); void update_f_max(int val); void updateNormMode(int val); void updateWindow(int val); void updateFFTMode(int val); void updateRefreshMode(int val); void freqZoomToggled(bool on); void startSpectrum(); }; #endif // OUTDATED_CODE #endif ams-2.0.1/src/m_vcorgan.h0000664000076400007640000000225311051103075012133 00000000000000#ifndef M_VCORGAN_H #define M_VCORGAN_H #include "module.h" #define MODULE_VCORGAN_WIDTH 85 #define MODULE_VCORGAN_HEIGHT 120 #define MODULE_VCORGAN_MAX_OSC 8 #define VCORGAN_EXP_TABLE_LEN 32768 enum waveFormType { ORGAN_SINE, ORGAN_SAW, ORGAN_TRI, ORGAN_RECT, ORGAN_SAW2 }; class M_vcorgan : public Module { Q_OBJECT float tune, osc_tune[MODULE_VCORGAN_MAX_OSC], gain[MODULE_VCORGAN_MAX_OSC]; int octave, osc_octave[MODULE_VCORGAN_MAX_OSC]; int harmonic[MODULE_VCORGAN_MAX_OSC], subharmonic[MODULE_VCORGAN_MAX_OSC]; int waveForm[MODULE_VCORGAN_MAX_OSC]; float expFMGain, linFMGain; float phi0[MODULE_VCORGAN_MAX_OSC], phi[MAXPOLY][MODULE_VCORGAN_MAX_OSC]; float wave_period; Port *port_M_freq, *port_M_exp, *port_M_lin; Port *port_out; public: int oscCount; float **freqData; float **expFMData; // Frequency modulation exp characteristic float **linFMData; // Frequency modulation lin characteristic public: M_vcorgan(int p_oscCount, QWidget* parent=0); void generateCycle(); }; #endif ams-2.0.1/src/midicontrollable.cpp0000644000076400007640000001065011204222063014033 00000000000000#include #include "guiwidget.h" #include "midicontrollable.h" #include "midiwidget.h" #include "midislider.h" QString MidiControllableBase::temp; MidiControllableBase:: ~MidiControllableBase() { } void MidiControllableBase::updateMGCs(MidiGUIcomponent *sender) { module.mcAbleChanged(this); for (typeof(mcws.constBegin()) mcw = mcws.constBegin(); mcw != mcws.constEnd(); mcw++) if (*mcw != sender) (*mcw)->mcAbleChanged(); if (sender) synthdata->midiWidget->guiComponentTouched(*this); } void MidiControllableBase::connectToController(MidiControllerKey midiController) { if (!midiControllerList.contains(midiController)) { midiControllerList.append(midiController); synthdata->midiWidget->addMidiControllable(midiController, this); } } void MidiControllableBase::disconnect(bool *updateActiveMidiControllers) { synthdata->guiWidget->remove(this); while (midiControllerList.count()) disconnectController(midiControllerList.at(0), updateActiveMidiControllers); } void MidiControllableBase::disconnectController(MidiControllerKey midiController, bool *updateActiveMidiControllers) { midiControllerList.removeAll(midiController); synthdata->midiWidget->removeMidiControllable(midiController, this); } void MidiControllableDoOnce::updateMGCs(MidiGUIcomponent */*sender*/) { trigger(); } bool MidiControllableDoOnce::setMidiValueRT(int control14) { if (!midiSign) control14 = CONTROL14_MAX - control14; if (control14 > std::max((CONTROL14_MAX * 3) / 4, lastVal)) { lastVal = CONTROL14_MAX; return true; } if (control14 < std::min(CONTROL14_MAX / 4, lastVal)) lastVal = control14; return false; } int MidiControllableDoOnce::getMidiValue() { return 0; } int MidiControllableFloat::scale(float v) { float r; if (isLog) { if (v < 1e-4) v = 1e-4; r = logf(v); } else r = v; return (int)(r * SLIDER_SCALE); } int MidiControllableFloat::sliderMin() { return scaledMin; } int MidiControllableFloat::sliderMax() { return scaledMax; } int MidiControllableFloat::sliderVal() { return scale(value); } int MidiControllableFloat::sliderStep() { return 0; } void MidiControllableFloat::setValRT(int val) { float v = (float)val / SLIDER_SCALE; if (isLog) v = expf(v); value = v; } void MidiControllableFloat::setVal(int val, MidiGUIcomponent *sender) { setValRT(val); updateMGCs(sender); } void MidiControllableFloat::setLog(bool log) { isLog = log; scaledMin = scale(varMin); scaledMax = scale(varMax); updateFloatMGCs(); updateMGCs(NULL); } void MidiControllableFloat::setNewMin(int min) { varMin = (float)min / SLIDER_SCALE; if (isLog) varMin = expf(varMin); scaledMin = scale(varMin); updateFloatMGCs(); updateMGCs(NULL); } void MidiControllableFloat::setNewMax(int max) { varMax = (float)max / SLIDER_SCALE; if (isLog) varMax = expf(varMax); scaledMax = scale(varMax); updateFloatMGCs(); updateMGCs(NULL); } void MidiControllableFloat::setNewMin() { varMin = value; scaledMin = scale(varMin); updateFloatMGCs(); updateMGCs(NULL); } void MidiControllableFloat::setNewMax() { varMax = value; scaledMax = scale(varMax); updateFloatMGCs(); updateMGCs(NULL); } void MidiControllableFloat::resetMinMax() { varMin = min; scaledMin = scale(varMin); varMax = max; scaledMax = scale(varMax); updateFloatMGCs(); updateMGCs(NULL); } void MidiControllableFloat::updateFloatMGCs() { for (typeof(mcws.constBegin()) mcw = mcws.constBegin(); mcw != mcws.constEnd(); mcw++) { MidiSlider * s = dynamic_cast(*mcw); if (s) s->minMaxChanged(); } } bool MidiControllableFloat::setMidiValueRT(int control14) { if (!midiSign) control14 = CONTROL14_MAX - control14; int scaledVal = scaledMin + ((long long)(scaledMax - scaledMin) * control14) / CONTROL14_MAX; setValRT(scaledVal); return true; } int MidiControllableFloat::getMidiValue() { return 0; } const QString &MidiControllableFloat::minString() { return temp.setNum(varMin, 'g', 3); } const QString &MidiControllableFloat::maxString() { return temp.setNum(varMax, 'g', 3); } const QString &MidiControllableFloat::valString() { return temp.setNum(value, 'g', 3); } ams-2.0.1/src/midicontroller.h0000644000076400007640000000637211176401414013220 00000000000000#ifndef MIDICONTROLLER_H #define MIDICONTROLLER_H #include #include #include /*forward declaration*/ class MidiControllableBase; class MidiControllerContext { public: QList mcAbles; MidiControllerContext() {} void setMidiValueRT(int value); }; class MidiControllerKey { public: static unsigned int mkKey(unsigned char type, unsigned char ch, unsigned int param) { unsigned int key = ((unsigned int)type << 24) | (((unsigned int)ch & 0xF) << 20) | ((param & 0xFF) << 12) | 0xFFF; return key; } protected: unsigned int key; public: bool isValid() { return !(*this == MidiControllerKey()); } unsigned int getKey() const { return key; } unsigned char type() const { return key >> 24; } unsigned char ch() const { return (key & 0x0F00000) >> 20; } unsigned int param() const { return (key & 0x00FF000) >> 12; } MidiControllerKey() : key(mkKey(0, 0, 0)) {} MidiControllerKey(unsigned char type, unsigned char ch, unsigned int param) : key(mkKey(type, ch, param)) {} MidiControllerKey(snd_seq_event_t *ev) : key(mkKey(ev->type, ev->data.control.channel, ev->type == SND_SEQ_EVENT_PITCHBEND ? 0 : (ev->type == SND_SEQ_EVENT_NOTEON || ev->type == SND_SEQ_EVENT_NOTEOFF) ? ev->data.note.note : ev->data.control.param)) {} MidiControllerKey(const MidiControllerKey &other) : key(other.key) {} MidiControllerKey(MidiControllerKey &other) : key(other.key) {} MidiControllerKey(unsigned int key) : key(key | 0xFFF) {} bool operator == (const MidiControllerKey &other ) const { return key == other.key; } bool operator < (const MidiControllerKey &other ) const { return key < other.key; } }; class MidiController: public MidiControllerKey { public: MidiControllerContext *context; MidiController() : context(NULL) {} MidiController(unsigned char type, unsigned char ch, unsigned int param) : MidiControllerKey(type, ch, param) , context(NULL) {} MidiController(snd_seq_event_t *ev) : MidiControllerKey(ev) , context(NULL) {} MidiController(const MidiController &other) : MidiControllerKey(other) , context(other.context) {} MidiController(MidiController &other) : MidiControllerKey(other) , context(other.context) { // std::cout << __PRETTY_FUNCTION__ << " " << other.context << " " << context << std::endl; other.context = NULL; } MidiController(unsigned int key) : MidiControllerKey(key) , context(NULL) {} ~MidiController() { delete context; } }; #endif ams-2.0.1/src/midicombobox.cpp0000644000076400007640000000344311152565023013175 00000000000000#include #include "midicombobox.h" #include "midicontrollable.h" MidiComboBox::MidiComboBox(MidiControllableNames &mcAble) : MidiGUIcomponent(mcAble) { QString qs; componentType = GUIcomponentType_combobox; QVBoxLayout *comboFrame = new QVBoxLayout(this); comboFrame->setSpacing(5); comboFrame->setMargin(5); comboFrame->addWidget(&nameLabel); // nameLabel->setFixedHeight(nameLabel->sizeHint().height()); comboBox = new QComboBox(); comboBox->addItems(mcAble.itemNames); comboBox->setFixedSize(comboBox->sizeHint()); comboFrame->addWidget(comboBox); mcAbleChanged(); QObject::connect(comboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(valueChanged(int))); } MidiGUIcomponent *MidiComboBox::createTwin() { return new MidiComboBox(*dynamic_cast(&mcAble)); } MidiComboBox::~MidiComboBox(){ } void MidiComboBox::mcAbleChanged() { comboBox->blockSignals(true); comboBox->setCurrentIndex(mcAble.getValue()); comboBox->blockSignals(false); } void MidiComboBox::valueChanged(int val) { ((MidiControllableNames &)mcAble).setVal(val, this); } /* void MidiComboBox::setMidiValueRT(int value) { } void MidiComboBox::setMidiValue(int value) { if (!controllerOK) controllerOK = abs(getMidiValue() - value) < 4; else if (controllerOK) if (midiSign == 1) comboBox->setCurrentIndex(int((float)(comboBox->count()-1) / 127.0 * (float)value)); else comboBox->setCurrentIndex(int((float)(comboBox->count()-1) / 127.0 * (float)(127-value))); } void MidiComboBox::updateValue(int value) { *valueRef = value; comboBox->setCurrentIndex(value); emit guiComponentTouched(); } int MidiComboBox::getMidiValue() { int x; x = (int)rint(127.0 * comboBox->currentIndex() / (comboBox->count()-1)); return(x); } */ ams-2.0.1/src/m_function.h0000664000076400007640000000213311051103050012307 00000000000000#ifndef M_FUNCTION_H #define M_FUNCTION_H #include #include #include #include #include #include #include #include #include #include #include #include //#include #include #include "synthdata.h" #include "module.h" #include "port.h" #include "function.h" #define MODULE_FUNCTION_WIDTH 85 #define MODULE_FUNCTION_HEIGHT 40 class M_function : public Module { Q_OBJECT private: QList out_port_list; Port *port_in; float zoom; float y[MAX_FUNCTIONS][MAXPOLY], old_y[MAX_FUNCTIONS][MAXPOLY]; tFunction point; int i[MAXPOLY][MAX_FUNCTIONS]; int zoomIndex, editIndex; int mode; public: float **inData; public: M_function(int p_functionCount, QWidget* parent=0); void generateCycle(); public slots: void updateZoom(int p_zoomIndex); void updateMouseLabels(int x, int y); }; #endif ams-2.0.1/src/mainwindow.h0000664000076400007640000000232011056204130012326 00000000000000#ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include #include #include #include #include #include "modularsynth.h" #include "msoptions.h" class MainWindow: public QMainWindow { Q_OBJECT static int pipeFd[2]; static void sighandler(int); private: int rcFd; QString fileName; QStringList recentFiles; ModularSynth *modularSynth; QMenu* fileRecentlyOpenedFiles; bool saveFile(); void newFile(); void openFile(const QString&); void chooseFile(); bool isSave(); int querySaveChanges(); bool isModified(); void addRecentlyOpenedFile(const QString&, QStringList&); void appendRecentlyOpenedFile(const QString&, QStringList&); private slots: void unixSignal(int fd); void fileNew(); void fileOpen(); void fileSave(); void fileSaveAs(); void updateWindowTitle(); void helpAboutQt(); void recentFileActivated(QAction*); void setupRecentFilesMenu(); public: MainWindow(const ModularSynthOptions&); virtual ~MainWindow(); protected: void closeEvent(QCloseEvent *e); void readConfig(); void writeConfig(); }; #endif ams-2.0.1/src/prefwidget.h0000644000076400007640000000356011151046655012333 00000000000000#ifndef PREFWIDGET_H #define PREFWIDGET_H #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "synthdata.h" #define PREF_DEFAULT_WIDTH 300 #define PREF_DEFAULT_HEIGHT 300 /** preferences menue of AMS * */ class PrefWidget : public QWidget { Q_OBJECT QVBoxLayout vBox; QTabWidget *tabWidget; QString loadPath, savePath; QWidget *colorBackgroundLabel, *colorModuleBackgroundLabel, *colorModuleBorderLabel, *colorModuleFontLabel, *colorCableLabel, *colorJackLabel; QColor colorBackground, colorModuleBackground, colorModuleBorder, colorModuleFont, colorPortFont1, colorPortFont2; QColor colorCable, colorJack; QComboBox *midiModeComboBox, *editingModeComboBox; QLineEdit *loadEdit, *saveEdit; int midiControllerMode, editingMode; public: PrefWidget(); void loadPref(QString&); void savePref(QTextStream&); signals: void prefChanged(); public slots: void submitPref(); void applyPref(); void refreshColors(); void recallColors(); void storeColors(); void colorBackgroundClicked(); void colorModuleBackgroundClicked(); void colorModuleBorderClicked(); void colorModuleFontClicked(); void colorCableClicked(); void defaultcolorClicked(); void colorJackClicked(); void browseLoad(); void browseSave(); void updateMidiMode(int); void updateEditingMode(int); void loadPathUpdate(); void savePathUpdate(); }; #endif ams-2.0.1/src/ladspadialog.h0000664000076400007640000000265311051103037012606 00000000000000#ifndef LADSPADIALOG_H #define LADSPADIALOG_H #include #include #include #include class LadspaModel: public QAbstractItemModel { Q_OBJECT friend class LadspaDialog; int rowCount(const QModelIndex &parent) const; QVariant data(const QModelIndex &index, int role) const; QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const; QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const; QModelIndex parent(const QModelIndex &child) const; int columnCount(const QModelIndex &parent = QModelIndex()) const; }; class LadspaDialog: public QWidget { Q_OBJECT LadspaModel ladspaModel; QVBoxLayout vbox; class QLabel *pluginLabel, *pluginMaker, *pluginCopyright; class QLineEdit *searchLine; class QCheckBox *extCtrlPortsCheck; class QPushButton *insertButton; class QPushButton *insertPolyButton; int selectedLib; int selectedDesc; void search(bool select); public: class QTreeView *ladspaView; public: LadspaDialog(); ~LadspaDialog(); signals: void createLadspaModule(int index, int n, bool poly, bool extCtrlPorts); private slots: void insertClicked(); void insertPolyClicked(); void searchClicked(); void searchLineEdited(const QString &); void pluginHighlighted(const class QItemSelection &, const QItemSelection &); }; #endif ams-2.0.1/src/midicheckbox.cpp0000664000076400007640000000212111051103424013134 00000000000000#include "midicheckbox.h" MidiCheckBox::MidiCheckBox(MidiControllable &mcAble) : MidiGUIcomponent(mcAble) { componentType = GUIcomponentType_checkbox; // QWidget *dummy1 = new QWidget(this); QHBoxLayout *checkFrame = new QHBoxLayout(this); checkFrame->setSpacing(5); checkFrame->setMargin(5); // QWidget *dummy2 = new QWidget(this); //FIXME setStretchFactor(dummy1, 3); // setStretchFactor(checkFrame, 1); // setStretchFactor(dummy2, 3); checkBox = new QCheckBox(); checkFrame->addWidget(checkBox); checkFrame->addStretch(); checkFrame->addWidget(&nameLabel); QObject::connect(checkBox, SIGNAL(toggled(bool)), this, SLOT(toggled(bool))); mcAbleChanged(); } MidiGUIcomponent *MidiCheckBox::createTwin() { return new MidiCheckBox(static_cast &>(mcAble)); } void MidiCheckBox::toggled(bool checked) { static_cast &>(mcAble).setVal(checked, this); } void MidiCheckBox::mcAbleChanged() { checkBox->blockSignals(true); checkBox->setChecked(mcAble.getValue() > 0); checkBox->blockSignals(false); } ams-2.0.1/src/m_stereomix.cpp0000664000076400007640000001441111051111616013045 00000000000000#include #include #include #include #include #include "synthdata.h" #include "midicheckbox.h" #include "midislider.h" #include "m_stereomix.h" #include "port.h" class M_stereomix::MCableMute: public MidiControllable { M_stereomix &m() { return reinterpret_cast(module); } void maybeUnSolo() { if (value != 0) { unsigned ix = &value - m().mute; if (m().solo[ix] != 0) { m().solo[ix] = 0; m().solo_index = -1; } } } protected: void updateMGCs(MidiGUIcomponent *sender) { MidiControllable::updateMGCs(sender); if (sender) maybeUnSolo(); unsigned ix = &value - m().mute; reinterpret_cast *>(m().midiControllables.at(4 * ix + 2))-> MidiControllable::updateMGCs(NULL); } public: MCableMute(M_stereomix &module, const QString &name, float &value) : MidiControllable(module, name, value, 0, 1) {} bool setMidiValueRT(int control14) { if (!MidiControllable::setMidiValueRT(control14)) return false; maybeUnSolo(); return true; } }; class M_stereomix::MCableSolo: public MidiControllable { M_stereomix &m() { return reinterpret_cast(module); } protected: void updateMGCs(MidiGUIcomponent *sender) { if (sender) m().soloed(reinterpret_cast(sender->mcAble).value); m().updateSolos(sender); } public: MCableSolo(M_stereomix &module, const QString &name, float &value) : MidiControllable(module, name, value, 0, 1) {} bool setMidiValueRT(int control14) { if (!MidiControllable::setMidiValueRT(control14)) return false; m().soloed(value); return true; } }; void M_stereomix::soloed(float &value) { if (value != 0) { if (solo_index < in_channels) solo[solo_index] = 0; solo_index = &value - solo; mute[solo_index] = 0; } else solo_index = -1; } void M_stereomix::updateSolos(MidiGUIcomponent *sender) { for (unsigned l1 = 0; l1 < in_channels; l1++) { MidiGUIcomponent *mgcSolo = configDialog->midiCheckBoxList.at(2 * l1 + 1); static_cast &>(mgcSolo->mcAble). MidiControllable::updateMGCs(mgcSolo == sender ? sender : NULL); MidiGUIcomponent *mgcMute = configDialog->midiCheckBoxList.at(2 * l1); static_cast &>(mgcMute->mcAble). MidiControllable::updateMGCs(NULL); } } M_stereomix::M_stereomix(int p_in_channels, QWidget* parent) : Module(M_type_stereomix, 2, parent, tr("Stereo Mixer %1") .arg(p_in_channels)) , solo_index(-1) { QString qs; QHBoxLayout *hbox; in_channels = p_in_channels; setGeometry(MODULE_NEW_X, MODULE_NEW_Y, MODULE_STEREOMIX_WIDTH, MODULE_STEREOMIX_HEIGHT + 40 + 20 * in_channels); gain = 1.0; configDialog->addSlider(tr("Master Volume"), gain, 0, 10, true); ignore_check = false; for (unsigned l1 = 0; l1 < in_channels; l1++) { qs = tr("In %1").arg(l1); Port *audio_in_port = new Port(qs, PORT_IN, in_port_list.count(), this); in_port_list.append(audio_in_port); hbox = configDialog->addHBox(); mute[l1] = 0.0; qs = tr("Mute %1").arg(l1); configDialog->addCheckBox(*new MCableMute(*this, qs, mute[l1]), hbox); solo[l1] = 0.0; qs = tr("Solo %1").arg(l1); configDialog->addCheckBox(*new MCableSolo(*this, qs, solo[l1]), hbox); mixer_gain[l1] = 1.0; qs = tr("Volume %1").arg(l1); MidiSlider *slider = configDialog->addSlider(qs, mixer_gain[l1], 0, 2, true, hbox); slider->setMinimumWidth(200); hbox->setStretchFactor(slider, 100); pan[l1] = 0.0; qs = tr("Pan %1").arg(l1); slider = configDialog->addSlider(qs, pan[l1], -1, 1, false, hbox); slider->setMinimumWidth(150); hbox->setStretchFactor(slider, 100); } cv.out_off += cv.step * in_channels; for (unsigned l1 = 0; l1 < 2; l1++) { qs.sprintf("Out %d", l1); port_out[l1] = new Port(qs, PORT_OUT, l1, this); } } void M_stereomix::generateCycle() { int l1; unsigned int l2; float mixgain[2]; for (unsigned l3 = 0; l3 < in_channels; l3++) if ((solo_index >= in_channels || solo_index == l3) && mute[l3] == 0) inData[l3] = in_port_list.at(l3)->getinputdata(); else inData[l3] = synthdata->zeroModuleData; mixgain[0] = gain * (1.0 - pan[0]) * mixer_gain[0]; mixgain[1] = gain * (1.0 + pan[0]) * mixer_gain[0]; for (l1 = 0; l1 < synthdata->poly; l1++) for (l2 = 0; l2 < synthdata->cyclesize; l2++) { data[0][l1][l2] = mixgain[0] * inData[0][l1][l2]; data[1][l1][l2] = mixgain[1] * inData[0][l1][l2]; } for (unsigned l3 = 0; l3 < in_channels; l3++) { mixgain[0] = gain * (1.0 - pan[l3]) * mixer_gain[l3]; mixgain[1] = gain * (1.0 + pan[l3]) * mixer_gain[l3]; for (l1 = 0; l1 < synthdata->poly; l1++) { for (l2 = 0; l2 < synthdata->cyclesize; l2++) { data[0][l1][l2] += mixgain[0] * inData[l3][l1][l2]; data[1][l1][l2] += mixgain[1] * inData[l3][l1][l2]; } } } } /* void M_stereomix::soloToggled(bool) { int l1; QCheckBox *checkbox; if (ignore_check) return; checkbox = (QCheckBox *)sender(); ignore_check = true; for (l1 = 0; l1 < configDialog->midiCheckBoxList.count() >> 1; l1++) { if (configDialog->midiCheckBoxList.at(2 * l1 + 1)->checkBox != checkbox) configDialog->midiCheckBoxList.at(2 * l1 + 1)->checkBox->setChecked(false); else { if (checkbox->isChecked()) { solo_index = l1; } else { solo_index = -1; } //!!configDialog->midiCheckBoxList.at(2 * l1)->updateCheck(false); } } ignore_check = false; } void M_stereomix::muteToggled(bool) { int l1; QCheckBox *checkbox; if (ignore_check) return; checkbox = (QCheckBox *)sender(); ignore_check = true; for (l1 = 0; l1 < configDialog->midiCheckBoxList.count() >> 1; l1++) { if ((configDialog->midiCheckBoxList.at(2 * l1)->checkBox == checkbox) && configDialog->midiCheckBoxList.at(2 * l1)->checkBox->isChecked() && configDialog->midiCheckBoxList.at(2 * l1 + 1)->checkBox->isChecked()) { //!!configDialog->midiCheckBoxList.at(2 * l1 + 1)->updateCheck(false); solo_index = -1; } } ignore_check = false; } */ ams-2.0.1/src/m_ladspa.h0000664000076400007640000000306311051112643011741 00000000000000#ifndef M_LADSPA_H #define M_LADSPA_H #include #include "module.h" #define MODULE_LADSPA_WIDTH 140 #define MODULE_LADSPA_HEIGHT 40 #define MAX_AUDIOPORTS 8 // TODO audioports should be allocated dynamically #define MAX_OUTPORTS 16 #define MAX_CONTROLPORTS 48 // TODO controlports should be allocated dynamically class M_ladspa : public Module { Q_OBJECT QList in_port_list, out_port_list; QList in_ctrl_port_list, out_ctrl_port_list; const LADSPA_Descriptor *ladspa_dsc; LADSPA_Handle ladspa_handle[MAXPOLY]; LADSPA_Data *ladspaDataIn[MAX_AUDIOPORTS][MAXPOLY]; LADSPA_Data control_data[MAX_CONTROLPORTS], control_gui[MAX_CONTROLPORTS], control_out[MAX_CONTROLPORTS]; LADSPA_Data control_data_min[MAX_CONTROLPORTS], control_data_max[MAX_CONTROLPORTS]; bool controlPortRate[MAX_CONTROLPORTS]; int ladspa_audio_in_count, ladspa_audio_out_count; int ladspa_ctrl_in_count, ladspa_ctrl_out_count; int ctrl_index[MAX_CONTROLPORTS], audio_index[MAX_CONTROLPORTS]; float rate_factor; int ladspaPoly; public: float **inData[MAX_AUDIOPORTS]; float **inData_ctrl[MAX_CONTROLPORTS]; int ladspaDesFuncIndex; bool isPoly, hasExtCtrlPorts; QString pluginName; private: QPixmap logo; public: M_ladspa(QWidget* parent, int ladspaDesFuncIndex, int p_n=0, bool poly = false, bool extCtrlPorts = false); ~M_ladspa(); void generateCycle(); protected: virtual void paintEvent(QPaintEvent *ev); }; #endif ams-2.0.1/src/scopescreen.cpp0000664000076400007640000001206511051103434013025 00000000000000#include #include #include #include #include #include #include #include #include #include #include #include #include "synthdata.h" #include "scopescreen.h" #include ScopeScreen::ScopeScreen(float &timeScale, int &mode, int &edge, int &triggerMode, float &triggerThrs, float &zoom) : timeScale(timeScale) , mode(mode) , edge(edge) , triggerMode(triggerMode) , triggerThrs(triggerThrs) , zoom(zoom) { scopebuf = (float *)malloc(SCOPE_BUFSIZE * sizeof(float)); scopedata= (float *)malloc(SCOPE_BUFSIZE * sizeof(float)); scopebufValidFrames = 0; mode = MODE_NORMAL; edge = EDGE_RISING; triggerMode = TRIGGERMODE_CONTINUOUS; triggerThrs = 0; triggered = false; ch1 = 0; ch2 = 1; zoom = 1; readofs = 0; writeofs = 0; setPalette(QPalette(QColor(0, 80, 0), QColor(0, 80, 0))); } ScopeScreen::~ScopeScreen() { free(scopebuf); free(scopedata); } void ScopeScreen::calcY(int offset) { x2 = int((float)offset * xscale); if (ch1 < 0) { s1 = 0; } else { s1 = scopebuf[2 * offset + ch1]; } if (ch2 < 0) { s2 = 0; } else { s2 = scopebuf[2 * offset + ch2]; } switch (mode) { case MODE_NORMAL: y2ch1 = int(yscale * s1); y2ch2 = int(yscale * s2); break; case MODE_SUM: y2ch1 = int(yscale * (s1+s2)); break; case MODE_DIFF: y2ch1 = int(yscale * (s1-s2)); break; } } void ScopeScreen::paintEvent(QPaintEvent *) { // std::cout << __PRETTY_FUNCTION__ << std::endl; // return; int l1, thrs, vw, vh, vh_2; QPainter p(this); vw = width(); vh = height(); vh_2 = vh >> 1; xscale = (float)vw / (float)timeScaleFrames(); yscale = zoom * (float)height() / 65536.0; thrs = int(yscale * triggerThrs * 32767.0); if (triggerMode == TRIGGERMODE_TRIGGERED) { p.setPen(QColor(0, 255, 255)); p.drawLine(0, vh_2 - thrs, 10, vh_2 - thrs); p.setPen(QColor(0, 220, 0)); } calcY(0); x1 = x2; y1ch1 = y2ch1; y1ch2 = y2ch2; for (l1 = 1; l1 < timeScaleFrames(); l1++) { calcY(l1); if (x2 == x1) continue; switch (mode) { case MODE_NORMAL: if (ch1 >= 0) { p.setPen(QColor(0, 220, 0)); p.drawLine(x1, vh_2 - y1ch1, x2, vh_2 - y2ch1); } if (ch2 >= 0) { p.setPen(QColor(255, 255, 0)); p.drawLine(x1, vh_2 - y1ch2, x2, vh_2 - y2ch2); } break; case MODE_SUM: if ((ch1 >= 0) && (ch2 >= 0)) { p.setPen(QColor(0, 220, 0)); p.drawLine(x1, vh_2 - y1ch1, x2, vh_2 - y2ch1); } break; case MODE_DIFF: if ((ch1 >= 0) && (ch2 >= 0)) { p.setPen(QColor(0, 220, 0)); p.drawLine(x1, vh_2 - y1ch1, x2, vh_2 - y2ch1); } break; } x1 = x2; y1ch1 = y2ch1; y1ch2 = y2ch2; } p.setPen(QColor(0, 220, 0)); // p.drawRect(0, 1, vw-1, vh-1); p.drawLine(0, vh_2, vw - 1, vh_2); p.drawLine(vw >> 1, 0, vw >> 1, vh); p.drawText(5, 20, QString::number((int)timeScale)+" ms"); } void ScopeScreen::refreshScope() { int l1, ofs; float s1, s2; readofs = writeofs - synthdata->cyclesize - timeScaleFrames(); if (readofs < 0 ) { readofs+=SCOPE_BUFSIZE >> 1; } ofs = readofs; if ((triggerMode == TRIGGERMODE_TRIGGERED) && (ch1 >=0)) { l1 = 0; triggered = false; while(l1 < TRIGGER_RANGE) { s1 = scopedata[2 * ofs + ch1]; ofs--; if (ofs < 0 ) { ofs += SCOPE_BUFSIZE >> 1; } s2 = scopedata[2 * ofs +ch1]; if (edge == EDGE_FALLING) { if ((s1 < triggerThrs * 32767.0) && (s2 > triggerThrs * 32767.0)) { readofs = ofs; triggered = true; break; } } else { if ((s1 > triggerThrs * 32767.0) && (s2 < triggerThrs * 32767.0)) { readofs = ofs; triggered = true; break; } } ofs--; if (ofs < 0 ) { ofs += SCOPE_BUFSIZE >> 1; } l1++; } } if ((triggerMode != TRIGGERMODE_TRIGGERED) || triggered) { // fprintf(stderr, "M1\n"); for (l1 = 0; l1 < timeScaleFrames(); l1++) { // fprintf(stderr, "l1: %d ofs: %d\n", l1, ofs); scopebuf[2 * l1] = scopedata[2 * ofs]; scopebuf[2 * l1 + 1] = scopedata[2 * ofs + 1]; ofs++; if (ofs >= SCOPE_BUFSIZE >> 1) { ofs -= SCOPE_BUFSIZE >> 1; } } scopebufValidFrames = timeScaleFrames(); // fprintf(stderr, "M2\n"); } update(); // repaint(); } void ScopeScreen::singleShot() { refreshScope(); } QSize ScopeScreen::sizeHint() const { return QSize(MINIMUM_WIDTH, MINIMUM_HEIGHT); } QSizePolicy ScopeScreen::sizePolicy() const { return QSizePolicy( QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding); } int ScopeScreen::setCh1(int p_ch1) { ch1 = p_ch1; update(); return(ch1); } int ScopeScreen::setCh2(int p_ch2) { ch2 = p_ch2; update(); return(ch2); } void ScopeScreen::mcAbleChanged() { update(); } ams-2.0.1/src/m_spectrum.cpp0000664000076400007640000002346411051103413012674 00000000000000#ifndef OUTDATED_CODE #include "m_spectrum.h" M_spectrum::M_spectrum(QWidget* parent) : Module(M_type_spectrum, 0, parent, tr("Spectrum")) { QString qs; setGeometry(MODULE_NEW_X, MODULE_NEW_Y, MODULE_SPECTRUM_WIDTH, MODULE_SPECTRUM_HEIGHT); port_in[0] = new Port(tr("In 0"), PORT_IN, 0, this); port_in[1] = new Port(tr("In 1"), PORT_IN, 1, this); configDialog->addLabel( "This modules source-code is outdated.\n" "Replace this module by a \"PCM Out\" and connect the pcm-out's jack" " ports to i.e. JAAA, JAPA, CLAM ... to obtain spectral informations.\n" "See http://apps.linuxaudio.org"); } #else // OUTDATED_CODE #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "synthdata.h" #include "m_spectrum.h" #include "module.h" #include "port.h" M_spectrum::M_spectrum(QWidget* parent, const char *name) : Module(0, parent, name) { QString qs; Q3HBox *hbox1, *labelBox; Q3VBox *vbox1, *vbox2; M_type = M_type_spectrum; setGeometry(MODULE_NEW_X, MODULE_NEW_Y, MODULE_SPECTRUM_WIDTH, MODULE_SPECTRUM_HEIGHT); gain = 0; mixer_gain[0] = 1.0; mixer_gain[1] = 1.0; agc = 1; port_in[0] = new Port(tr("In 0"), PORT_IN, 0, this); port_in[1] = new Port(tr("In 1"), PORT_IN, 1, this); qs = tr("Spectrum ID %1").arg(moduleID); configDialog->setWindowTitle(qs); configDialog->initTabWidget(); zoom = 1; viewMode = 0; fftFrames = 4; normMode = 0; f_min = 0; f_max = (double)synthdata->rate / 2.0; freqZoom = 0; refreshMode = 0; fftMode = 1; window = 2; Q3VBox *spectrumTab = new Q3VBox(configDialog->tabWidget); configDialog->addSpectrumScreen(spectrumTab); labelBox = configDialog->addHBox(); minLabel = new QLabel(labelBox); QWidget *dummy = new QWidget(labelBox); maxLabel = new QLabel(labelBox); labelBox->setStretchFactor(minLabel, 1); labelBox->setStretchFactor(dummy, 20); labelBox->setStretchFactor(maxLabel, 1); qs.sprintf("%d Hz", (int)rint(f_min)); minLabel->setText(qs); qs.sprintf("%d Hz", (int)rint(f_max)); maxLabel->setText(qs); configDialog->addTab(spectrumTab, tr("Spectrum")); Q3VBox *paramTab = new Q3VBox(configDialog->tabWidget); Q3VBox *zoomTab = new Q3VBox(configDialog->tabWidget); configDialog->addSlider(tr("Gain (dB)"), gain, -20, 20, false, zoomTab); QObject::connect(configDialog->midiSliderList.at(0), SIGNAL(valueChanged(int)), this, SLOT(updateZoom(int))); configDialog->addSlider("f_min", f_min, 0, f_max, false, zoomTab); QObject::connect(configDialog->midiSliderList.at(1), SIGNAL(valueChanged(int)), this, SLOT(update_f_min(int))); configDialog->addSlider("f_max", f_max, 0, f_max, false, zoomTab); QObject::connect(configDialog->midiSliderList.at(2), SIGNAL(valueChanged(int)), this, SLOT(update_f_max(int))); configDialog->addCheckBox(freqZoom, tr("Frequency Zoom"), &freqZoom, zoomTab); QObject::connect(configDialog->midiCheckBoxList.at(0)->checkBox, SIGNAL(toggled(bool)), this, SLOT(freqZoomToggled(bool))); hbox1 = configDialog->addHBox(paramTab); vbox1 = configDialog->addVBox(hbox1); vbox2 = configDialog->addVBox(hbox1); QStringList viewModeNames; viewModeNames << tr("Normal Spectrum") << tr("Spectrum over Time"); configDialog->addComboBox(tr("Display Mode"), viewMode, &viewModeNames, vbox1); QObject::connect(configDialog->midiComboBoxList.at(0)->comboBox, SIGNAL(highlighted(int)), this, SLOT(updateViewMode(int))); QStringList refreshModeNames; refreshModeNames << tr("Continuous") << tr("Single") << tr("Mouse"); configDialog->addComboBox(tr("Refresh Mode"), refreshMode, &refreshModeNames, vbox2); QObject::connect(configDialog->midiComboBoxList.at(1)->comboBox, SIGNAL(highlighted(int)), this, SLOT(updateRefreshMode(int))); QStringList normModeNames; normModeNames << tr("Each Line"); normModeNames << tr("Global"); normModeNames << tr("Fixed"); configDialog->addComboBox(tr("Normalization Mode"), normMode, &normModeNames, vbox1); QObject::connect(configDialog->midiComboBoxList.at(2)->comboBox, SIGNAL(highlighted(int)), this, SLOT(updateNormMode(int))); QStringList fftModeNames; fftModeNames << tr("Power Spectrum"); fftModeNames << tr("Abs"); fftModeNames << tr("dB"); configDialog->addComboBox(tr("Spectrum Mode"), fftMode, &fftModeNames, vbox2); QObject::connect(configDialog->midiComboBoxList.at(3)->comboBox, SIGNAL(highlighted(int)), this, SLOT(updateFFTMode(int))); QStringList windowNames; windowNames << tr("Hamming"); windowNames << tr("Bartlett"); windowNames << tr("Hanning"); windowNames << tr("Welch"); configDialog->addComboBox("Window Function", window, &windowNames, vbox2); QObject::connect(configDialog->midiComboBoxList.at(4)->comboBox, SIGNAL(highlighted(int)), this, SLOT(updateWindow(int))); configDialog->addPushButton("Trigger", paramTab); QObject::connect(configDialog->midiPushButtonList.at(0), SIGNAL(clicked()), configDialog->spectrumScreenList.at(0), SLOT(singleShot())); QObject::connect(configDialog->spectrumScreenList.at(0), SIGNAL(runSpectrum()), this, SLOT(startSpectrum())); QStringList fftFramesNames; fftFramesNames << " 128"; fftFramesNames << " 256"; fftFramesNames << " 512"; fftFramesNames << " 1024"; fftFramesNames << " 2048"; fftFramesNames << " 4096"; fftFramesNames << " 8192"; fftFramesNames << "16384"; fftFramesNames << "32768"; configDialog->addComboBox(tr("Window Size"), fftFrames, &fftFramesNames, vbox1); QObject::connect(configDialog->midiComboBoxList.at(5)->comboBox, SIGNAL(highlighted(int)), this, SLOT(updateFFTFrames(int))); configDialog->addTab(zoomTab, tr("Zoom")); configDialog->addTab(paramTab, tr("Mode / Window")); floatdata = (float *)malloc(2 * synthdata->periodsize * sizeof(float)); memset(floatdata, 0, 2 * synthdata->periodsize * sizeof(float)); configDialog->spectrumScreenList.at(0)->writeofs = 0; timer = new QTimer(this); QObject::connect(timer, SIGNAL(timeout()), this, SLOT(timerProc())); startSpectrum(); } M_spectrum::~M_spectrum() { free(floatdata); } int M_spectrum::setGain(float p_gain) { gain = p_gain; return(0); } float M_spectrum::getGain() { return(gain); } void M_spectrum::generateCycle() { int l1, l2, l3, ofs; float mixgain, wavgain, lin_gain; float *spectrumdata, **indata; wavgain = 1.0 / (float)synthdata->poly; lin_gain = pow(10, gain/20.0); memset(floatdata, 0, 2 * synthdata->cyclesize * sizeof(float)); for (l1 = 0; l1 < 2; l1++) { indata = port_in[l1]->getinputdata (); mixgain = lin_gain * mixer_gain[l1]; for (l2 = 0; l2 < synthdata->cyclesize; l2++) { for (l3 = 0; l3 < synthdata->poly; l3++) { floatdata[2 * l2 + l1] += mixgain * indata[l3][l2]; } } } spectrumdata = configDialog->spectrumScreenList.at(0)->spectrumdata; ofs = configDialog->spectrumScreenList.at(0)->writeofs; for (l1 = 0; l1 < synthdata->cyclesize; l1++) { spectrumdata[2 * ofs] = wavgain * floatdata[2 * l1]; spectrumdata[2 * ofs + 1] = wavgain * floatdata[2 * l1 + 1]; if (++ofs >= SPECTRUM_BUFSIZE >> 1) ofs -= SPECTRUM_BUFSIZE >> 1; } configDialog->spectrumScreenList.at(0)->writeofs = ofs; } void M_spectrum::showConfigDialog() { } void M_spectrum::timerProc() { if (configDialog->spectrumScreenList.at(0)->getTriggerMode() == SPECTRUM_TRIGGERMODE_CONTINUOUS) { startSpectrum(); } configDialog->spectrumScreenList.at(0)->refreshSpectrum(); } void M_spectrum::updateFFTFrames(int val) { configDialog->spectrumScreenList.at(0)->setFFTFrames((int)rint(exp(M_LN2 * (7.0 + (float)fftFrames)))); } void M_spectrum::updateViewMode(int val) { configDialog->spectrumScreenList.at(0)->setViewMode((viewModeType)viewMode); } void M_spectrum::updateZoom(int val) { configDialog->spectrumScreenList.at(0)->setZoom(zoom); } void M_spectrum::update_f_min(int val) { QString qs; configDialog->spectrumScreenList.at(0)->set_f_min(f_min); qs.sprintf("%d Hz", (int)rint(f_min)); minLabel->setText(qs); } void M_spectrum::update_f_max(int val) { QString qs; configDialog->spectrumScreenList.at(0)->set_f_max(f_max); qs.sprintf("%d Hz", (int)rint(f_max)); maxLabel->setText(qs); } void M_spectrum::updateNormMode(int val) { configDialog->spectrumScreenList.at(0)->setNormMode((normModeType)normMode); } void M_spectrum::updateWindow(int val) { configDialog->spectrumScreenList.at(0)->setWindow((fftWindowType)window); } void M_spectrum::updateFFTMode(int val) { configDialog->spectrumScreenList.at(0)->setFFTMode((fftModeType)fftMode); } void M_spectrum::updateRefreshMode(int val) { if (refreshMode == 0) { configDialog->spectrumScreenList.at(0)->setTriggerMode(SPECTRUM_TRIGGERMODE_CONTINUOUS); startSpectrum(); } else { configDialog->spectrumScreenList.at(0)->setTriggerMode(SPECTRUM_TRIGGERMODE_SINGLE); } if (refreshMode == 2) { configDialog->spectrumScreenList.at(0)->setEnableMouse(true); } else { configDialog->spectrumScreenList.at(0)->setEnableMouse(false); } } void M_spectrum::freqZoomToggled(bool on) { configDialog->spectrumScreenList.at(0)->toggleFreqZoom(on); } void M_spectrum::startSpectrum() { timer->start(int((float)configDialog->spectrumScreenList.at(0)->getFFTFrames() / (float)synthdata->rate * 1000.0), true); } #endif // OUTDATED_CODE ams-2.0.1/src/mainwindow.cpp0000644000076400007640000003630511206452510012675 00000000000000#include #include #include #include #include "mainwindow.h" #include "synthdata.h" #include "../pixmaps/ams_32.xpm" /*some constants*/ #define APPNAME "AlsaModularSynth" #define PATCHEXT ".ams" class ScrollArea: public QScrollArea { void resizeEvent(QResizeEvent *ev) { QScrollArea::resizeEvent(ev); widget()->adjustSize(); } }; int MainWindow::pipeFd[2]; MainWindow::MainWindow(const ModularSynthOptions& mso) { /*make sure the window destructor is called on program exit*/ setAttribute(Qt::WA_DeleteOnClose); setWindowIcon(QPixmap(ams_32_xpm)); fileName = ""; rcFd = mso.rcFd; /*init synthesizer*/ modularSynth = new ModularSynth(this, mso); /*init window*/ ScrollArea *scrollArea = new ScrollArea(); scrollArea->setWidget(modularSynth); setCentralWidget(scrollArea); QMenu *filePopup = menuBar()->addMenu(tr("&File")); QMenu *synthesisPopup = menuBar()->addMenu(tr("&Synthesis")); QMenu *modulePopup = menuBar()->addMenu(tr("&Module")); QMenu *midiMenu = menuBar()->addMenu(tr("&View")); QMenu *helpMenu = menuBar()->addMenu(tr("&Help")); QMenu *newModulePopup = modulePopup->addMenu(tr("&New")); modularSynth->contextMenu = newModulePopup; filePopup->addAction(tr("&New"), this, SLOT(fileNew()), Qt::CTRL + Qt::Key_N); filePopup->addAction(tr("&Open..."), this, SLOT(fileOpen()), Qt::CTRL + Qt::Key_O); fileRecentlyOpenedFiles = filePopup->addMenu(tr("&Recently opened files")); filePopup->addAction(tr("&Save"), this, SLOT(fileSave()), Qt::CTRL + Qt::Key_S); filePopup->addAction(tr("Save &as..."), this, SLOT(fileSaveAs())); filePopup->addSeparator(); filePopup->addAction(tr("&Load Colors..."), modularSynth, SLOT(loadColors())); filePopup->addAction(tr("Save &Colors as..."), modularSynth, SLOT(saveColors())); filePopup->addSeparator(); filePopup->addAction(tr("&Quit"), qApp, SLOT(closeAllWindows()), Qt::CTRL + Qt::Key_Q); connect(qApp, SIGNAL(lastWindowClosed()), qApp, SLOT(quit())); synthesisPopup->addAction(tr("&Start"), modularSynth, SLOT(startSynth()), Qt::CTRL + Qt::Key_B); synthesisPopup->addAction(tr("Sto&p"), modularSynth, SLOT(stopSynth()), Qt::CTRL + Qt::Key_H); synthesisPopup->addAction(tr("&All Voices Off"), modularSynth, SLOT(allVoicesOff())); newModulePopup->addAction(tr("Amplifier"), modularSynth, SLOT(newM_amp())); newModulePopup->addAction(tr("Analog Driver (2 Out)"), modularSynth, SLOT(newM_ad_2())); newModulePopup->addAction(tr("Analog Driver (4 Out)"), modularSynth, SLOT(newM_ad_4())); newModulePopup->addAction(tr("Analog Driver (6 Out)"), modularSynth, SLOT(newM_ad_6())); newModulePopup->addAction(tr("Advanced ENV"), modularSynth, SLOT(newM_advenv())); newModulePopup->addAction(tr("Advanced MCV"), modularSynth, SLOT(newM_advmcv())); newModulePopup->addAction(tr("Comment"), modularSynth, SLOT(new_textEdit())); newModulePopup->addAction(tr("Converter"), modularSynth, SLOT(newM_conv())); newModulePopup->addAction(tr("CVS"), modularSynth, SLOT(newM_cvs())); newModulePopup->addAction(tr("Delay"), modularSynth, SLOT(newM_delay())); newModulePopup->addAction(tr("Dynamic Waves (4 Oscillators)"), modularSynth, SLOT(newM_dynamicwaves_4())); newModulePopup->addAction(tr("Dynamic Waves (6 Oscillators)"), modularSynth, SLOT(newM_dynamicwaves_6())); newModulePopup->addAction(tr("Dynamic Waves (8 Oscillators)"), modularSynth, SLOT(newM_dynamicwaves_8())); newModulePopup->addAction(tr("ENV"), modularSynth, SLOT(newM_env())); newModulePopup->addAction(tr("Function 1 --> 1"), modularSynth, SLOT(newM_function_1())); newModulePopup->addAction(tr("Function 1 --> 2"), modularSynth, SLOT(newM_function_2())); newModulePopup->addAction(tr("Function 1 --> 4"), modularSynth, SLOT(newM_function_4())); newModulePopup->addAction(tr("INV"), modularSynth, SLOT(newM_inv())); newModulePopup->addAction(tr("LFO"), modularSynth, SLOT(newM_lfo())); newModulePopup->addAction(tr("MCV"), modularSynth, SLOT(newM_mcv())); newModulePopup->addAction(tr("MIDI Out"), modularSynth, SLOT(newM_midiout())); newModulePopup->addAction(tr("Mixer 2 -> 1"), modularSynth, SLOT(newM_mix_2())); newModulePopup->addAction(tr("Mixer 4 -> 1"), modularSynth, SLOT(newM_mix_4())); newModulePopup->addAction(tr("Mixer 8 -> 1"), modularSynth, SLOT(newM_mix_8())); newModulePopup->addAction(tr("Multiphase LFO"), modularSynth, SLOT(newM_mphlfo())); newModulePopup->addAction(tr("Noise / Random"), modularSynth, SLOT(newM_noise())); newModulePopup->addAction(tr("Noise / Random 2"), modularSynth, SLOT(newM_noise2())); newModulePopup->addAction(tr("PCM Out"), modularSynth, SLOT(newM_pcmout())); newModulePopup->addAction(tr("PCM In"), modularSynth, SLOT(newM_pcmin())); newModulePopup->addAction(tr("Quantizer"), modularSynth, SLOT(newM_quantizer())); newModulePopup->addAction(tr("Quantizer 2"), modularSynth, SLOT(newM_vquant())); newModulePopup->addAction(tr("Ring Modulator"), modularSynth, SLOT(newM_ringmod())); newModulePopup->addAction(tr("Sample && Hold"), modularSynth, SLOT(newM_sh())); newModulePopup->addAction(tr("Scala MCV"), modularSynth, SLOT(newM_scmcv())); newModulePopup->addAction(tr("Scala Quantizer"), modularSynth, SLOT(newM_scquantizer())); newModulePopup->addAction(tr("Scope View"), modularSynth, SLOT(newM_scope())); newModulePopup->addAction(tr("SEQ 8"), modularSynth, SLOT(newM_seq_8())); newModulePopup->addAction(tr("SEQ 12"), modularSynth, SLOT(newM_seq_12())); newModulePopup->addAction(tr("SEQ 16"), modularSynth, SLOT(newM_seq_16())); newModulePopup->addAction(tr("SEQ 24"), modularSynth, SLOT(newM_seq_24())); newModulePopup->addAction(tr("SEQ 32"), modularSynth, SLOT(newM_seq_32())); newModulePopup->addAction(tr("Slew Limiter"), modularSynth, SLOT(newM_slew())); newModulePopup->addAction(tr("Spectrum View"), modularSynth, SLOT(newM_spectrum())); newModulePopup->addAction(tr("Stereo Mixer 2"), modularSynth, SLOT(newM_stereomix_2())); newModulePopup->addAction(tr("Stereo Mixer 4"), modularSynth, SLOT(newM_stereomix_4())); newModulePopup->addAction(tr("Stereo Mixer 8"), modularSynth, SLOT(newM_stereomix_8())); newModulePopup->addAction(tr("VC Double Decay"), modularSynth, SLOT(newM_vcdoubledecay())); newModulePopup->addAction(tr("VC Envelope"), modularSynth, SLOT(newM_vcenv())); newModulePopup->addAction(tr("VC Envelope II"), modularSynth, SLOT(newM_vcenv2())); newModulePopup->addAction(tr("VC Organ (4 Oscillators)"), modularSynth, SLOT(newM_vcorgan_4())); newModulePopup->addAction(tr("VC Organ (6 Oscillators)"), modularSynth, SLOT(newM_vcorgan_6())); newModulePopup->addAction(tr("VC Organ (8 Oscillators)"), modularSynth, SLOT(newM_vcorgan_8())); newModulePopup->addAction(tr("VC Panning"), modularSynth, SLOT(newM_vcpanning())); newModulePopup->addAction(tr("VC Switch"), modularSynth, SLOT(newM_vcswitch())); newModulePopup->addAction(tr("VCA lin."), modularSynth, SLOT(newM_vca_lin())); newModulePopup->addAction(tr("VCA exp."), modularSynth, SLOT(newM_vca_exp())); newModulePopup->addAction(tr("VCF"), modularSynth, SLOT(newM_vcf())); newModulePopup->addAction(tr("VCO"), modularSynth, SLOT(newM_vco())); newModulePopup->addAction(tr("VCO2"), modularSynth, SLOT(newM_vco2())); newModulePopup->addAction(tr("WAV Out"), modularSynth, SLOT(newM_wavout())); modulePopup->addAction(tr("&Show Ladspa Browser..."), modularSynth, SLOT(displayLadspaPlugins())); midiMenu->addAction(tr("&Control Center..."), modularSynth, SLOT(displayMidiController())); midiMenu->addAction(tr("&Parameter View..."), modularSynth, SLOT(displayParameterView())); midiMenu->addAction(tr("Pre&ferences..."), modularSynth, SLOT(displayPreferences())); helpMenu->addAction(tr("&About AlsaModularSynth..."), modularSynth, SLOT(displayAbout())); helpMenu->addAction(tr("About &Qt..."), this, SLOT(helpAboutQt())); connect(filePopup, SIGNAL(aboutToShow()), this, SLOT(setupRecentFilesMenu())); connect(fileRecentlyOpenedFiles, SIGNAL(triggered(QAction*)), this, SLOT(recentFileActivated(QAction*))); if (pipe(pipeFd) < 0) return; QSocketNotifier *sigNotifier = new QSocketNotifier(pipeFd[0], QSocketNotifier::Read, this); QObject::connect(sigNotifier, SIGNAL(activated(int)), this, SLOT(unixSignal(int))); struct sigaction action; memset(&action, 0, sizeof(action)); action.sa_handler = sighandler; sigaction(SIGINT, &action, NULL); readConfig(); updateWindowTitle(); if (mso.havePresetPath) { qWarning(QObject::tr("Preset path now %1").arg(mso.presetPath).toUtf8()); modularSynth->setLoadPath(mso.presetPath); } modularSynth->go(mso.forceJack, mso.forceAlsa); // autoload patch file if (mso.havePreset) { qWarning(QObject::tr("Loading preset %1").arg(mso.presetName).toUtf8()); openFile(mso.presetName); } if (mso.noGui) hide(); else show(); } MainWindow::~MainWindow() { qWarning(QObject::tr("Closing synthesizer...").toUtf8()); writeConfig(); // remove file lock struct flock lock = {F_WRLCK, SEEK_SET, 0, 0, 0}; if (fcntl(rcFd, F_UNLCK, &lock) == -1) { qWarning(QObject::tr("Could not unlock preferences file.").toUtf8()); } } void MainWindow::sighandler(int s) { char pipeMessage = s; write(pipeFd[1], &pipeMessage, 1); } void MainWindow::unixSignal(int /*fd*/) { //char pipeIn[4]; //int pipeRed = read(fd, pipeIn, sizeof(pipeIn)); //StdOut << __PRETTY_FUNCTION__ << (int)pipeIn[0] << endl; //qApp->quit(); qApp->closeAllWindows(); } /*check for changed file data*/ bool MainWindow::isModified() { return modularSynth->isModified(); } int MainWindow::querySaveChanges() { QString queryStr; if (fileName.isEmpty()) queryStr = tr("Unnamed file was changed.\nSave changes?"); else queryStr = tr("File '%1' was changed.\n" "Save changes?").arg(fileName); return QMessageBox::warning(this, tr("Save changes"), queryStr, tr("&Yes"), tr("&No"), tr("Cancel")); } void MainWindow::chooseFile() { QString fn = QFileDialog::getOpenFileName(this, tr("Open patch file"), modularSynth->getLoadPath(), tr("Patch files") + " (*" + PATCHEXT + ")"); if (fn.isEmpty()) return; else openFile(fn); } void MainWindow::fileNew() { if (isSave()) newFile(); } void MainWindow::newFile() { modularSynth->clearConfig(true); fileName = ""; updateWindowTitle(); } void MainWindow::fileOpen() { if (isSave()) chooseFile(); } bool MainWindow::isSave() { bool result = false; if (isModified()) { int choice = querySaveChanges(); switch (choice) { case 0: //Yes if (saveFile()) result = true; break; case 1: //No result = true; break; case 2: //Cancel default: break; } } else result = true; return result; } void MainWindow::openFile(const QString& fn) { QFile f(fn); if (!f.open(QIODevice::ReadOnly)) { qWarning(tr("Could not read file '%1'").arg(fn).toUtf8()); return; } modularSynth->setLoadPath(fn.left(fn.lastIndexOf('/'))); fileName = fn; QTextStream ts(&f); ts.setCodec("UTF-8"); modularSynth->load(ts); f.close(); addRecentlyOpenedFile(fileName, recentFiles); updateWindowTitle(); } void MainWindow::fileSave() { saveFile(); } bool MainWindow::saveFile() { if (fileName.isEmpty()) { fileSaveAs(); return true; } QFile f(fileName); if (!f.open(QIODevice::WriteOnly)) { qWarning(tr("Could not open file '%1'").arg(fileName).toUtf8()); return false; } QTextStream ts(&f); ts.setCodec("UTF-8"); modularSynth->save(ts); f.close(); updateWindowTitle(); return true; } void MainWindow::fileSaveAs() { QString fn = QFileDialog::getSaveFileName(this, tr("Save patch file"), modularSynth->getSavePath(), tr("Patch files") + " (*" + PATCHEXT + ")"); if (!fn.isEmpty()) { /*check for file extension*/ if (!fn.endsWith(PATCHEXT)) fn.append(PATCHEXT); modularSynth->setSavePath(fn.left(fn.lastIndexOf('/'))); fileName = fn; saveFile(); } else qWarning(tr("Saving aborted").toUtf8()); } void MainWindow::updateWindowTitle() { QString title = QString("%1 - (%2) - [%3]"). arg(synthdata->name). arg(modularSynth->getSynthDataPoly()). arg(fileName.isEmpty() ? tr("noname") : fileName); setWindowTitle(title); } void MainWindow::closeEvent(QCloseEvent *e) { if (isSave()) { modularSynth->clearConfig(false); e->accept(); } else e->ignore(); } void MainWindow::helpAboutQt() { QMessageBox::aboutQt(this, tr("About Qt")); } void MainWindow::readConfig() { QString s; QFile file; if (!file.open(rcFd, QIODevice::ReadOnly)) { qWarning("Could not open preferences file."); return; } if (!file.seek(0)) { qWarning("Could not seek start of preferences file."); file.close(); return; } QTextStream ts(&file); while (!ts.atEnd()) { s = ts.readLine(); if (s.startsWith("RecentFile")) appendRecentlyOpenedFile(s.section(' ', 1), recentFiles); else modularSynth->loadPreferences(s); } file.close(); modularSynth->refreshColors(); } void MainWindow::writeConfig() { QFile file; if (!file.open(rcFd, QIODevice::WriteOnly)) { qWarning("Could not open preferences file."); return; } if (!file.resize(0)) { qWarning("Could not resize preferences file."); file.close(); return; } QTextStream ts(&file); modularSynth->savePreferences(ts); // save recently opened files if (recentFiles.count() > 0) { QStringList::Iterator it = recentFiles.begin(); for (; it != recentFiles.end(); ++it) { ts << "RecentFile " << *it << endl; } } file.close(); } void MainWindow::setupRecentFilesMenu() { fileRecentlyOpenedFiles->clear(); if (recentFiles.count() > 0) { fileRecentlyOpenedFiles->setEnabled(true); QStringList::Iterator it = recentFiles.begin(); for (; it != recentFiles.end(); ++it) { fileRecentlyOpenedFiles->addAction(*it); } } else { fileRecentlyOpenedFiles->setEnabled(false); } } void MainWindow::recentFileActivated(QAction *action) { if (!action->text().isEmpty()) { if (isSave()) openFile(action->text()); } } void MainWindow::addRecentlyOpenedFile(const QString &fn, QStringList &lst) { QFileInfo fi(fn); if (lst.contains(fi.absoluteFilePath())) return; if (lst.count() >= 6 ) lst.removeLast(); lst.prepend(fi.absoluteFilePath()); } void MainWindow::appendRecentlyOpenedFile(const QString &fn, QStringList &lst) { QFileInfo fi(fn); if (lst.contains(fi.absoluteFilePath())) return; if (lst.count() >= 6 ) lst.removeFirst(); lst.append(fi.absoluteFilePath()); } ams-2.0.1/src/port_popup.cpp0000664000076400007640000000314311056204134012724 00000000000000#include "port_popup.h" PopupMenu::PopupMenu(QWidget* parent) :QMenu(parent) { acDisconnect = new QAction(tr("&Disconnect"), this); addAction(acDisconnect); addSeparator(); acDefaultCable = new QAction(tr("De&fault Cable"), this); addAction(acDefaultCable); acGrayCable = new QAction(tr("Gr&ay Cable"), this); addAction(acGrayCable); acRedCable = new QAction(tr("&Red Cable"), this); addAction(acRedCable); acGreenCable = new QAction(tr("&Green Cable"), this); addAction(acGreenCable); acBlueCable = new QAction(tr("&Blue Cable"), this); addAction(acBlueCable); acYellowCable = new QAction(tr("&Yellow Cable"), this); addAction(acYellowCable); addSeparator(); acSetJackColor = new QAction(tr("Set &Jack Color..."), this); addAction(acSetJackColor); acSetCableColor = new QAction(tr("Set &Cable Color..."), this); addAction(acSetCableColor); } PopupMenu::portAction PopupMenu::runAt(const QPoint& pos) { portAction result; QAction* ac = exec(pos); if (ac == acDisconnect) result = paDisconnect; else if (ac ==acDefaultCable) result = paDefaultCable; else if (ac ==acGrayCable) result = paGrayCable; else if (ac ==acRedCable) result = paRedCable; else if (ac ==acGreenCable) result = paGreenCable; else if (ac ==acBlueCable) result = paBlueCable; else if (ac ==acYellowCable) result = paYellowCable; else if (ac ==acSetJackColor) result = paSetJackColor; else if (ac ==acSetCableColor) result = paSetCableColor; else result = paNone; return result; } ams-2.0.1/src/canvasfunction.h0000664000076400007640000000204211051103032013166 00000000000000#ifndef CANVASFUNCTION_H #define CANVASFUNCTION_H #include #include #include #include #include #include #include "function.h" class CanvasPoint: public QGraphicsEllipseItem { class CanvasFunction &canvasFunction; int p; void mouseMoveEvent(QGraphicsSceneMouseEvent * event); void mousePressEvent(QGraphicsSceneMouseEvent * event); public: CanvasPoint(CanvasFunction &, int p); }; class CanvasFunction { friend class CanvasPoint; Function &function; const int index; QColor color() { return function.colorTable[index]; } void mouseMoveEvent(int p, QGraphicsSceneMouseEvent * event); void mousePressEvent(int p, QGraphicsSceneMouseEvent * event); QVector pos0; public: QList canvasPoints; QList canvasLines; public: CanvasFunction(Function &function, int index); ~CanvasFunction(); void setPoint(int p); void setPoint(int p, QPointF &pos); void setZ(int z); }; #endif ams-2.0.1/src/m_vco2.h0000664000076400007640000000241311051103075011343 00000000000000#ifndef M_VCO2_H #define M_VCO2_H #include "module.h" #define MODULE_VCO2_WIDTH 85 #define MODULE_VCO2_HEIGHT 170 /** single waveform version of the AMS oscillator * save some serious cpu cycles by generating only one waveform */ enum WaveFormType {SINUS,TRIANGLE,SAWTOOTH,RECTANGLE, AWAVE_SAW, AWAVE_SAW2, AWAVE_SAW3 }; class M_vco2 : public Module { Q_OBJECT float freq, phi0, pw0; float edge; float wave_period; float phi[MAXPOLY]; // float dphi, phi1, phi_const, pw, d, dd, dsaw, half_wave, third_wave; // float freq_const, freq_tune, gain_linfm, log2, pw_low, pw_high, float wave_period_2,wave_period_3,Pi2Times,PKonst; float vcoExpFMGain, vcoLinFMGain, pwGain; int waveForm; int harmonic, subharmonic, octave; Port *port_M_freq, *port_M_exp, *port_M_lin, *port_M_pw; Port *port_sine, *port_tri, *port_saw, *port_rect, *port_aux; public: float **freqData; float **pwData; // Duty cycle modulation generated by M_lfo float **expFMData; // Frequency modulation exp characteristic float **linFMData; // Frequency modulation lin characteristic public: M_vco2(QWidget* parent=0); void generateCycle(); }; #endif ams-2.0.1/src/m_vcswitch.h0000664000076400007640000000060211051103076012323 00000000000000#ifndef M_VCSWITCH_H #define M_VCSWITCH_H #include "module.h" #define MODULE_VCSWITCH_WIDTH 115 #define MODULE_VCSWITCH_HEIGHT 100 class M_vcswitch : public Module { Q_OBJECT float switchLevel; Port *port_M_in[2], *port_M_cv, *port_out[2], *port_mix; public: M_vcswitch(QWidget* parent=0); void generateCycle(); }; #endif ams-2.0.1/src/m_lfo.h0000664000076400007640000000130711051103052011246 00000000000000#ifndef M_LFO_H #define M_LFO_H #include "module.h" #define MODULE_LFO_WIDTH 85 #define MODULE_LFO_HEIGHT 180 class M_lfo : public Module { Q_OBJECT float freq, phi0; double si[MAXPOLY], old_si[MAXPOLY]; double sa[MAXPOLY], old_sa[MAXPOLY]; double t[MAXPOLY], old_t[MAXPOLY]; double r[MAXPOLY], old_r[MAXPOLY]; double sh[MAXPOLY], old_sh[MAXPOLY]; int state[MAXPOLY]; double dt[MAXPOLY], wave_period; bool trigger[MAXPOLY]; Port *port_M_trigger, *port_sine, *port_tri, *port_sawup, *port_sawdown, *port_rect, *port_sh; public: M_lfo(QWidget* parent=0); void generateCycle(); }; #endif ams-2.0.1/src/synthdata.cpp0000664000076400007640000005303611257447431012536 00000000000000#include #include #include #include #include #include #include #include #include #include #include "guiwidget.h" #include "midiwidget.h" #include "synthdata.h" #include "m_advmcv.h" #include "m_env.h" #include "m_vcenv.h" #include "m_vcenv2.h" #include "m_pcmout.h" #include "m_pcmin.h" #include "m_advenv.h" #include "m_dynamicwaves.h" #include "m_wavout.h" #include "m_midiout.h" #include "m_scope.h" union uf { struct { unsigned int mant: 23; unsigned int exp: 8; unsigned int sign: 1; } p; float f; unsigned u; }; float SynthData::exp2_data[EXP2_BUF_LEN]; SynthData::SynthData(const QString &synthName, int poly, float edge) : setAllNotesOff(false) , edge(edge) , poly(poly) , port_sem(1) , name(synthName) , bigFont("Helvetica", 10) , smallFont("Helvetica", 8) , activeMidiControllers(NULL) , framesDone(0) , framesGUIPinged(0) { if (pthread_mutex_init(&rtMutex, NULL) < 0) { StdErr << __PRETTY_FUNCTION__ << ": pthread_mutex_init() failed" << endl; exit(-1); } if (pipe(pipeFd) < 0) { StdErr << __PRETTY_FUNCTION__ << ": pipe() failed" << endl; exit(-1); } int l1, l2; double dphi, phi, dy, dyd; int decaytime; decaytime = (int)((float)WAVE_PERIOD / 16.0); initVoices(); rate = 0; periods = 0; periodsize = 0; cyclesize = 0; moduleCount = 0; moduleID = 0; doSynthesis = false; sustainFlag = false; midiChannel = -1; midiControllerMode = 0; loadPath = ""; savePath = ""; rcPath = ""; exp_data = (float *)malloc(EXP_TABLE_LEN * sizeof(float)); wave_sine = (float *)malloc(WAVE_PERIOD * sizeof(float)); wave_saw = (float *)malloc(WAVE_PERIOD * sizeof(float)); wave_saw2 = (float *)malloc(WAVE_PERIOD * sizeof(float)); wave_rect = (float *)malloc(WAVE_PERIOD * sizeof(float)); wave_tri = (float *)malloc(WAVE_PERIOD * sizeof(float)); dphi = 2.0 * M_PI / WAVE_PERIOD; phi = 0; for (l1 = 0; l1 < WAVE_PERIOD; l1++) { wave_sine[l1] = sin(phi); phi += dphi; } for (l1 = 0; l1 < EXP_TABLE_LEN; l1++) exp_data[l1] = exp(l1 / 1000.0 - 16.0); { unsigned u = 0; for (float f = 0; f < 1; f += 1.0/EXP2_BUF_LEN) { union uf e; e.f = exp2f(f); e.p.exp = 0; exp2_data[u++] = e.f; } if (u != EXP2_BUF_LEN) { StdErr << __PRETTY_FUNCTION__ << ": exp2_data initialisation failed" << endl; exit(-1); } } dy = 2.0 / (float)(WAVE_PERIOD - decaytime); dyd = 2.0 / decaytime; l2 = 0; for (l1 = 0; l1 < (WAVE_PERIOD - decaytime)>>1; l1++) wave_saw[l2++] = (float)l1 * dy; for (l1 = 0; l1 < decaytime; l1++) wave_saw[l2++] = 1.0 - (float)l1 * dyd; for (l1 = 0; l1 < (WAVE_PERIOD - decaytime)>>1; l1++) wave_saw[l2++] = -1.0 + (float)l1 * dy; l2 = WAVE_PERIOD - 1; for (l1 = 0; l1 < (WAVE_PERIOD - decaytime)>>1; l1++) wave_saw2[l2--] = (float)l1 * dy; for (l1 = 0; l1 < decaytime; l1++) wave_saw2[l2--] = 1.0 - (float)l1 * dyd; for (l1 = 0; l1 < (WAVE_PERIOD - decaytime)>>1; l1++) wave_saw2[l2--] = -1.0 + (float)l1 * dy; l2 = 0; dyd = 4.0 / decaytime; for (l1 = 0; l1 < decaytime>>2; l1++) wave_rect[l2++] = (float)l1 * dyd; for (l1 = 0; l1 < (WAVE_PERIOD - decaytime)>>1; l1++) wave_rect[l2++] = 1.0; for (l1 = 0; l1 < decaytime>>1; l1++) wave_rect[l2++] = 1.0 - (float)l1 * dyd; for (l1 = 0; l1 < (WAVE_PERIOD - decaytime)>>1; l1++) wave_rect[l2++] = -1.0; for (l1 = 0; l1 < decaytime>>2; l1++) wave_rect[l2++] = -1.0 + (float)l1 * dyd; dy = 4.0 / (float)WAVE_PERIOD; for (l1 = 0; l1 < (WAVE_PERIOD>>2); l1++) wave_tri[l1] = (float)l1 * dy; for (l1 = (WAVE_PERIOD>>2); l1 < (WAVE_PERIOD >> 1) + (WAVE_PERIOD>>2); l1++) wave_tri[l1] = 1.0 - (float)(l1 - (WAVE_PERIOD>>2)) * dy; for (l1 = (WAVE_PERIOD >> 1) + (WAVE_PERIOD>>2); l1 < WAVE_PERIOD; l1++) wave_tri[l1] = -1.0 + (float)(l1 - (WAVE_PERIOD >> 1) - (WAVE_PERIOD>>2)) * dy; play_ports = 0; capt_ports = 0; withJack = false; withAlsa = false; for (int i = 0; i < MAX_PLAY_PORTS / 2; i++) play_mods [i] = 0; for (int i = 0; i < MAX_CAPT_PORTS / 2; i++) capt_mods [i] = 0; colorBackground = QColor(COLOR_MAINWIN_BG); colorModuleBackground = QColor(COLOR_MODULE_BG); colorModuleBorder = QColor(195, 195, 195); colorModuleFont = QColor(255, 255, 255); colorPortFont1 = QColor(255, 255, 255); colorPortFont2 = QColor(255, 240, 140); colorCable = QColor(180, 180, 180); colorJack = QColor(250, 200, 50); } void SynthData::initVoices() { for (int l1 = 0; l1 < poly; ++l1) { notes[l1] = 0; velocity[l1] = 0; noteCounter[l1] = 1000000; sustainNote[l1] = false; } } void SynthData::stopPCM() { if (withJack) closeJack(); if (withAlsa) closeAlsa(); } SynthData::~SynthData() { free (exp_data); free (wave_sine); free (wave_saw); free (wave_saw2); free (wave_rect); free (wave_tri); if (poly > 0) free(zeroModuleData[0]); free (zeroModuleData); delete (midiWidget); delete (guiWidget); } int SynthData::incModuleCount() { moduleCount++; moduleID++; return(0); } int SynthData::decModuleCount() { moduleCount--; return(0); } int SynthData::getModuleCount() { return(moduleCount); } int SynthData::getModuleID() { return moduleID; } int SynthData::getLadspaIDs(QString setName, QString pluginName, int *index, int *n) { int subID1, subID2Name = -1, subID2Label = -1; QString qsn, qsl; setName = setName.trimmed(); pluginName = pluginName.trimmed(); subID1 = -1; QList::const_iterator li = ladspaLib.constBegin(); for (int l1 = 0; li < ladspaLib.constEnd(); ++li, ++l1) if (setName == li->name.trimmed()) { subID1 = l1; QList::const_iterator di = li->desc.constBegin(); for (int l2 = 0; di < li->desc.constEnd(); ++di, ++l2) { qsl.sprintf("%s", (*di)->Label); qsn.sprintf("%s", (*di)->Name); if (pluginName == qsl.trimmed()) { subID2Label = l2; break; } if (pluginName == qsn.trimmed()) { subID2Name = l2; // No break to give the priority to "Label" } } break; } *index = subID1; *n = (subID2Label < 0) ? subID2Name : subID2Label; // Use "Name" only if no match for "Label" return( (subID1 >= 0) && ( (subID2Name >= 0) || (subID2Label >= 0) ) ); } float SynthData::exp_table(float x) { int index; index = (int)((x + 16.0) * 1000.0); if (index >= EXP_TABLE_LEN) index = EXP_TABLE_LEN - 1; else if (index < 0) index = 0; return(exp_data[index]); } // float SynthData::exp_table_ln2(float x) // { older version, less precise // int index = (int)(x * (float)(M_LN2 * 1000.0) + (float)(16.0 * 1000.0)); // if (index >= EXP_TABLE_LEN) // index = EXP_TABLE_LEN - 1; // else // if (index < 0) // index = 0; // return exp_data[index]; // } float SynthData::exp2_table(float f) // { ultimate precision, slower // return __builtin_exp2f(f); // } { if (f < -16) return 0; union uf uf, uexp2; uf.f = f + 17; unsigned exp = (uf.u >> 23) - 0x7f; unsigned mant = uf.p.mant; unsigned e = exp; exp = 1 << e; exp += mant >> (23 - e); mant <<= e; mant &= (1<<23) - 1; mant >>= 23 - EXP2_DEPTH; uexp2.f = exp2_data[mant]; uexp2.u |= (exp + 0x7F - 17) << 23; return uexp2.f; } void SynthData::create_zero_data (void) { zeroModuleData = (float **) malloc (poly * sizeof(float *)); for (int i = 0; i < poly; i++) if (i == 0) { zeroModuleData[0] = (float *) malloc (periodsize * sizeof(float)); memset (zeroModuleData[0], 0, periodsize * sizeof(float)); } else zeroModuleData[i] = zeroModuleData[0]; } int SynthData::find_play_mod (void *M) { for (int i = 0; i < play_ports / 2; i++) if (play_mods [i] == M) return i; return -1; } int SynthData::find_capt_mod (void *M) { for (int i = 0; i < capt_ports / 2; i++) if (capt_mods [i] == M) return i; return -1; } void SynthData::set_capt_mod(unsigned int k, void *M) { if (k < MAX_CAPT_PORTS / 2) capt_mods[k] = M; } void SynthData::set_play_mod(unsigned int k, void *M) { if (k < MAX_PLAY_PORTS / 2) play_mods[k] = M; } int SynthData::initAlsa (const char *name, unsigned int fsamp, snd_pcm_uframes_t frsize, unsigned int nfrags, int ncapt, int nplay) { pthread_attr_t attr; withAlsa = true; ncapt &= ~1; nplay &= ~1; alsa_handle = new Alsa_driver (name, fsamp, frsize, nfrags, nplay > 0, ncapt > 0, false); if (alsa_handle->stat () < 0) { fprintf (stderr, "Can't connect to ALSA\n"); return -ENODEV; } capt_ports = alsa_handle->ncapt (); play_ports = alsa_handle->nplay (); if (capt_ports > ncapt) capt_ports = ncapt; if (play_ports > nplay) play_ports = nplay; if (capt_ports > MAX_CAPT_PORTS) capt_ports = MAX_CAPT_PORTS; if (play_ports > MAX_PLAY_PORTS) play_ports = MAX_PLAY_PORTS; fprintf (stderr, "ALSA device %s opened with %d inputs and %d outputs\n", name, capt_ports, play_ports); rate = fsamp; periodsize = frsize; cyclesize = frsize; create_zero_data (); rlimit rlim; sched_param parm; if (getrlimit(RLIMIT_RTPRIO, &rlim)) parm.sched_priority = sched_get_priority_max(SCHED_FIFO); else parm.sched_priority = rlim.rlim_cur; pthread_attr_init (&attr); pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED); pthread_attr_setschedpolicy (&attr, SCHED_FIFO); pthread_attr_setschedparam (&attr, &parm); pthread_attr_setscope (&attr, PTHREAD_SCOPE_SYSTEM); pthread_attr_setinheritsched (&attr, PTHREAD_EXPLICIT_SCHED); if (pthread_create (&alsa_thread, &attr, alsa_static_thr_main, this)) { qWarning(QObject::tr("Can't create ALSA thread with RT priority").toUtf8()); pthread_attr_setschedpolicy (&attr, SCHED_OTHER); parm.sched_priority = sched_get_priority_max (SCHED_OTHER); pthread_attr_setschedparam (&attr, &parm); if (pthread_create (&alsa_thread, &attr, alsa_static_thr_main, this)) { qWarning(QObject::tr("Can't create ALSA thread").toUtf8()); exit (1); } } return 0; } int SynthData::closeAlsa () { qWarning(QObject::tr("Closing ALSA...").toUtf8()); withAlsa = false; sleep (1); delete alsa_handle; return 0; } void *SynthData::alsa_static_thr_main (void *arg) { return ((SynthData *) arg)->alsa_thr_main (); } void *SynthData::alsa_thr_main (void) { int i; unsigned int k; M_pcmin *C; M_pcmout *P; alsa_handle->pcm_start (); while (withAlsa) { k = alsa_handle->pcm_wait(); pthread_mutex_lock(&rtMutex); readAlsaMidiEvents(); while (k >= cyclesize) { if (capt_ports) { alsa_handle->capt_init (cyclesize); for (i = 0; i < capt_ports; i += 2) { C = doSynthesis ? (M_pcmin *)(capt_mods [i / 2]) : 0; if (C) { alsa_handle->capt_chan (i, C->pcmdata [0], cyclesize); alsa_handle->capt_chan (i + 1, C->pcmdata [1], cyclesize); } } alsa_handle->capt_done (cyclesize); } if (play_ports) { alsa_handle->play_init (cyclesize); for (i = 0; i < play_ports; i += 2) { P = doSynthesis ? (M_pcmout *)(play_mods [i / 2]) : 0; if (P) { P->generateCycle (); alsa_handle->play_chan (i, P->pcmdata [0], cyclesize); alsa_handle->play_chan (i + 1, P->pcmdata [1], cyclesize); } else { alsa_handle->clear_chan (i, cyclesize); alsa_handle->clear_chan (i + 1, cyclesize); } } alsa_handle->play_done (cyclesize); } if (doSynthesis) call_modules (); k -= cyclesize; } pthread_mutex_unlock(&rtMutex); } alsa_handle->pcm_stop (); return 0; } int SynthData::initJack (int ncapt, int nplay) { QString qs; withJack = true; play_ports = nplay & ~1; capt_ports = ncapt & ~1; if (capt_ports > MAX_CAPT_PORTS) capt_ports = MAX_CAPT_PORTS; if (play_ports > MAX_PLAY_PORTS) play_ports = MAX_PLAY_PORTS; jack_handle = jack_client_open(name.toLatin1().constData(), JackNullOption, NULL); if (!jack_handle) { qWarning(QObject::tr("Can't connect to JACK").toUtf8()); return -ENODEV; } jack_set_process_callback (jack_handle, jack_static_callback, (void *)this); rate = jack_get_sample_rate (jack_handle); periodsize = MAXIMUM_PERIODSIZE; create_zero_data (); for (int i = 0; i < play_ports; i++) { qs.sprintf("out_%d", i); jack_out [i] = jack_port_register (jack_handle, qs.toLatin1().constData(), JACK_DEFAULT_AUDIO_TYPE, JackPortIsOutput, 0); } for (int i = 0; i < capt_ports; i++) { qs.sprintf("in_%d", i); jack_in [i] = jack_port_register (jack_handle, qs.toLatin1().constData(), JACK_DEFAULT_AUDIO_TYPE, JackPortIsInput, 0); } if (jack_activate (jack_handle)) { qWarning(QObject::tr("Can't activate JACK").toUtf8()); exit (1); } qWarning("Connected to JACK with %d inputs and %d outputs", capt_ports, play_ports); return 0; } int SynthData::closeJack () { qWarning(QObject::tr("Closing JACK...").toUtf8()); jack_deactivate (jack_handle); for (int i = 0; i < play_ports; i++) jack_port_unregister(jack_handle, jack_out[i]); for (int i = 0; i < capt_ports; i++) jack_port_unregister(jack_handle, jack_in[i]); jack_client_close(jack_handle); return 0; } int SynthData::jack_static_callback (jack_nframes_t nframes, void *arg) { return ((SynthData *) arg)->jack_callback (nframes); } int SynthData::jack_callback(jack_nframes_t nframes) { int i, j; if (nframes > MAXIMUM_PERIODSIZE) { fprintf(stderr, "nframes exceeds allowed value %d\n", MAXIMUM_PERIODSIZE); return 0; } pthread_mutex_lock(&rtMutex); readAlsaMidiEvents(); cyclesize = nframes; for (i = 0; i < capt_ports; i += 2) { M_pcmin *C = doSynthesis ? (M_pcmin *)(capt_mods [i / 2]) : 0; if (C) for (j = 0; j < 2; j++) C->pcmdata[j] = (float *)jack_port_get_buffer(jack_in[i + j], nframes); } for (i = 0; i < play_ports; i += 2) { M_pcmout *P = doSynthesis ? (M_pcmout *)(play_mods [i >> 1]) : 0; if (P) { P->pcmdata[0] = (jack_default_audio_sample_t *)jack_port_get_buffer(jack_out[i], nframes); P->pcmdata[1] = (jack_default_audio_sample_t *)jack_port_get_buffer(jack_out[i + 1], nframes); P->generateCycle(); } else for (j = 0; j < 2; j++) { void *p = jack_port_get_buffer(jack_out [i + j], nframes); memset(p, 0, sizeof(jack_default_audio_sample_t) * nframes); } } if (doSynthesis) call_modules(); pthread_mutex_unlock(&rtMutex); return 0; } void SynthData::call_modules(void) { int i; for (i = 0; i < wavoutModuleList.count(); i++) wavoutModuleList.at(i)->generateCycle(); for (i = 0; i < scopeModuleList.count(); i++) scopeModuleList.at(i)->generateCycle(); #ifdef OUTDATED_CODE for (i = 0; i < spectrumModuleList.count(); i++) spectrumModuleList.at(i)->generateCycle(); #endif for (i = 0; i < midioutModuleList.count(); i++) midioutModuleList.at(i)->generateCycle(); for (i = 0; i < moduleList.count(); i++) moduleList.at(i)->cycleReady = false; for (i = 0; i < poly; i++) { noteCounter[i]++; if (noteCounter[i] > 1000000000) noteCounter[i] = 1000000000; } framesDone += cyclesize; if (framesDone - framesGUIPinged > 2000 && pipeMessage) if (write(pipeFd[1], &pipeMessage, 1) == 1) { framesGUIPinged = framesDone; pipeMessage = 0; } } void SynthData::readAlsaMidiEvents(void) { if (!seq_handle) return; snd_seq_event_t *ev; int result; for (int pending = snd_seq_event_input_pending(seq_handle, 1); pending > 0; --pending) { result = snd_seq_event_input(seq_handle, &ev); if (result < 0) break; if (ev != NULL) processAlsaMidiEvent(ev); } if (!setAllNotesOff) return; setAllNotesOff = false; for (int l2 = 0; l2 < synthdata->poly; ++l2) if (synthdata->noteCounter[l2] < 1000000) synthdata->noteCounter[l2] = 1000000; noteList.reset(); } void SynthData::processAlsaMidiEvent(snd_seq_event_t *ev) { switch (ev->type) { case SND_SEQ_EVENT_NOTEON: handleMidiEventNoteOn(ev); break; case SND_SEQ_EVENT_NOTEOFF: handleMidiEventNoteOff(ev); break; case SND_SEQ_EVENT_CONTROLLER: handleMidiEventController(ev); break; case SND_SEQ_EVENT_PITCHBEND: handleMidiEventPitchbend(ev); break; case SND_SEQ_EVENT_PGMCHANGE: handleMidiEventPgmChange(ev); break; case SND_SEQ_EVENT_CHANPRESS: handleMidiEventChanPress(ev); break; case SND_SEQ_EVENT_CONTROL14: handleMidiEventControll14(ev); break; // Ignore list case SND_SEQ_EVENT_PORT_SUBSCRIBED: break; default: MidiControllerKey mcK(ev); mckDump.put(mcK); pipeMessage |= 2; break; } } void SynthData::handleMidiEventNoteOn(snd_seq_event_t *ev) { if (ev->data.note.velocity == 0) { handleMidiEventNoteOff(ev); return; } if (midiChannel < 0 || midiChannel == ev->data.control.channel) { int osc = 0; int noteCount = 0; bool foundOsc = false; for (int i = 0; i < poly; ++i) if (noteCounter[i] > noteCount) { noteCount = noteCounter[i]; osc = i; foundOsc = true; } if (foundOsc) { noteCounter[osc] = 0; sustainNote[osc] = false; velocity[osc] = ev->data.note.velocity; channel[osc] = ev->data.note.channel; notes[osc] = ev->data.note.note; if (poly == 1) noteList.pushNote(ev->data.note.note); } } MidiControllerContext *mcctx = getMidiControllerContext(ev); if (mcctx) mcctx->setMidiValueRT( (ev->data.note.velocity << 7) + ev->data.note.velocity); } void SynthData::handleMidiEventNoteOff(snd_seq_event_t *ev) { if (midiChannel < 0 || midiChannel == ev->data.control.channel) { for (int i = 0; i < poly; ++i) if (channel[i] == ev->data.note.channel) { if (poly == 1) noteList.deleteNote(ev->data.note.note); if (notes[i] == ev->data.note.note && noteCounter[i] < 1000000) { if (poly == 1 && noteList.anyNotesPressed()) { notes[i] = noteList.lastNote(); noteCounter[i] = 0; } else if (sustainFlag) sustainNote[i] = true; else noteCounter[i] = 1000000; } } } MidiControllerContext *mcctx = getMidiControllerContext(ev); if (mcctx) mcctx->setMidiValueRT(0); } void SynthData::handleMidiEventPgmChange(snd_seq_event_t *ev) { guiWidget->setCurrentPreset(ev->data.control.value, true); pipeMessage |= 4; } void SynthData::handleMidiEventController(snd_seq_event_t *ev) { MidiControllerContext* mcctx = getMidiControllerContext(ev); if (mcctx != NULL) mcctx->setMidiValueRT( (ev->data.control.value << 7) + ev->data.control.value); if (ev->data.control.param == MIDI_CTL_ALL_NOTES_OFF) for (int i = 0; i < poly; ++i) if (noteCounter[i] < 1000000 && channel[i] == ev->data.note.channel) noteCounter[i] = 1000000; else if (ev->data.control.param == MIDI_CTL_SUSTAIN) { bool sustainFlag = ev->data.control.value > 63; if (!sustainFlag) for (int i = 0; i < poly; ++i) if (sustainNote[i]) noteCounter[i] = 1000000; } for (int i = 0; i < synthdata->listM_advmcv.count(); ++i) synthdata->listM_advmcv.at(i)->controllerEvent( ev->data.control.param, ev->data.control.value); } void SynthData::handleMidiEventPitchbend(snd_seq_event_t *ev) { MidiControllerContext* mcctx = getMidiControllerContext(ev); if (mcctx != NULL) mcctx->setMidiValueRT(ev->data.control.value + 8192); for (int i = 0; i < synthdata->listM_advmcv.count(); ++i) synthdata->listM_advmcv.at(i)->pitchbendEvent( ev->data.control.value); } void SynthData::handleMidiEventChanPress(snd_seq_event_t *ev) { for (int i = 0; i < synthdata->listM_advmcv.count(); ++i) synthdata->listM_advmcv.at(i)->aftertouchEvent( ev->data.control.value); } void SynthData::handleMidiEventControll14(snd_seq_event_t *ev) { MidiControllerContext* mcctx = getMidiControllerContext(ev); if (mcctx != NULL) mcctx->setMidiValueRT(ev->data.control.value); } MidiControllerContext* SynthData::getMidiControllerContext(snd_seq_event_t *ev) { MidiControllerContext* result = NULL; MidiControllerKey mcK(ev); typeof(activeMidiControllers->constBegin()) mc = qBinaryFind(activeMidiControllers->constBegin(), activeMidiControllers->constEnd(), mcK); if (mc != activeMidiControllers->constEnd()) result = mc->context; if (midiWidget->isVisible()) { mckRead.put(mcK); pipeMessage |= 2; } return result; } ams-2.0.1/src/m_pcmin.cpp0000664000076400007640000000313211051111565012135 00000000000000#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "synthdata.h" #include "m_pcmin.h" #include "module.h" #include "port.h" M_pcmin::M_pcmin(QWidget* parent, int port) : Module(M_type_pcmin, 2, parent, tr("PCM In")) { QString qs; setGeometry(MODULE_NEW_X, MODULE_NEW_Y, MODULE_PCMIN_WIDTH, MODULE_PCMIN_HEIGHT); gain = 0.5; mixer_gain[0] = 0.5; mixer_gain[1] = 0.5; qs.sprintf ("In %2d -> ", port); port_out[0] = new Port(qs, PORT_OUT, 0, this); qs.sprintf ("In %2d -> ", port + 1); port_out[1] = new Port(qs, PORT_OUT, 1, this); configDialog->addSlider(tr("Gain"), gain, 0, 1, false); configDialog->addSlider(tr("Volume 1"), mixer_gain[0], 0, 1, false); configDialog->addSlider(tr("Volume 2"), mixer_gain[1], 0, 1, false); if (synthdata->withAlsa) { pcmdata[0] = new float[2 * synthdata->periodsize]; pcmdata[1] = pcmdata[0] + synthdata->periodsize; } } M_pcmin::~M_pcmin() { if (synthdata->withAlsa) delete[] pcmdata[0]; } void M_pcmin::generateCycle() { int l1, l3; unsigned int l2; float mixgain; for (l1 = 0; l1 < 2; l1++) { mixgain = gain * mixer_gain[l1]; for (l2 = 0; l2 < synthdata->cyclesize; l2++) { for (l3 = 0; l3 < synthdata->poly; l3++) { data[l1][l3][l2] = mixgain * pcmdata[l1][l2]; } } } } ams-2.0.1/src/m_vco.h0000664000076400007640000000215411051103074011262 00000000000000#ifndef M_VCO_H #define M_VCO_H #include "module.h" #define MODULE_VCO_WIDTH 85 #define MODULE_VCO_HEIGHT 220 enum auxWaveFormType { WAVE_SAW, WAVE_SAW2, WAVE_SAW3 }; class M_vco : public Module { Q_OBJECT float freq, phi0, pw0; float edge; float wave_period; float phi[MAXPOLY]; // float dphi, phi1, phi_const, pw, d, dd, dsaw, half_wave, third_wave; // float freq_const, freq_tune, gain_linfm, log2, pw_low, pw_high, float wave_period_2,wave_period_3,Pi2Times,PKonst; float vcoExpFMGain, vcoLinFMGain, pwGain; int waveForm; int harmonic, subharmonic, octave; Port *port_M_freq, *port_M_exp, *port_M_lin, *port_M_pw; Port *port_sine, *port_tri, *port_saw, *port_rect, *port_aux; public: float **freqData; float **pwData; // Duty cycle modulation generated by M_lfo float **expFMData; // Frequency modulation exp characteristic float **linFMData; // Frequency modulation lin characteristic public: M_vco(QWidget* parent=0); void generateCycle(); }; #endif ams-2.0.1/src/mced.cpp0000664000076400007640000000142611051103424011422 00000000000000#include "module.h" #include "mced.h" #include "midicontrollable.h" /** *@author Karsten Wiese */ MCedThing::~MCedThing() { if (module) for (typeof(module->midiControllables.constBegin()) mcAble = module->midiControllables.constBegin(); mcAble != module->midiControllables.constEnd(); ++mcAble) (*mcAble)->disconnect(this); } void MCedThing::listenTo(Module *m) { module = m; for (typeof(module->midiControllables.constBegin()) mcAble = module->midiControllables.constBegin(); mcAble != module->midiControllables.constEnd(); ++mcAble) (*mcAble)->connectTo(this); } void MCedThing::listenTo(Module *m, int from) { module = m; for (; from < module->midiControllables.count(); ++from) module->midiControllables.at(from)->connectTo(this); } ams-2.0.1/src/Makefile.in0000664000076400007640000010144411315245614012067 00000000000000# Makefile.in generated by automake 1.10.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Makefile.am for ams VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ bin_PROGRAMS = ams$(EXEEXT) subdir = src DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/config.h.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(translationsdir)" binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) PROGRAMS = $(bin_PROGRAMS) am_ams_OBJECTS = box.$(OBJEXT) canvas.$(OBJEXT) \ canvasfunction.$(OBJEXT) colorwidget.$(OBJEXT) \ configdialog.$(OBJEXT) envelope.$(OBJEXT) function.$(OBJEXT) \ guiwidget.$(OBJEXT) intmidislider.$(OBJEXT) \ ladspadialog.$(OBJEXT) m_ad.$(OBJEXT) m_advenv.$(OBJEXT) \ m_advmcv.$(OBJEXT) m_amp.$(OBJEXT) m_conv.$(OBJEXT) \ m_cvs.$(OBJEXT) m_delay.$(OBJEXT) m_dynamicwaves.$(OBJEXT) \ m_env.$(OBJEXT) m_function.$(OBJEXT) m_inv.$(OBJEXT) \ m_ladspa.$(OBJEXT) m_lfo.$(OBJEXT) m_mcv.$(OBJEXT) \ m_midiout.$(OBJEXT) m_mix.$(OBJEXT) m_mphlfo.$(OBJEXT) \ m_noise.$(OBJEXT) m_noise2.$(OBJEXT) m_pcmin.$(OBJEXT) \ m_pcmout.$(OBJEXT) m_quantizer.$(OBJEXT) m_ringmod.$(OBJEXT) \ m_scmcv.$(OBJEXT) m_scope.$(OBJEXT) m_scquantizer.$(OBJEXT) \ m_seq.$(OBJEXT) m_sh.$(OBJEXT) m_slew.$(OBJEXT) \ m_spectrum.$(OBJEXT) m_stereomix.$(OBJEXT) m_vca.$(OBJEXT) \ m_vcdoubledecay.$(OBJEXT) m_vcenv.$(OBJEXT) m_vcenv2.$(OBJEXT) \ m_vcf.$(OBJEXT) m_vco.$(OBJEXT) m_vco2.$(OBJEXT) \ m_vcorgan.$(OBJEXT) m_vcpanning.$(OBJEXT) m_vcswitch.$(OBJEXT) \ m_vquant.$(OBJEXT) m_wavout.$(OBJEXT) main.$(OBJEXT) \ mainwindow.$(OBJEXT) mced.$(OBJEXT) midicheckbox.$(OBJEXT) \ midicombobox.$(OBJEXT) midicontrollable.$(OBJEXT) \ midicontroller.$(OBJEXT) midiguicomponent.$(OBJEXT) \ midipushbutton.$(OBJEXT) midislider.$(OBJEXT) \ midisliderbase.$(OBJEXT) midiwidget.$(OBJEXT) \ modularsynth.$(OBJEXT) module.$(OBJEXT) \ multi_envelope.$(OBJEXT) port.$(OBJEXT) port_popup.$(OBJEXT) \ prefwidget.$(OBJEXT) scopescreen.$(OBJEXT) synthdata.$(OBJEXT) \ textedit.$(OBJEXT) notelist.$(OBJEXT) nodist_ams_OBJECTS = box_moc.$(OBJEXT) canvas_moc.$(OBJEXT) \ colorwidget_moc.$(OBJEXT) configdialog_moc.$(OBJEXT) \ function_moc.$(OBJEXT) guiwidget_moc.$(OBJEXT) \ ladspadialog_moc.$(OBJEXT) m_ad_moc.$(OBJEXT) \ m_advenv_moc.$(OBJEXT) m_advmcv_moc.$(OBJEXT) \ m_amp_moc.$(OBJEXT) m_conv_moc.$(OBJEXT) m_cvs_moc.$(OBJEXT) \ m_delay_moc.$(OBJEXT) m_dynamicwaves_moc.$(OBJEXT) \ m_env_moc.$(OBJEXT) m_function_moc.$(OBJEXT) \ m_inv_moc.$(OBJEXT) m_ladspa_moc.$(OBJEXT) m_lfo_moc.$(OBJEXT) \ m_mcv_moc.$(OBJEXT) m_midiout_moc.$(OBJEXT) \ m_mix_moc.$(OBJEXT) m_mphlfo_moc.$(OBJEXT) \ m_noise_moc.$(OBJEXT) m_noise2_moc.$(OBJEXT) \ m_pcmin_moc.$(OBJEXT) m_pcmout_moc.$(OBJEXT) \ m_quantizer_moc.$(OBJEXT) m_ringmod_moc.$(OBJEXT) \ m_scmcv_moc.$(OBJEXT) m_scope_moc.$(OBJEXT) \ m_scquantizer_moc.$(OBJEXT) m_seq_moc.$(OBJEXT) \ m_sh_moc.$(OBJEXT) m_slew_moc.$(OBJEXT) \ m_spectrum_moc.$(OBJEXT) m_stereomix_moc.$(OBJEXT) \ m_vca_moc.$(OBJEXT) m_vcdoubledecay_moc.$(OBJEXT) \ m_vcenv_moc.$(OBJEXT) m_vcenv2_moc.$(OBJEXT) \ m_vcf_moc.$(OBJEXT) m_vco_moc.$(OBJEXT) m_vco2_moc.$(OBJEXT) \ m_vcorgan_moc.$(OBJEXT) m_vcpanning_moc.$(OBJEXT) \ m_vcswitch_moc.$(OBJEXT) m_vquant_moc.$(OBJEXT) \ m_wavout_moc.$(OBJEXT) mainwindow_moc.$(OBJEXT) \ midicheckbox_moc.$(OBJEXT) midicombobox_moc.$(OBJEXT) \ midicontrollable_moc.$(OBJEXT) midiguicomponent_moc.$(OBJEXT) \ midipushbutton_moc.$(OBJEXT) midisliderbase_moc.$(OBJEXT) \ midiwidget_moc.$(OBJEXT) modularsynth_moc.$(OBJEXT) \ module_moc.$(OBJEXT) multi_envelope_moc.$(OBJEXT) \ port_moc.$(OBJEXT) port_popup_moc.$(OBJEXT) \ prefwidget_moc.$(OBJEXT) scopescreen_moc.$(OBJEXT) \ textedit_moc.$(OBJEXT) ams_OBJECTS = $(am_ams_OBJECTS) $(nodist_ams_OBJECTS) ams_LDADD = $(LDADD) DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ -o $@ SOURCES = $(ams_SOURCES) $(nodist_ams_SOURCES) DIST_SOURCES = $(ams_SOURCES) am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; translationsDATA_INSTALL = $(INSTALL_DATA) DATA = $(translations_DATA) HEADERS = $(noinst_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMS_CXXFLAGS = @AMS_CXXFLAGS@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = -D_REENTRANT -DLADSPA_PATH=\"$(LADSPA_PATH)\" -DTRANSLATIONSDIR=\"$(translationsdir)\" @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LADSPA_PATH = @LADSPA_PATH@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LN_S = @LN_S@ LRELEASE = @LRELEASE@ LTLIBOBJS = @LTLIBOBJS@ LUPDATE = @LUPDATE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MOC = @MOC@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ QT_CFLAGS = @QT_CFLAGS@ QT_CXXFLAGS = @QT_CXXFLAGS@ QT_LIBS = @QT_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ # list of all generated (and not distributed) sources nodist_ams_SOURCES = \ box_moc.cpp \ canvas_moc.cpp \ colorwidget_moc.cpp \ configdialog_moc.cpp \ function_moc.cpp \ guiwidget_moc.cpp \ ladspadialog_moc.cpp \ m_ad_moc.cpp \ m_advenv_moc.cpp \ m_advmcv_moc.cpp \ m_amp_moc.cpp \ m_conv_moc.cpp \ m_cvs_moc.cpp \ m_delay_moc.cpp \ m_dynamicwaves_moc.cpp \ m_env_moc.cpp \ m_function_moc.cpp \ m_inv_moc.cpp \ m_ladspa_moc.cpp \ m_lfo_moc.cpp \ m_mcv_moc.cpp \ m_midiout_moc.cpp \ m_mix_moc.cpp \ m_mphlfo_moc.cpp \ m_noise_moc.cpp \ m_noise2_moc.cpp \ m_pcmin_moc.cpp \ m_pcmout_moc.cpp \ m_quantizer_moc.cpp \ m_ringmod_moc.cpp \ m_scmcv_moc.cpp \ m_scope_moc.cpp \ m_scquantizer_moc.cpp \ m_seq_moc.cpp \ m_sh_moc.cpp \ m_slew_moc.cpp \ m_spectrum_moc.cpp \ m_stereomix_moc.cpp \ m_vca_moc.cpp \ m_vcdoubledecay_moc.cpp \ m_vcenv_moc.cpp \ m_vcenv2_moc.cpp \ m_vcf_moc.cpp \ m_vco_moc.cpp \ m_vco2_moc.cpp \ m_vcorgan_moc.cpp \ m_vcpanning_moc.cpp \ m_vcswitch_moc.cpp \ m_vquant_moc.cpp \ m_wavout_moc.cpp \ mainwindow_moc.cpp \ midicheckbox_moc.cpp \ midicombobox_moc.cpp \ midicontrollable_moc.cpp \ midiguicomponent_moc.cpp \ midipushbutton_moc.cpp \ midisliderbase_moc.cpp \ midiwidget_moc.cpp \ modularsynth_moc.cpp \ module_moc.cpp \ multi_envelope_moc.cpp \ port_moc.cpp \ port_popup_moc.cpp \ prefwidget_moc.cpp \ scopescreen_moc.cpp \ textedit_moc.cpp # list of all c++ source files ams_SOURCES = \ box.cpp \ canvas.cpp \ canvasfunction.cpp \ colorwidget.cpp \ configdialog.cpp \ envelope.cpp \ function.cpp \ guiwidget.cpp \ intmidislider.cpp \ ladspadialog.cpp \ m_ad.cpp \ m_advenv.cpp \ m_advmcv.cpp \ m_amp.cpp \ m_conv.cpp \ m_cvs.cpp \ m_delay.cpp \ m_dynamicwaves.cpp \ m_env.cpp \ m_function.cpp \ m_inv.cpp \ m_ladspa.cpp \ m_lfo.cpp \ m_mcv.cpp \ m_midiout.cpp \ m_mix.cpp \ m_mphlfo.cpp \ m_noise.cpp \ m_noise2.cpp \ m_pcmin.cpp \ m_pcmout.cpp \ m_quantizer.cpp \ m_ringmod.cpp \ m_scmcv.cpp \ m_scope.cpp \ m_scquantizer.cpp \ m_seq.cpp \ m_sh.cpp \ m_slew.cpp \ m_spectrum.cpp \ m_stereomix.cpp \ m_vca.cpp \ m_vcdoubledecay.cpp \ m_vcenv.cpp \ m_vcenv2.cpp \ m_vcf.cpp \ m_vco.cpp \ m_vco2.cpp \ m_vcorgan.cpp \ m_vcpanning.cpp \ m_vcswitch.cpp \ m_vquant.cpp \ m_wavout.cpp \ main.cpp \ mainwindow.cpp \ mced.cpp \ midicheckbox.cpp \ midicombobox.cpp \ midicontrollable.cpp \ midicontroller.cpp \ midiguicomponent.cpp \ midipushbutton.cpp \ midislider.cpp \ midisliderbase.cpp \ midiwidget.cpp \ modularsynth.cpp \ module.cpp \ multi_envelope.cpp \ port.cpp \ port_popup.cpp \ prefwidget.cpp \ scopescreen.cpp \ synthdata.cpp \ textedit.cpp \ notelist.cpp # list of all header files noinst_HEADERS = \ box.h \ canvas.h \ canvasfunction.h \ colorwidget.h \ configdialog.h \ envelope.h \ function.h \ guiwidget.h \ intmidislider.h \ ladspadialog.h \ m_ad.h \ m_advenv.h \ m_advmcv.h \ m_amp.h \ m_conv.h \ m_cvs.h \ m_delay.h \ m_dynamicwaves.h \ m_env.h \ m_function.h \ m_inv.h \ m_ladspa.h \ m_lfo.h \ m_mcv.h \ m_midiout.h \ m_mix.h \ m_mphlfo.h \ m_noise.h \ m_noise2.h \ m_pcmin.h \ m_pcmout.h \ m_quantizer.h \ m_ringmod.h \ m_scmcv.h \ m_scope.h \ m_scquantizer.h \ m_seq.h \ m_sh.h \ m_slew.h \ m_spectrum.h \ m_stereomix.h \ m_vca.h \ m_vcdoubledecay.h \ m_vcenv.h \ m_vcenv2.h \ m_vcf.h \ m_vco.h \ m_vco2.h \ m_vcorgan.h \ m_vcpanning.h \ m_vcswitch.h \ m_vquant.h \ m_wavout.h \ macros.h \ main.h \ mainwindow.h \ mced.h \ midicheckbox.h \ midicombobox.h \ midicontrollable.h \ midicontroller.h \ midiguicomponent.h \ midipushbutton.h \ midisliderbase.h \ midislider.h \ midiwidget.h \ modularsynth.h \ module.h \ msoptions.h \ multi_envelope.h \ port.h \ port_popup.h \ prefwidget.h \ ringbuffer.h \ scopescreen.h \ spectrumscreen.h \ synthdata.h \ textedit.h \ notelist.h translationsdir = $(pkgdatadir)/translations translations = \ translations/ams_de.ts \ translations/ams_fr.ts translations_DATA = \ translations/ams_de.qm \ translations/ams_fr.qm # misc files which are distributed but not installed EXTRA_DIST = ams.pro $(translations) # all generated files to be removed by "make clean" CLEANFILES = $(nodist_ams_SOURCES) $(translations_DATA) AM_LDFLAGS = @QT_LIBS@ AM_CXXFLAGS = @QT_CXXFLAGS@ @AMS_CXXFLAGS@ # rule for moc-file generation SUFFIXES = _moc.cpp all: config.h $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: .SUFFIXES: _moc.cpp .cpp .h .o .obj .qm .ts $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh config.h: stamp-h1 @if test ! -f $@; then \ rm -f stamp-h1; \ $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \ else :; fi stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status src/config.h $(srcdir)/config.h.in: $(am__configure_deps) cd $(top_srcdir) && $(AUTOHEADER) rm -f stamp-h1 touch $@ distclean-hdr: -rm -f config.h stamp-h1 install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; for p in $$list; do \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ if test -f $$p \ ; then \ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \ $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \ else :; fi; \ done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \ rm -f "$(DESTDIR)$(bindir)/$$f"; \ done clean-binPROGRAMS: -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) ams$(EXEEXT): $(ams_OBJECTS) $(ams_DEPENDENCIES) @rm -f ams$(EXEEXT) $(CXXLINK) $(ams_OBJECTS) $(ams_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/box.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/box_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/canvas.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/canvas_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/canvasfunction.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/colorwidget.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/colorwidget_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/configdialog.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/configdialog_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/envelope.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/function.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/function_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guiwidget.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guiwidget_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/intmidislider.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ladspadialog.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ladspadialog_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_ad.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_ad_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_advenv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_advenv_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_advmcv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_advmcv_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_amp.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_amp_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_conv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_conv_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_cvs.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_cvs_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_delay.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_delay_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_dynamicwaves.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_dynamicwaves_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_env.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_env_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_function.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_function_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_inv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_inv_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_ladspa.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_ladspa_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_lfo.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_lfo_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_mcv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_mcv_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_midiout.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_midiout_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_mix.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_mix_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_mphlfo.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_mphlfo_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_noise.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_noise2.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_noise2_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_noise_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_pcmin.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_pcmin_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_pcmout.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_pcmout_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_quantizer.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_quantizer_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_ringmod.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_ringmod_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_scmcv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_scmcv_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_scope.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_scope_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_scquantizer.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_scquantizer_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_seq.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_seq_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_sh.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_sh_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_slew.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_slew_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_spectrum.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_spectrum_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_stereomix.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_stereomix_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_vca.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_vca_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_vcdoubledecay.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_vcdoubledecay_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_vcenv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_vcenv2.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_vcenv2_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_vcenv_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_vcf.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_vcf_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_vco.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_vco2.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_vco2_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_vco_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_vcorgan.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_vcorgan_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_vcpanning.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_vcpanning_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_vcswitch.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_vcswitch_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_vquant.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_vquant_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_wavout.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_wavout_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mainwindow.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mainwindow_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mced.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/midicheckbox.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/midicheckbox_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/midicombobox.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/midicombobox_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/midicontrollable.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/midicontrollable_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/midicontroller.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/midiguicomponent.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/midiguicomponent_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/midipushbutton.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/midipushbutton_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/midislider.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/midisliderbase.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/midisliderbase_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/midiwidget.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/midiwidget_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/modularsynth.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/modularsynth_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/multi_envelope.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/multi_envelope_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/notelist.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/port.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/port_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/port_popup.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/port_popup_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prefwidget.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prefwidget_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scopescreen.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scopescreen_moc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/synthdata.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/textedit.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/textedit_moc.Po@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cpp.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` install-translationsDATA: $(translations_DATA) @$(NORMAL_INSTALL) test -z "$(translationsdir)" || $(MKDIR_P) "$(DESTDIR)$(translationsdir)" @list='$(translations_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(translationsDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(translationsdir)/$$f'"; \ $(translationsDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(translationsdir)/$$f"; \ done uninstall-translationsDATA: @$(NORMAL_UNINSTALL) @list='$(translations_DATA)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(translationsdir)/$$f'"; \ rm -f "$(DESTDIR)$(translationsdir)/$$f"; \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) $(DATA) $(HEADERS) config.h installdirs: for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(translationsdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-hdr distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-translationsDATA install-dvi: install-dvi-am install-exec-am: install-binPROGRAMS install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-translationsDATA .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ clean-generic ctags distclean distclean-compile \ distclean-generic distclean-hdr distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-binPROGRAMS install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip install-translationsDATA installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ uninstall-am uninstall-binPROGRAMS uninstall-translationsDATA .h_moc.cpp: $(ams_SOURCES) $(MOC) $< -o $@ # rule for translation file updates $(translations): $(ams_SOURCES) $(LUPDATE) -verbose $(ams_SOURCES) -ts $@ # rule to generate binary translation files .ts.qm: $(translations) $(LRELEASE) -verbose $< -qm $@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ams-2.0.1/src/m_ad.h0000644000076400007640000000146411152565023011070 00000000000000#ifndef M_AD_H #define M_AD_H #include #include "module.h" enum { MODULE_AD_WIDTH = 140, MODULE_AD_HEIGHT = 40 }; class M_ad : public Module { Q_OBJECT private: Port *port_in; Port *port_out[MAX_ANALOGUE_DRIVER_OUT]; float detune_amp, detune_rate, drift_amp, drift_rate, detune_mod, drift_mod; float detune_a[MAXPOLY], detune_c[MAXPOLY]; float drift_a[MAX_ANALOGUE_DRIVER_OUT][MAXPOLY], drift_c[MAX_ANALOGUE_DRIVER_OUT][MAXPOLY]; float bypass; int detuneCount, driftCount, voice[2]; QTimer *timer; public: float **inData; public: M_ad(int p_outCount, QWidget* parent=0); void generateCycle(); public slots: void updateVoices(int n); void timerProc(); void autoTune(); }; #endif ams-2.0.1/src/m_vcorgan.cpp0000664000076400007640000001566311051111616012477 00000000000000#include #include #include #include #include "m_vcorgan.h" #include "port.h" M_vcorgan::M_vcorgan(int p_oscCount, QWidget* parent) : Module(M_type_vcorgan, 1, parent, tr("VC Organ")) { QString qs; int l1, l2; QVBoxLayout *oscTab[MODULE_VCORGAN_MAX_OSC]; setGeometry(MODULE_NEW_X, MODULE_NEW_Y, MODULE_VCORGAN_WIDTH, MODULE_VCORGAN_HEIGHT); wave_period = (float)WAVE_PERIOD; tune = 0; octave = 3; expFMGain = 0; linFMGain = 0; oscCount = p_oscCount; for (l1 = 0; l1 < oscCount; l1++) { gain[l1] = 1; osc_tune[l1] = 0; harmonic[l1] = 1 + l1; subharmonic[l1] = 1; osc_octave[l1] = 0; waveForm[l1] = ORGAN_SINE; phi0[l1] = 0; } for (l1 = 0; l1 < MAXPOLY; l1++) { for (l2 = 0; l2 < oscCount; l2++) { phi[l1][l2] = 0; } } port_M_freq = new Port(tr("Freq"), PORT_IN, 0, this); port_M_exp = new Port(tr("Exp. FM"), PORT_IN, 1, this); port_M_lin = new Port(tr("Lin. FM"), PORT_IN, 2, this); cv.out_off = 95; port_out = new Port(tr("Out"), PORT_OUT, 0, this); configDialog->initTabWidget(); QStringList waveFormNames; waveFormNames << tr("Sine") << tr("Saw") << tr("Tri") << tr("Rect") << tr("Saw 2"); QVBoxLayout *generalTab = configDialog->addVBoxTab(tr("Tune / Modulation")); configDialog->addIntSlider(tr("Octave"), octave, 0, 6, generalTab); configDialog->addSlider(tr("Tune"), tune, 0, 1, false, generalTab); configDialog->addSlider(tr("Exp. FM Gain"), expFMGain, 0, 10, false, generalTab); configDialog->addSlider(tr("Lin. FM Gain"), linFMGain, 0, 10, false, generalTab); if (oscCount < 8) { QVBoxLayout *mixTab = configDialog->addVBoxTab(tr("Mixer")); for (l1 = 0; l1 < oscCount; l1++) { qs = tr("Volume %1").arg(l1); configDialog->addSlider(qs, gain[l1], 0, 1, false, mixTab); } } else { QVBoxLayout *mixTab = configDialog->addVBoxTab(tr("Mixer 0-3")); QVBoxLayout *mixTab2 = configDialog->addVBoxTab(tr("Mixer 4-7")); for (l1 = 0; l1 < 4; l1++) { qs = tr("Volume %1").arg(l1); configDialog->addSlider(qs, gain[l1], 0, 1, false, mixTab); qs = tr("Volume %1").arg(l1 + 4); configDialog->addSlider(qs, gain[l1+4], 0, 1, false, mixTab2); } } for (l1 = 0; l1 < oscCount; l1++) { qs = tr("Osc %1").arg(l1); oscTab[l1] = configDialog->addVBoxTab(qs); qs =tr("Wave Form %1").arg(l1); configDialog->addComboBox(qs, waveForm[l1], waveFormNames, oscTab[l1]); qs = tr("Octave %1").arg(l1); configDialog->addIntSlider(qs, osc_octave[l1], 0, 3, oscTab[l1]); qs = tr("Tune %1").arg(l1); configDialog->addSlider(qs, osc_tune[l1], 0, 1, false, oscTab[l1]); qs = tr("Harmonic %1").arg(l1); configDialog->addIntSlider(qs, harmonic[l1], 1, 16, oscTab[l1]); qs = tr("Subharmonic %1").arg(l1); configDialog->addIntSlider(qs, subharmonic[l1], 1, 16, oscTab[l1]); qs = tr("Phi0 %1").arg(l1); configDialog->addSlider(qs, phi0[l1], 0, 6.283, false, oscTab[l1]); } } void M_vcorgan::generateCycle() { int l1, l3; unsigned int l2; float dphi, phi1; float freq_const[MODULE_VCORGAN_MAX_OSC], freq_tune[MODULE_VCORGAN_MAX_OSC]; float gain_linfm, wave_period_2, current_gain; float gain_const[MODULE_VCORGAN_MAX_OSC], phi_const[MODULE_VCORGAN_MAX_OSC]; wave_period_2 = wave_period / 2.0; freqData = port_M_freq->getinputdata(); expFMData = port_M_exp->getinputdata(); linFMData = port_M_lin->getinputdata(); gain_linfm = 1000.0 * linFMGain; for (l3 = 0; l3 < oscCount; l3++) { gain_const[l3] = gain[l3] / (float)oscCount; freq_tune[l3] = 4.0313842 + octave + tune + osc_octave[l3] + osc_tune[l3]; freq_const[l3] = wave_period / (float)synthdata->rate * (float)harmonic[l3] / (float)subharmonic[l3]; phi_const[l3] = phi0[l3] * wave_period / (2.0 * M_PI); } for (l1 = 0; l1 < synthdata->poly; l1++) { memset(data[0][l1], 0, synthdata->cyclesize * sizeof(float)); for (l3 = 0; l3 < oscCount; l3++) { if (phi0[l3] == 0) { for (l2 = 0; l2 < synthdata->cyclesize; l2++) { dphi = freq_const[l3] * (synthdata->exp2_table(freq_tune[l3] + freqData[l1][l2] + expFMGain * expFMData[l1][l2]) + gain_linfm * linFMData[l1][l2]); if (dphi > wave_period_2) { dphi = wave_period_2; current_gain = 0; } else { current_gain = gain_const[l3]; } switch (waveForm[l3]) { case ORGAN_SINE: data[0][l1][l2] += current_gain * synthdata->wave_sine[(int)phi[l1][l3]]; break; case ORGAN_SAW: data[0][l1][l2] += current_gain * synthdata->wave_saw[(int)phi[l1][l3]]; break; case ORGAN_TRI: data[0][l1][l2] += current_gain * synthdata->wave_tri[(int)phi[l1][l3]]; break; case ORGAN_RECT: data[0][l1][l2] += current_gain * synthdata->wave_rect[(int)phi[l1][l3]]; break; case ORGAN_SAW2: data[0][l1][l2] += current_gain * synthdata->wave_saw2[(int)phi[l1][l3]]; break; } phi[l1][l3] += dphi; while (phi[l1][l3] < 0) phi[l1][l3] += wave_period; while (phi[l1][l3] >= wave_period) phi[l1][l3] -= wave_period; } } else { for (l2 = 0; l2 < synthdata->cyclesize; l2++) { dphi = freq_const[l3] * (synthdata->exp2_table(freq_tune[l3] + freqData[l1][l2] + expFMGain * expFMData[l1][l2]) + gain_linfm * linFMData[l1][l2]); if (dphi > wave_period_2) { dphi = wave_period_2; current_gain = 0; } else { current_gain = gain_const[l3]; } phi1 = phi[l1][l3] + phi_const[l3]; if (phi1 < 0) phi1 += wave_period; else if (phi1 >= wave_period) phi1 -= wave_period; switch (waveForm[l3]) { case ORGAN_SINE: data[0][l1][l2] += current_gain * synthdata->wave_sine[(int)phi1]; break; case ORGAN_SAW: data[0][l1][l2] += current_gain * synthdata->wave_saw[(int)phi1]; break; case ORGAN_TRI: data[0][l1][l2] += current_gain * synthdata->wave_tri[(int)phi1]; break; case ORGAN_RECT: data[0][l1][l2] += current_gain * synthdata->wave_rect[(int)phi1]; break; case ORGAN_SAW2: data[0][l1][l2] += current_gain * synthdata->wave_saw2[(int)phi1]; break; } phi[l1][l3] += dphi; while (phi[l1][l3] < 0) phi[l1][l3] += wave_period; while (phi[l1][l3] >= wave_period) phi[l1][l3] -= wave_period; } } } } } ams-2.0.1/src/ams.pro0000664000076400007640000001302311051107142011305 00000000000000message(Qt version: $$[QT_VERSION]) message(Qt is installed in $$[QT_INSTALL_PREFIX]) message(Qt resources can be found in the following locations:) message(Documentation: $$[QT_INSTALL_DOCS]) message(Header files: $$[QT_INSTALL_HEADERS]) message(Libraries: $$[QT_INSTALL_LIBS]) message(Binary files (executables): $$[QT_INSTALL_BINS]) message(Plugins: $$[QT_INSTALL_PLUGINS]) message(Data files: $$[QT_INSTALL_DATA]) message(Translation files: $$[QT_INSTALL_TRANSLATIONS]) message(Settings: $$[QT_INSTALL_SETTINGS]) message(Examples: $$[QT_INSTALL_EXAMPLES]) message(Demonstrations: $$[QT_INSTALL_DEMOS]) ###################################################################### # ###################################################################### TEMPLATE = app TARGET = CONFIG += link_pkgconfig PKGCONFIG += alsa # lash not yet used # PKGCONFIG += lash-1.0 DEPENDPATH += . INCLUDEPATH += . LIBS += -lclalsadrv -ljack LADSPA_PATH = $$(LADSPA_PATH) isEmpty( LADSPA_PATH ) { LADSPA_PATH = "/usr/lib/ladspa:/usr/local/lib/ladspa" } PLATFORM = $$system(uname -i) OBJECTS_DIR = BUILD_$${PLATFORM} DESTDIR = $$OBJECTS_DIR MOC_DIR = MOC INSTALL_PATH = "/usr" PIXMAPS_PATH = "$$INSTALL_PATH/share/ams/pixmaps/" QMAKE_CXXFLAGS += -DPIXMAPS_PATH=\\\"$$PIXMAPS_PATH\\\" message($$PLATFORM) message($$OBJECTS_DIR) # QMAKE_CXXFLAGS tweeks. uncomment, tweak, post your favorite :-) # # base # QMAKE_CXXFLAGS += -DLADSPA_PATH=\\\"$$LADSPA_PATH\\\" # # x86_64 fedora QMAKE_CXXFLAGS += -DLADSPA_PATH=\\\"/usr/lib64/ladspa\\\" # # i386 best bet # QMAKE_CXXFLAGS += -msse2 -mfpmath=sse -ffast-math -DLADSPA_PATH=\\\"$$LADSPA_PATH\\\" # # bad code ? # QMAKE_CXXFLAGS += -mtune=k8 -ffast-math -DLADSPA_PATH=\\\"$$LADSPA_PATH\\\" # # end QMAKE_CXXFLAGS tweeks QT += opengl # Input HEADERS += box.h \ canvas.h \ canvasfunction.h \ configdialog.h \ envelope.h \ function.h \ guiwidget.h \ intmidislider.h \ ladspadialog.h \ m_ad.h \ m_advenv.h \ m_advmcv.h \ m_amp.h \ m_conv.h \ m_cvs.h \ m_delay.h \ m_dynamicwaves.h \ m_env.h \ m_function.h \ m_inv.h \ m_ladspa.h \ m_lfo.h \ m_mcv.h \ m_midiout.h \ m_mix.h \ m_mphlfo.h \ m_noise.h \ m_noise2.h \ m_pcmin.h \ m_pcmout.h \ m_quantizer.h \ m_ringmod.h \ m_scmcv.h \ m_scope.h \ m_scquantizer.h \ m_seq.h \ m_sh.h \ m_slew.h \ m_spectrum.h \ m_stereomix.h \ m_vca.h \ m_vcdoubledecay.h \ m_vcenv.h \ m_vcenv2.h \ m_vcf.h \ m_vco.h \ m_vco2.h \ m_vcorgan.h \ m_vcpanning.h \ m_vcswitch.h \ m_vquant.h \ m_wavout.h \ main.h \ mainwindow.h \ mced.h \ midicheckbox.h \ midicombobox.h \ midicontrollable.h \ midicontroller.h \ midicontrollerlist.h \ midiguicomponent.h \ midipushbutton.h \ midisliderbase.h \ midislider.h \ midiwidget.h \ modularsynth.h \ module.h \ msoptions.h \ multi_envelope.h \ port.h \ port_popup.h \ prefwidget.h \ ringbuffer.h \ scopescreen.h \ synthdata.h \ textedit.h SOURCES += box.cpp \ canvas.cpp \ canvasfunction.cpp \ configdialog.cpp \ envelope.cpp \ function.cpp \ guiwidget.cpp \ intmidislider.cpp \ ladspadialog.cpp \ m_ad.cpp \ m_advenv.cpp \ m_advmcv.cpp \ m_amp.cpp \ m_conv.cpp \ m_cvs.cpp \ m_delay.cpp \ m_dynamicwaves.cpp \ m_env.cpp \ m_function.cpp \ m_inv.cpp \ m_ladspa.cpp \ m_lfo.cpp \ m_mcv.cpp \ m_midiout.cpp \ m_mix.cpp \ m_mphlfo.cpp \ m_noise.cpp \ m_noise2.cpp \ m_pcmin.cpp \ m_pcmout.cpp \ m_quantizer.cpp \ m_ringmod.cpp \ m_scmcv.cpp \ m_scope.cpp \ m_scquantizer.cpp \ m_seq.cpp \ m_sh.cpp \ m_slew.cpp \ m_spectrum.cpp \ m_stereomix.cpp \ m_vca.cpp \ m_vcdoubledecay.cpp \ m_vcenv.cpp \ m_vcenv2.cpp \ m_vcf.cpp \ m_vco.cpp \ m_vco2.cpp \ m_vcorgan.cpp \ m_vcpanning.cpp \ m_vcswitch.cpp \ m_vquant.cpp \ m_wavout.cpp \ main.cpp \ mainwindow.cpp \ mced.cpp \ midicheckbox.cpp \ midicombobox.cpp \ midicontrollable.cpp \ midicontroller.cpp \ midicontrollerlist.cpp \ midiguicomponent.cpp \ midipushbutton.cpp \ midislider.cpp \ midisliderbase.cpp \ midiwidget.cpp \ modularsynth.cpp \ module.cpp \ multi_envelope.cpp \ port.cpp \ prefwidget.cpp \ scopescreen.cpp \ synthdata.cpp \ textedit.cpp TRANSLATIONS = \ translations/ams_de.ts ams-2.0.1/src/m_advmcv.cpp0000664000076400007640000000665511203763535012335 00000000000000#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "synthdata.h" #include "m_advmcv.h" #include "port.h" M_advmcv::M_advmcv(QWidget* parent) : Module(M_type_advmcv, 10, parent, tr("Advanced MCV")) { QString qs; int l1, l2; setGeometry(MODULE_NEW_X, MODULE_NEW_Y, MODULE_ADVMCV_WIDTH, MODULE_ADVMCV_HEIGHT); port_gate_out = new Port(tr("Gate"), PORT_OUT, 0, this); port_note_out = new Port(tr("Freq"), PORT_OUT, 1, this); port_velocity_out = new Port(tr("Velocity"), PORT_OUT, 2, this); port_trig_out = new Port(tr("Trigger"), PORT_OUT, 3, this); port_aftertouch_out = new Port(tr("Aftertouch"), PORT_OUT, 4, this); port_pitchbend_out = new Port(tr("Pitchbend"), PORT_OUT, 5, this); for (l1 = 0; l1 < MODULE_ADVMCV_CONTROLLER_PORTS; l1++) { qs = tr("Controller %1").arg(l1); port_controller_out[l1] = new Port(qs, PORT_OUT, 6+l1, this); } // QStrList *channelNames = new QStrList(true); // channelNames->append("RESERVED FOR LATER USE"); // for (l1 = 1; l1 < 17; l1++) { // qs.sprintf("RESERVED FOR LATER USE", l1); // channelNames->append(qs); // } channel = 0; pitch = 0; pitchbend = 0; aftertouch_cv = 0; pitchbend_cv = 0; for(l2 = 0; l2 < MODULE_ADVMCV_CONTROLLER_PORTS; l2++) { controller_cv[l2] = 0; controller_num[l2] = 0; } for (l1 = 0; l1 < synthdata->poly; l1++) { freq[l1] = 0; } // configDialog->addComboBox(0, " ", &channel, channelNames->count(), channelNames); configDialog->addIntSlider(tr("Note Offset"), pitch, -36, 36); configDialog->addSlider(tr("Pitch"), pitchbend, -1, 1); for (l1 = 0; l1 < MODULE_ADVMCV_CONTROLLER_PORTS; l1++) { qs = tr("Controller %1").arg(l1); configDialog->addIntSlider(qs, controller_num[l1], 0, 127); } } M_advmcv::~M_advmcv() { synthdata->listM_advmcv.removeAll(this); } void M_advmcv::generateCycle() { int l1, l3; unsigned int l2; float gate, velocity; for (l1 = 0; l1 < synthdata->poly; l1++) { gate = (synthdata->channel[l1] == channel - 1 || channel == 0) && synthdata->noteCounter[l1] < 1000000; freq[l1] = pitchbend + float(synthdata->notes[l1]+pitch-60) / 12.0; velocity = (float)synthdata->velocity[l1] / 127.0; for (l2 = 0; l2 < synthdata->cyclesize; l2++) { data[0][l1][l2] = gate; data[1][l1][l2] = freq[l1]; data[2][l1][l2] = velocity; data[4][l1][l2] = aftertouch_cv; data[5][l1][l2] = pitchbend_cv; for (l3 = 0; l3 < MODULE_ADVMCV_CONTROLLER_PORTS; l3++) data[6+l3][l1][l2] = controller_cv[l3]; } memset(data[3][l1], 0, synthdata->cyclesize * sizeof(float)); // data[3][l1][0] = trig[l1]; data[3][l1][15] = synthdata->noteCounter[l1] == 0; // Added for interpolated input ports (e.g. m_vcenv.cpp) } } void M_advmcv::aftertouchEvent(int value) { aftertouch_cv = (float)value / 127.0; } void M_advmcv::controllerEvent(int controlNum, int value) { for(int l2 = 0; l2 < MODULE_ADVMCV_CONTROLLER_PORTS; l2++) if (controlNum == controller_num[l2]) controller_cv[l2] = (float)value / 127.0; } void M_advmcv::pitchbendEvent(int value) { pitchbend_cv = (float)value / 8192.0; } ams-2.0.1/src/macros.h0000664000076400007640000000024411051103077011444 00000000000000#ifndef MACROS_H #define MACROS_H #if __SSE_MATH__ && __i386__ #define FATTR_FLOAT_ARG __attribute__((sseregparm)) #else #define FATTR_FLOAT_ARG #endif #endif ams-2.0.1/src/m_seq.cpp0000664000076400007640000001044011051111616011614 00000000000000#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "synthdata.h" #include "intmidislider.h" #include "m_seq.h" #include "port.h" M_seq::M_seq(int p_seqLen, QWidget* parent) : Module(M_type_seq, 4, parent, tr("SEQ")) , tickFrames(0) , tickFramesRemain(0) { QString qs; char str[1024]; int l1; QVBoxLayout *pitchTab[4], *gateTab[4], *velocityTab[4]; seqLen = p_seqLen; setGeometry(MODULE_NEW_X, MODULE_NEW_Y, MODULE_SEQ_WIDTH, MODULE_SEQ_HEIGHT); port_trigger = new Port(tr("Trigger"), PORT_IN, 0, this); cv.out_off = 55; port_gate_out = new Port(tr("Gate"), PORT_OUT, 0, this); port_note_out = new Port(tr("Freq"), PORT_OUT, 1, this); port_velocity_out = new Port(tr("Velocity"), PORT_OUT, 2, this); port_trigger_out = new Port(tr("Trigger"), PORT_OUT, 3, this); configDialog->initTabWidget(); QVBoxLayout *generalTab = configDialog->addVBoxTab( tr("Pitch Offset / Tempo / Gate Time")); int seqLen_8 = (seqLen + 7) / 8; for (l1 = 0; l1 < seqLen_8; l1++) { sprintf(str, "Pitch %d", l1); pitchTab[l1] = configDialog->addVBoxTab(str); sprintf(str, "Gate %d", l1); gateTab[l1] = configDialog->addVBoxTab(str); sprintf(str, "Velocity %d", l1); velocityTab[l1] = configDialog->addVBoxTab(str); } seq_gate = 0; seq_freq = 0; seq_velocity = 0; seq_pos = 0; tick = 0; osc = 0; trigger = false; triggerCount = 0; triggerOut = false; bpm = 120; pitch_ofs = 32; configDialog->addIntSlider("Pitch Offset", pitch_ofs, 0, 63, generalTab); configDialog->addIntSlider("Beats per minute", bpm, 3, 300, generalTab); QStringList noteLenNames; noteLenNames << "1" << "3/4" << "1/2" << "1/4"; configDialog->addComboBox("Gate time", note_len, noteLenNames, generalTab); for (l1 = 0; l1 < seqLen; l1++) { pitch[l1] = 31; velocity[l1] = 63; gate[l1] = 0; } for (l1 = 0; l1 < seqLen; l1++) { sprintf(str, "Gate %d", l1); configDialog->addCheckBox(str, gate[l1], gateTab[l1 / 8]); sprintf(str, "Pitch %d", l1); configDialog->addIntSlider(str, pitch[l1], 0, 64, pitchTab[l1 / 8]); sprintf(str, "Velocity %d", l1); configDialog->addIntSlider(str, velocity[l1], 0, 127, velocityTab[l1 / 8]); } } void M_seq::generateCycle() { int l1; unsigned int l2; triggerData = port_trigger->getinputdata (); if (triggerCount) { triggerCount--; } else { for (l2 = 0; l2 < synthdata->cyclesize; l2++) { if (!trigger && (triggerData[0][l2] > 0.5)) { trigger = true; triggerCount = 32; } } } tickFrames -= synthdata->cyclesize; if (tickFrames <= 0) nextStep(); for (l2 = 0; l2 < synthdata->cyclesize; l2++) { data[3][0][l2] = (triggerOut) ? 1.0 : 0; } for (l1 = 0; l1 < synthdata->poly; l1++) { for (l2 = 0; l2 < synthdata->cyclesize; l2++) { if (l1 == osc) { data[0][l1][l2] = seq_gate; data[1][l1][l2] = seq_freq; data[2][l1][l2] = seq_velocity; } else { data[0][l1][l2] = 0; } } } } void M_seq::nextStep() { int len, l2; long noteCount; int minuteFrames = synthdata->rate * 60 + tickFramesRemain; tickFrames += minuteFrames / (bpm << 4); tickFramesRemain = minuteFrames % (bpm << 4); if (trigger) { tick = 0; seq_pos = 0; trigger = false; } if (seq_pos == 0) triggerOut = true; else triggerOut = false; len = 4 - note_len; if (tick == 0) { seq_freq = float(pitch[seq_pos] + pitch_ofs) / 12.0; // Search for next free voice osc = -1; noteCount = 0; for (l2 = 0; l2 < synthdata->poly; l2++) { if (synthdata->noteCounter[l2] > noteCount) { noteCount = synthdata->noteCounter[l2]; osc = l2; } } seq_gate = (osc < 0) ? 0 : (float)gate[seq_pos]; seq_velocity = float(velocity[seq_pos]) / 127.0; seq_pos++; if (seq_pos >= seqLen) seq_pos = 0; } if (tick == len) seq_gate = 0; tick++; if (tick >= 4) tick = 0; } ams-2.0.1/src/m_vquant.cpp0000664000076400007640000000206611051111616012347 00000000000000#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "synthdata.h" #include "m_vquant.h" #include "port.h" M_vquant::M_vquant(QWidget* parent) : Module(M_type_vquant, 1, parent, tr("Quantizer 2")) { QString qs; setGeometry(MODULE_NEW_X, MODULE_NEW_Y, MODULE_VQUANT_WIDTH, MODULE_VQUANT_HEIGHT); port_M_in = new Port(tr("In"), PORT_IN, 0, this); cv.out_off = 55; port_quant = new Port(tr("Out"), PORT_OUT, 0, this); gain = 1.0; configDialog->addSlider(tr("Gain"), gain, 0, 10); } void M_vquant::generateCycle() { int l1; unsigned int l2; inData = port_M_in->getinputdata(); for (l1 = 0; l1 < synthdata->poly; l1++) { for (l2 = 0; l2 < synthdata->cyclesize; l2++) { data[0][l1][l2] = (int)(gain * inData[l1][l2]); } } } ams-2.0.1/src/m_vcswitch.cpp0000664000076400007640000000371411051111616012664 00000000000000#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "synthdata.h" #include "m_vcswitch.h" #include "port.h" M_vcswitch::M_vcswitch(QWidget* parent) : Module(M_type_vcswitch, 3, parent, tr("VC Switch")) { QString qs; setGeometry(MODULE_NEW_X, MODULE_NEW_Y, MODULE_VCSWITCH_WIDTH, MODULE_VCSWITCH_HEIGHT); port_M_cv = new Port(tr("CV"), PORT_IN, 0, this); port_M_in[0] = new Port(tr("In 0"), PORT_IN, 1, this); port_M_in[1] = new Port(tr("In 1"), PORT_IN, 2, this); port_out[0] = new Port(tr("Out 0"), PORT_OUT, 0, this); port_out[1] = new Port(tr("Out 1"), PORT_OUT, 1, this); port_mix = new Port(tr("Mix"), PORT_OUT, 2, this); switchLevel = 0.5; configDialog->addSlider(tr("Switch Level"), switchLevel, 0, 10); } void M_vcswitch::generateCycle() { int l1; unsigned int l2; float mix1, mix2; float **inData[2], **cvData; inData[0] = port_M_in[0]->getinputdata (); inData[1] = port_M_in[1]->getinputdata (); cvData = port_M_cv->getinputdata (); for (l1 = 0; l1 < synthdata->poly; l1++) { for (l2 = 0; l2 < synthdata->cyclesize; l2++) { if (cvData[l1][l2] > switchLevel) { data[0][l1][l2] = inData[1][l1][l2]; data[1][l1][l2] = inData[0][l1][l2]; } else { data[0][l1][l2] = inData[0][l1][l2]; data[1][l1][l2] = inData[1][l1][l2]; } mix1 = cvData[l1][l2]; mix2 = 2.0 * switchLevel - mix1; if (mix2 < 0) { mix2 = 0; mix1 = 2.0 * switchLevel; } data[2][l1][l2] = (mix1 * inData[0][l1][l2] + mix2 * inData[1][l1][l2]) / (mix1 + mix2); } } } ams-2.0.1/src/m_advenv.cpp0000664000076400007640000001775011051111565012325 00000000000000#include #include #include #include #include #include #include #include #include #include #include #include #include "synthdata.h" #include "multi_envelope.h" #include "midislider.h" #include "m_advenv.h" #include "port.h" #include "midicontrollable.h" M_advenv::M_advenv(QWidget* parent) : Module(M_type_advenv, 2, parent, tr("Advanced ENV")) { QString qs; int l1; setGeometry(MODULE_NEW_X, MODULE_NEW_Y, MODULE_ADVENV_WIDTH, MODULE_ADVENV_HEIGHT); attack[0] = 0; attack[1] = 0.05; attack[2] = 0.5; attack[3] = 0.05; attack[4] = 1.0; attack[5] = 0.05; attack[6] = 0.9; attack[7] = 0.1; sustain = 0.7; release[0] = 0.05; release[1] = 0.5; release[2] = 0.05; release[3] = 0.2; release[4] = 0.05; timeScale = 1.0; port_gate = new Port(tr("Gate"), PORT_IN, 0, this); port_retrigger = new Port(tr("Retrigger"), PORT_IN, 1, this); cv.out_off = 75; port_gain_out = new Port("Out", PORT_OUT, 0, this); port_inverse_out = new Port(tr("Inverse Out"), PORT_OUT, 1, this); MultiEnvelope *multiEnv = configDialog->addMultiEnvelope(1, &timeScale, attack, &sustain, release); configDialog->initTabWidget(); QVBoxLayout *sustainTab = configDialog->addVBoxTab( tr("Time Scale / Sustain / Delay")); QVBoxLayout *attackTimeTab = configDialog->addVBoxTab(tr("Attack Time")); QVBoxLayout *attackLevelTab = configDialog->addVBoxTab(tr("Attack Level")); QVBoxLayout *releaseTimeTab = configDialog->addVBoxTab(tr("Release Time")); QVBoxLayout *releaseLevelTab = configDialog->addVBoxTab(tr("Release Level")); qs = tr("Time Scale"); configDialog->addSlider(qs, timeScale, 0.1, 10, false, sustainTab); qs = tr("Sustain"); configDialog->addSlider(qs, sustain, 0, 1, false, sustainTab); qs = tr("Delay"); configDialog->addSlider(qs, attack[0], 0, 1, false, sustainTab); qs = tr("Attack Time 0"); configDialog->addSlider(qs, attack[1], 0, 1, false, attackTimeTab); qs = tr("Attack Level 0"); configDialog->addSlider(qs, attack[2], 0, 1, false, attackLevelTab); qs = tr("Attack Time 1"); configDialog->addSlider(qs, attack[3], 0, 1, false, attackTimeTab); qs = tr("Attack Level 1"); configDialog->addSlider(qs, attack[4], 0, 1, false, attackLevelTab); qs = tr("Attack Time 2"); configDialog->addSlider(qs, attack[5], 0, 1, false, attackTimeTab); qs = tr("Attack Level 2"); configDialog->addSlider(qs, attack[6], 0, 1, false, attackLevelTab); qs = tr("Attack Time 3"); configDialog->addSlider(qs, attack[7], 0, 1, false, attackTimeTab); qs = tr("Release Time 0"); configDialog->addSlider(qs, release[0], 0, 1, false, releaseTimeTab); qs = tr("Release Level 0"); configDialog->addSlider(qs, release[1], 0, 1, false, releaseLevelTab); qs = tr("Release Time 1"); configDialog->addSlider(qs, release[2], 0, 1, false, releaseTimeTab); qs = tr("Release Level 1"); configDialog->addSlider(qs, release[3], 0, 1, false, releaseLevelTab); qs = tr("Release Time 2"); configDialog->addSlider(qs, release[4], 0, 1, false, releaseTimeTab); multiEnv->listenTo(this); for (l1 = 0; l1 < synthdata->poly; l1++) { noteActive[l1] = false; gate[l1] = false; retrigger[l1] = false; noteOnOfs[l1] = 0; noteOffOfs[l1] = 0; e[l1] = 0; de[l1] = 0; } } void M_advenv::generateCycle() { int l1, status; unsigned int l2; float tscale, de_a[4], de_d[3]; float t[8]; gateData = port_gate->getinputdata(); retriggerData = port_retrigger->getinputdata(); tscale = timeScale * synthdata->rate; de_a[0] = (attack[1] > 0) ? attack[2] / (tscale * attack[1]) : 0; de_a[1] = (attack[3] > 0) ? (attack[4] - attack[2]) / (tscale * attack[3]) : 0; de_a[2] = (attack[5] > 0) ? (attack[6] - attack[4]) / (tscale * attack[5]) : 0; de_a[3] = (attack[7] > 0) ? (sustain - attack[6]) / (tscale * attack[7]) : 0; de_d[0] = (release[0] > 0) ? (release[1] - sustain) / (tscale * release[0]) : 0; de_d[1] = (release[2] > 0) ? (release[3] - release[1]) / (tscale * release[2]) : 0; de_d[2] = (release[4] > 0) ? - release[3] / (tscale * release[4]) : 0; t[0] = tscale * attack[0]; t[1] = t[0] + tscale * attack[1]; t[2] = t[1] + tscale * attack[3]; t[3] = t[2] + tscale * attack[5]; t[4] = t[3] + tscale * attack[7]; t[5] = tscale * release[0]; t[6] = t[5] + tscale * release[2]; t[7] = t[6] + tscale * release[4]; for (l1 = 0; l1 < synthdata->poly; l1++) { for (l2 = 0; l2 < synthdata->cyclesize; l2++) { if (!gate[l1] && (gateData[l1][l2] > 0.5)) { gate[l1] = true; noteActive[l1] = true; if (e[l1] > 0) { noteOnOfs[l1] = -ADVENVELOPE_RESPONSE; de[l1] = e[l1] / (float)ADVENVELOPE_RESPONSE; } else { noteOnOfs[l1] = 0; } } if (gate[l1] && (gateData[l1][l2] < 0.5)) { gate[l1] = false; noteOffOfs[l1] = 0; e_noteOff[l1] = e[l1]; de_release[l1] = (release[0] > 0) ? (release[1] - e_noteOff[l1]) / (tscale * release[0]) : 0; // fprintf(stderr, "de_release[%d]: %f, e_noteOff: %f\n", l1, de_release[l1], e_noteOff[l1]); } if (!retrigger[l1] && (retriggerData[l1][l2] > 0.5)) { retrigger[l1] = true; if (e[l1] > 0) { noteOnOfs[l1] = -ADVENVELOPE_RESPONSE; de[l1] = e[l1] / (float)ADVENVELOPE_RESPONSE; } else { noteOnOfs[l1] = 0; } } if (retrigger[l1] && (retriggerData[l1][l2] < 0.5)) { retrigger[l1] = false; } if (gate[l1]) { status = 1; if (noteOnOfs[l1] < 0) status = 0; if (noteOnOfs[l1] >= long(t[0])) status = 2; if (noteOnOfs[l1] >= long(t[1])) status = 3; if (noteOnOfs[l1] >= long(t[2])) status = 4; if (noteOnOfs[l1] >= long(t[3])) status = 5; if (noteOnOfs[l1] >= long(t[4])) status = 6; switch (status) { case 0: e[l1] -= de[l1]; break; case 1: e[l1] = 0; break; case 2: e[l1] += de_a[0]; break; case 3: e[l1] += de_a[1]; break; case 4: e[l1] += de_a[2]; break; case 5: e[l1] += de_a[3]; break; case 6: e[l1] = sustain; break; default: e[l1] = 0; break; } if (e[l1] < 0) e[l1] = 0; data[0][l1][l2] = e[l1]; data[1][l1][l2] = -e[l1]; noteOnOfs[l1]++; } else { // Release if (noteActive[l1]) { status = 1; if (noteOffOfs[l1] < 0) status = 0; if (noteOffOfs[l1] >= long(t[5])) status = 2; if (noteOffOfs[l1] >= long(t[6])) status = 3; if (noteOffOfs[l1] >= long(t[7])) status = 4; switch (status) { case 0: e[l1] = 0; break; case 1: e[l1] += de_release[l1]; break; case 2: e[l1] += de_d[1]; break; case 3: e[l1] += de_d[2]; break; case 4: e[l1] = 0; break; default: e[l1] = 0; break; } if (e[l1] < 0) { // fprintf(stderr, "status: %d e[%d] < 0: %f\n", status, l1, e[l1]); e[l1] = 0; } noteOffOfs[l1]++; if (noteOffOfs[l1] >= int(t[7])) { // fprintf(stderr, "noteOffOfs[%d] = %d >= t[7] = %f; e[%d] = %f\n", l1, noteOffOfs[l1], t[7], l1, e[l1]); noteActive[l1] = false; } } data[0][l1][l2] = e[l1]; data[1][l1][l2] = -e[l1]; } } } } ams-2.0.1/src/prefwidget.cpp0000644000076400007640000003523111151051277012662 00000000000000#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "colorwidget.h" #include "synthdata.h" #include "prefwidget.h" PrefWidget::PrefWidget(): vBox(this) { setGeometry(0, 0, PREF_DEFAULT_WIDTH, PREF_DEFAULT_HEIGHT); vBox.setMargin(10); vBox.setSpacing(5); recallColors(); tabWidget = new QTabWidget(); vBox.addWidget(tabWidget); QWidget *colorWidget = new QWidget(); QVBoxLayout *colorBox = new QVBoxLayout(colorWidget); QWidget *midiWidget = new QWidget(); QVBoxLayout *midiBox = new QVBoxLayout(midiWidget); QWidget *pathWidget = new QWidget(); QVBoxLayout *pathBox = new QVBoxLayout(pathWidget); QWidget *editingWidget = new QWidget(); QVBoxLayout *editingBox = new QVBoxLayout(editingWidget); tabWidget->addTab(colorWidget, tr("&Colors")); tabWidget->addTab(midiWidget, tr("&MIDI")); tabWidget->addTab(pathWidget, tr("&Paths")); tabWidget->addTab(editingWidget, tr("&Editing")); QGridLayout *colorLayout = new QGridLayout(); colorBox->addLayout(colorLayout); // QLabel *label1 = new QLabel("Background Color", colorGridWidget); colorBackgroundLabel = new ColorWidget(tr("Background Color"), colorLayout, colorBackground, 1, this, SLOT(colorBackgroundClicked())); colorModuleBackgroundLabel = new ColorWidget(tr("Module Background Color"), colorLayout, colorModuleBackground, 3, this, SLOT(colorModuleBackgroundClicked())); colorModuleBorderLabel = new ColorWidget(tr("Module Border Color"), colorLayout, colorModuleBorder, 5, this, SLOT(colorModuleBorderClicked())); colorModuleFontLabel = new ColorWidget(tr("Module Font Color"), colorLayout, colorModuleFont, 7, this, SLOT(colorModuleFontClicked())); colorCableLabel = new ColorWidget(tr("Cable Color"), colorLayout, colorCable, 9, this, SLOT(colorCableClicked())); colorJackLabel = new ColorWidget(tr("Jack Color"), colorLayout, colorJack, 11, this, SLOT(colorJackClicked())); QPushButton *defaultColorButton = new QPushButton(tr("&Default colors")); colorLayout->addWidget(defaultColorButton, 12, 1); QObject::connect(defaultColorButton, SIGNAL(clicked()), this, SLOT(defaultcolorClicked())); QHBoxLayout *midiModeSelectorBox = new QHBoxLayout(); midiBox->addLayout(midiModeSelectorBox); // new QWidget(midiModeSelectorBox); midiModeSelectorBox->addStretch(); QLabel *midiModeLabel = new QLabel(tr("M&IDI Controller Mode: ")); midiModeSelectorBox->addWidget(midiModeLabel); // new QWidget(midiModeSelectorBox); QStringList midiModeNames; midiModeNames << tr("Avoid Parameter Jumps"); midiModeNames << tr("Init MIDI Controller"); midiModeNames << tr("Follow MIDI Controller"); midiModeComboBox = new QComboBox(); midiModeSelectorBox->addWidget(midiModeComboBox); midiModeLabel->setBuddy(midiModeComboBox); // new QWidget(midiModeSelectorBox); midiModeComboBox->addItems(midiModeNames); midiModeComboBox->setCurrentIndex(midiControllerMode); QObject::connect(midiModeComboBox, SIGNAL(highlighted(int)), this, SLOT(updateMidiMode(int))); pathBox->addStretch(); QHBoxLayout *loadPathBox = new QHBoxLayout(); pathBox->addLayout(loadPathBox); QLabel *loadLabel = new QLabel(tr("&Load Path:")); loadPathBox->addWidget(loadLabel); loadEdit = new QLineEdit(); pathBox->addWidget(loadEdit); loadEdit->setText(loadPath); loadLabel->setBuddy(loadEdit); QPushButton *browseLoadButton = new QPushButton(tr("&Browse...")); loadPathBox->addStretch(); loadPathBox->addWidget(browseLoadButton); pathBox->addStretch(); QHBoxLayout *savePathBox = new QHBoxLayout(); pathBox->addLayout(savePathBox); QLabel *saveLabel = new QLabel(tr("&Save Path:")); savePathBox->addWidget(saveLabel); saveEdit = new QLineEdit(); pathBox->addWidget(saveEdit); saveEdit->setText(savePath); saveLabel->setBuddy(saveEdit); QPushButton *browseSaveButton = new QPushButton(tr("Bro&wse...")); savePathBox->addStretch(); savePathBox->addWidget(browseSaveButton); pathBox->addStretch(); QObject::connect(browseLoadButton, SIGNAL(clicked()), this, SLOT(browseLoad())); QObject::connect(browseSaveButton, SIGNAL(clicked()), this, SLOT(browseSave())); QObject::connect(loadEdit, SIGNAL(lostFocus()), this, SLOT(loadPathUpdate())); QObject::connect(loadEdit, SIGNAL(returnPressed()), this, SLOT(loadPathUpdate())); QObject::connect(saveEdit, SIGNAL(lostFocus()), this, SLOT(savePathUpdate())); QObject::connect(saveEdit, SIGNAL(returnPressed()), this, SLOT(savePathUpdate())); QHBoxLayout *editingModeSelectorBox = new QHBoxLayout(); editingBox->addLayout(editingModeSelectorBox); editingModeSelectorBox->addStretch(); QLabel *editingModeLabel = new QLabel(tr("Box movement:")); editingModeSelectorBox->addWidget(editingModeLabel); QStringList editingModeNames; editingModeNames << tr("Standard"); editingModeNames << tr("No topleft border"); editingModeComboBox = new QComboBox(); editingModeSelectorBox->addWidget(editingModeComboBox); editingModeLabel->setBuddy(midiModeComboBox); editingModeComboBox->addItems(editingModeNames); QObject::connect(editingModeComboBox, SIGNAL(highlighted(int)), this, SLOT(updateEditingMode(int))); QHBoxLayout *buttonContainer = new QHBoxLayout(); vBox.addLayout(buttonContainer); buttonContainer->addStretch(); QPushButton *applyButton = new QPushButton(tr("&Apply")); buttonContainer->addWidget(applyButton); buttonContainer->addStretch(); QPushButton *okButton = new QPushButton(tr("OK")); buttonContainer->addWidget(okButton); buttonContainer->addStretch(); QPushButton *cancelButton = new QPushButton(tr("Cancel")); buttonContainer->addWidget(cancelButton); buttonContainer->addStretch(); QObject::connect(okButton, SIGNAL(clicked()), this, SLOT(submitPref())); QObject::connect(applyButton, SIGNAL(clicked()), this, SLOT(applyPref())); QObject::connect(cancelButton, SIGNAL(clicked()), this, SLOT(close())); } void PrefWidget::loadPref(QString& line) { int r, g, b; if (line.startsWith("ColorBackground")) { r = line.section(' ', 1, 1).toInt(); g = line.section(' ', 2, 2).toInt(); b = line.section(' ', 3, 3).toInt(); synthdata->colorBackground = QColor(r, g, b); } else if (line.startsWith("ColorModuleBackground")) { r = line.section(' ', 1, 1).toInt(); g = line.section(' ', 2, 2).toInt(); b = line.section(' ', 3, 3).toInt(); synthdata->colorModuleBackground = QColor(r, g, b); } else if (line.startsWith("ColorModuleBorder")) { r = line.section(' ', 1, 1).toInt(); g = line.section(' ', 2, 2).toInt(); b = line.section(' ', 3, 3).toInt(); synthdata->colorModuleBorder = QColor(r, g, b); } else if (line.startsWith("ColorModuleFont")) { r = line.section(' ', 1, 1).toInt(); g = line.section(' ', 2, 2).toInt(); b = line.section(' ', 3, 3).toInt(); synthdata->colorModuleFont = QColor(r, g, b); synthdata->colorPortFont1 = QColor(r, g, b); } else if (line.startsWith("ColorJack")) { r = line.section(' ', 1, 1).toInt(); g = line.section(' ', 2, 2).toInt(); b = line.section(' ', 3, 3).toInt(); synthdata->colorJack = QColor(r, g, b); } else if (line.startsWith("ColorCable")) { r = line.section(' ', 1, 1).toInt(); g = line.section(' ', 2, 2).toInt(); b = line.section(' ', 3, 3).toInt(); synthdata->colorCable = QColor(r, g, b); } else if (line.startsWith("MidiControllerMode")) { midiControllerMode = line.section(' ', 1, 1).toInt(); synthdata->midiControllerMode = midiControllerMode; } else if (line.startsWith("LoadPath")) { loadPath = line.section(' ', 1); if (loadPath.isEmpty()) loadPath = QDir::homePath(); loadEdit->setText(loadPath); synthdata->loadPath = loadPath; } else if (line.startsWith("SavePath")) { savePath = line.section(' ', 1); if (savePath.isEmpty()) savePath = QDir::homePath(); saveEdit->setText(savePath); synthdata->savePath = savePath; } else if (line.startsWith("EditingFlags")) { synthdata->editingFlags.f = line.section(' ', 1).toInt(); editingMode = synthdata->editingFlags.crossTopLeft(); } } void PrefWidget::savePref(QTextStream& rctext) { rctext << "ColorBackground " << synthdata->colorBackground.red() << " " << synthdata->colorBackground.green() << " " << synthdata->colorBackground.blue() << "\n"; rctext << "ColorModuleBackground " << synthdata->colorModuleBackground.red() << " " << synthdata->colorModuleBackground.green() << " " << synthdata->colorModuleBackground.blue() << "\n"; rctext << "ColorModuleBorder " << synthdata->colorModuleBorder.red() << " " << synthdata->colorModuleBorder.green() << " " << synthdata->colorModuleBorder.blue() << "\n"; rctext << "ColorModuleFont " << synthdata->colorModuleFont.red() << " " << synthdata->colorModuleFont.green() << " " << synthdata->colorModuleFont.blue() << "\n"; rctext << "ColorJack " << synthdata->colorJack.red() << " " << synthdata->colorJack.green() << " " << synthdata->colorJack.blue() << "\n"; rctext << "ColorCable " << synthdata->colorCable.red() << " " << synthdata->colorCable.green() << " " << synthdata->colorCable.blue() << "\n"; rctext << "MidiControllerMode " << synthdata->midiControllerMode << "\n"; rctext << "LoadPath " << synthdata->loadPath << "\n"; rctext << "SavePath " << synthdata->savePath << "\n"; rctext << "EditingFlags " << synthdata->editingFlags.f << "\n"; } void PrefWidget::submitPref() { applyPref(); close(); } void PrefWidget::applyPref() { storeColors(); emit prefChanged(); } void PrefWidget::refreshColors() { colorBackgroundLabel->setPalette(QPalette(colorBackground, colorBackground)); colorModuleBackgroundLabel->setPalette(QPalette( colorModuleBackground, colorModuleBackground)); colorModuleBorderLabel->setPalette(QPalette( colorModuleBorder, colorModuleBorder)); colorModuleFontLabel->setPalette(QPalette( colorModuleFont, colorModuleFont)); colorCableLabel->setPalette(QPalette(colorCable, colorCable)); colorJackLabel->setPalette(QPalette(colorJack, colorJack)); midiModeComboBox->setCurrentIndex(midiControllerMode); editingModeComboBox->setCurrentIndex(editingMode); loadEdit->setText(loadPath); saveEdit->setText(savePath); } void PrefWidget::recallColors() { colorBackground = synthdata->colorBackground; colorModuleBackground = synthdata->colorModuleBackground; colorModuleBorder = synthdata->colorModuleBorder; colorModuleFont = synthdata->colorModuleFont; colorCable = synthdata->colorCable; colorJack = synthdata->colorJack; midiControllerMode = synthdata->midiControllerMode; editingMode = synthdata->editingFlags.crossTopLeft(); loadPath = synthdata->loadPath; savePath = synthdata->savePath; } void PrefWidget::defaultcolorClicked() { colorBackground = QColor(COLOR_MAINWIN_BG); colorModuleBackground = QColor(COLOR_MODULE_BG); colorModuleBorder = QColor(195, 195, 195); colorModuleFont = QColor(255, 255, 255); colorCable = QColor(180, 180, 180); colorJack = QColor(250, 200, 50); refreshColors(); } void PrefWidget::storeColors() { synthdata->colorBackground = colorBackground; synthdata->colorModuleBackground = colorModuleBackground; synthdata->colorModuleBorder = colorModuleBorder; synthdata->colorModuleFont = colorModuleFont; synthdata->colorPortFont1 = colorModuleFont; synthdata->colorCable = colorCable; synthdata->colorJack = colorJack; synthdata->midiControllerMode = midiControllerMode; synthdata->editingFlags.setCrossTopLeft(editingMode); synthdata->loadPath = loadPath; synthdata->savePath = savePath; } void PrefWidget::colorBackgroundClicked() { QColor tmp; tmp = QColorDialog::getColor(colorBackground); if (tmp.isValid()) { colorBackground = tmp; refreshColors(); } } void PrefWidget::colorModuleBackgroundClicked() { QColor tmp; tmp = QColorDialog::getColor(colorModuleBackground); if (tmp.isValid()) { colorModuleBackground = tmp; refreshColors(); } } void PrefWidget::colorModuleBorderClicked() { QColor tmp; tmp = QColorDialog::getColor(colorModuleBorder); if (tmp.isValid()) { colorModuleBorder = tmp; refreshColors(); } } void PrefWidget::colorModuleFontClicked() { QColor tmp; tmp = QColorDialog::getColor(colorModuleFont); if (tmp.isValid()) { colorModuleFont = tmp; refreshColors(); } } void PrefWidget::colorCableClicked() { QColor tmp; tmp = QColorDialog::getColor(synthdata->colorCable); if (tmp.isValid()) { colorCable = tmp; refreshColors(); } } void PrefWidget::colorJackClicked() { QColor tmp; tmp = QColorDialog::getColor(synthdata->colorJack); if (tmp.isValid()) { colorJack = tmp; refreshColors(); } } void PrefWidget::updateMidiMode(int mode) { midiControllerMode = mode; } void PrefWidget::updateEditingMode(int mode) { editingMode = mode; } void PrefWidget::browseLoad() { QString qs; qs = QFileDialog::getExistingDirectory(this, tr("Choose Load Path"), loadPath); if (qs.isEmpty()) return; loadPath = qs; loadEdit->setText(loadPath); } void PrefWidget::browseSave() { QString qs; qs = QFileDialog::getExistingDirectory(this, tr("Choose Save Path"), savePath); if (qs.isEmpty()) return; savePath = qs; saveEdit->setText(savePath); } void PrefWidget::loadPathUpdate() { loadPath = loadEdit->text(); } void PrefWidget::savePathUpdate() { savePath = saveEdit->text(); } ams-2.0.1/src/Makefile.am0000644000076400007640000001137011203504165012045 00000000000000# Makefile.am for ams bin_PROGRAMS = ams # list of all generated (and not distributed) sources nodist_ams_SOURCES = \ box_moc.cpp \ canvas_moc.cpp \ colorwidget_moc.cpp \ configdialog_moc.cpp \ function_moc.cpp \ guiwidget_moc.cpp \ ladspadialog_moc.cpp \ m_ad_moc.cpp \ m_advenv_moc.cpp \ m_advmcv_moc.cpp \ m_amp_moc.cpp \ m_conv_moc.cpp \ m_cvs_moc.cpp \ m_delay_moc.cpp \ m_dynamicwaves_moc.cpp \ m_env_moc.cpp \ m_function_moc.cpp \ m_inv_moc.cpp \ m_ladspa_moc.cpp \ m_lfo_moc.cpp \ m_mcv_moc.cpp \ m_midiout_moc.cpp \ m_mix_moc.cpp \ m_mphlfo_moc.cpp \ m_noise_moc.cpp \ m_noise2_moc.cpp \ m_pcmin_moc.cpp \ m_pcmout_moc.cpp \ m_quantizer_moc.cpp \ m_ringmod_moc.cpp \ m_scmcv_moc.cpp \ m_scope_moc.cpp \ m_scquantizer_moc.cpp \ m_seq_moc.cpp \ m_sh_moc.cpp \ m_slew_moc.cpp \ m_spectrum_moc.cpp \ m_stereomix_moc.cpp \ m_vca_moc.cpp \ m_vcdoubledecay_moc.cpp \ m_vcenv_moc.cpp \ m_vcenv2_moc.cpp \ m_vcf_moc.cpp \ m_vco_moc.cpp \ m_vco2_moc.cpp \ m_vcorgan_moc.cpp \ m_vcpanning_moc.cpp \ m_vcswitch_moc.cpp \ m_vquant_moc.cpp \ m_wavout_moc.cpp \ mainwindow_moc.cpp \ midicheckbox_moc.cpp \ midicombobox_moc.cpp \ midicontrollable_moc.cpp \ midiguicomponent_moc.cpp \ midipushbutton_moc.cpp \ midisliderbase_moc.cpp \ midiwidget_moc.cpp \ modularsynth_moc.cpp \ module_moc.cpp \ multi_envelope_moc.cpp \ port_moc.cpp \ port_popup_moc.cpp \ prefwidget_moc.cpp \ scopescreen_moc.cpp \ textedit_moc.cpp # list of all c++ source files ams_SOURCES = \ box.cpp \ canvas.cpp \ canvasfunction.cpp \ colorwidget.cpp \ configdialog.cpp \ envelope.cpp \ function.cpp \ guiwidget.cpp \ intmidislider.cpp \ ladspadialog.cpp \ m_ad.cpp \ m_advenv.cpp \ m_advmcv.cpp \ m_amp.cpp \ m_conv.cpp \ m_cvs.cpp \ m_delay.cpp \ m_dynamicwaves.cpp \ m_env.cpp \ m_function.cpp \ m_inv.cpp \ m_ladspa.cpp \ m_lfo.cpp \ m_mcv.cpp \ m_midiout.cpp \ m_mix.cpp \ m_mphlfo.cpp \ m_noise.cpp \ m_noise2.cpp \ m_pcmin.cpp \ m_pcmout.cpp \ m_quantizer.cpp \ m_ringmod.cpp \ m_scmcv.cpp \ m_scope.cpp \ m_scquantizer.cpp \ m_seq.cpp \ m_sh.cpp \ m_slew.cpp \ m_spectrum.cpp \ m_stereomix.cpp \ m_vca.cpp \ m_vcdoubledecay.cpp \ m_vcenv.cpp \ m_vcenv2.cpp \ m_vcf.cpp \ m_vco.cpp \ m_vco2.cpp \ m_vcorgan.cpp \ m_vcpanning.cpp \ m_vcswitch.cpp \ m_vquant.cpp \ m_wavout.cpp \ main.cpp \ mainwindow.cpp \ mced.cpp \ midicheckbox.cpp \ midicombobox.cpp \ midicontrollable.cpp \ midicontroller.cpp \ midiguicomponent.cpp \ midipushbutton.cpp \ midislider.cpp \ midisliderbase.cpp \ midiwidget.cpp \ modularsynth.cpp \ module.cpp \ multi_envelope.cpp \ port.cpp \ port_popup.cpp \ prefwidget.cpp \ scopescreen.cpp \ synthdata.cpp \ textedit.cpp \ notelist.cpp # list of all header files noinst_HEADERS = \ box.h \ canvas.h \ canvasfunction.h \ colorwidget.h \ configdialog.h \ envelope.h \ function.h \ guiwidget.h \ intmidislider.h \ ladspadialog.h \ m_ad.h \ m_advenv.h \ m_advmcv.h \ m_amp.h \ m_conv.h \ m_cvs.h \ m_delay.h \ m_dynamicwaves.h \ m_env.h \ m_function.h \ m_inv.h \ m_ladspa.h \ m_lfo.h \ m_mcv.h \ m_midiout.h \ m_mix.h \ m_mphlfo.h \ m_noise.h \ m_noise2.h \ m_pcmin.h \ m_pcmout.h \ m_quantizer.h \ m_ringmod.h \ m_scmcv.h \ m_scope.h \ m_scquantizer.h \ m_seq.h \ m_sh.h \ m_slew.h \ m_spectrum.h \ m_stereomix.h \ m_vca.h \ m_vcdoubledecay.h \ m_vcenv.h \ m_vcenv2.h \ m_vcf.h \ m_vco.h \ m_vco2.h \ m_vcorgan.h \ m_vcpanning.h \ m_vcswitch.h \ m_vquant.h \ m_wavout.h \ macros.h \ main.h \ mainwindow.h \ mced.h \ midicheckbox.h \ midicombobox.h \ midicontrollable.h \ midicontroller.h \ midiguicomponent.h \ midipushbutton.h \ midisliderbase.h \ midislider.h \ midiwidget.h \ modularsynth.h \ module.h \ msoptions.h \ multi_envelope.h \ port.h \ port_popup.h \ prefwidget.h \ ringbuffer.h \ scopescreen.h \ spectrumscreen.h \ synthdata.h \ textedit.h \ notelist.h translationsdir = $(pkgdatadir)/translations translations = \ translations/ams_de.ts \ translations/ams_fr.ts translations_DATA = \ translations/ams_de.qm \ translations/ams_fr.qm # misc files which are distributed but not installed EXTRA_DIST = ams.pro $(translations) # all generated files to be removed by "make clean" CLEANFILES = $(nodist_ams_SOURCES) $(translations_DATA) AM_LDFLAGS = @QT_LIBS@ AM_CXXFLAGS = @QT_CXXFLAGS@ @AMS_CXXFLAGS@ DEFS = -D_REENTRANT -DLADSPA_PATH=\"$(LADSPA_PATH)\" -DTRANSLATIONSDIR=\"$(translationsdir)\" @DEFS@ # rule for moc-file generation SUFFIXES = _moc.cpp .h_moc.cpp: $(ams_SOURCES) $(MOC) $< -o $@ # rule for translation file updates $(translations): $(ams_SOURCES) $(LUPDATE) -verbose $(ams_SOURCES) -ts $@ # rule to generate binary translation files .ts.qm: $(translations) $(LRELEASE) -verbose $< -qm $@ ams-2.0.1/src/m_ad.cpp0000644000076400007640000001561111152565023011422 00000000000000#include #include #include #include "synthdata.h" #include "midicontrollable.h" #include "midicombobox.h" #include "m_ad.h" #include "midipushbutton.h" #include "port.h" M_ad::M_ad(int outCount, QWidget* parent) : Module(M_type_ad, outCount, parent, tr("Analog Driver %1 Out").arg(outCount)) { QString qs; int l1, l2; QHBoxLayout *tuneBox, *detuneBox[2], *driftBox[2]; setGeometry(MODULE_NEW_X, MODULE_NEW_Y, MODULE_AD_WIDTH, MODULE_AD_HEIGHT + 20 + 20 * outCount); qs = tr("CV In"); port_in = new Port(qs, PORT_IN, 0, this); cv.out_off = 55; for (l1 = 0; l1 < outCount; l1++) { qs = tr("CV Out %1").arg(l1); port_out[l1] = new Port(qs, PORT_OUT, l1, this); for (l2 = 0; l2 < MAXPOLY; l2++) { drift_a[l1][l2] = 0.4 * (double)random() / (double)RAND_MAX - 0.2; drift_c[l1][l2] = 0.4 * (double)random() / (double)RAND_MAX - 0.2; } } for (l2 = 0; l2 < MAXPOLY; l2++) { detune_a[l2] = 0.4 * (double)random() / (double)RAND_MAX - 0.2; detune_c[l2] = 0.4 * (double)random() / (double)RAND_MAX - 0.2; } detune_amp = 0.005; detune_mod = 0.01; detune_rate = 1; drift_amp = 0.005; drift_mod = 0.01; drift_rate = 3; detuneCount = 0; driftCount = 0; bypass = 0; configDialog->initTabWidget(); QVBoxLayout *paramTab = configDialog->addVBoxTab(tr("Parameter")); configDialog->addSlider(tr("Detune Amplitude"), detune_amp, 0, 0.084, true, paramTab); configDialog->addSlider(tr("Detune Modulation"), detune_mod, 0.01, 1, true, paramTab); configDialog->addSlider(tr("Detune Rate"), detune_rate, 0.01, 10, true, paramTab); configDialog->addSlider(tr("Drift Amplitude"), drift_amp, 0, 0.084, true, paramTab); configDialog->addSlider(tr("Drift Modulation"), drift_mod, 0.01, 1, true, paramTab); configDialog->addSlider(tr("Drift Rate"), drift_rate, 0.01, 10, true, paramTab); QVBoxLayout *displayTab = configDialog->addVBoxTab(tr("Display")); for (l1 = 0 ; l1 < 2; l1++) { voice[l1] = (synthdata->poly > 1) ? l1 : 0; QStringList voiceNames; for (l2 = 0; l2 < synthdata->poly; l2++) { qs.sprintf("%d", l2); voiceNames << qs; } configDialog->addComboBox(tr("Voice"), voice[l1], voiceNames, displayTab); QObject::connect(configDialog->midiComboBoxList.at(l1)->comboBox, SIGNAL(highlighted(int)), this, SLOT(updateVoices(int))); qs = tr("Detune %1").arg(l1); configDialog->addLabel(qs, displayTab); detuneBox[l1] = configDialog->addHBox(displayTab); configDialog->addLabel(" 0.000 ", detuneBox[l1]); qs = tr("Drift %1").arg(l1); configDialog->addLabel(qs, displayTab); driftBox[l1] = configDialog->addHBox(displayTab); for (l2 = 0; l2 < outCount; l2++) { configDialog->addLabel(" 0.000 ", driftBox[l1]); } } tuneBox = configDialog->addHBox(); MidiControllableDoOnce * do0 = configDialog->addPushButton( tr("Autotune"), tuneBox); QObject::connect(do0, SIGNAL(triggered()), this, SLOT(autoTune())); configDialog->addCheckBox(tr("Bypass"), bypass, tuneBox); timer = new QTimer(this); QObject::connect(timer, SIGNAL(timeout()), this, SLOT(timerProc())); timer->start(1000); } void M_ad::generateCycle() { int l1, l3, l4, l5; unsigned int l2; float dta, dra, rdt, rdr; double qdt, qdr; inData = port_in->getinputdata(); dta = detune_amp; dra = drift_amp; rdt = detune_mod / (float)synthdata->rate; rdr = drift_mod / (float)synthdata->rate; qdt = (double)outPortCount * (double)synthdata->poly * (double)synthdata->rate / (detune_rate + 1e-3); qdr = (double)outPortCount * (double)synthdata->poly * (double)synthdata->rate / (detune_rate + 1e-3); if (bypass) { for (l3 = 0; l3 < outPortCount; l3++) { for (l1 = 0; l1 < synthdata->poly; l1++) { for (l2 = 0; l2 < synthdata->cyclesize; l2++) { data[l3][l1][l2] = inData[l1][l2]; } } } } else { for (l3 = 0; l3 < outPortCount; l3++) { for (l1 = 0; l1 < synthdata->poly; l1++) { for (l2 = 0; l2 < synthdata->cyclesize; l2++) { data[l3][l1][l2] = inData[l1][l2] + dta * detune_a[l1] + dra * drift_a[l3][l1]; detune_a[l1] += rdt * detune_c[l1]; if (detune_a[l1] > 1.0) { detune_a[l1] = 1.0; detune_c[l1] = -1.0; } else if (detune_a[l1] < -1.0) { detune_a[l1] = -1.0; detune_c[l1] = 1.0; } if (drift_a[l3][l1] > 1.0) { drift_a[l3][l1] = 1.0; drift_c[l3][l1] = -1.0; } else if (drift_a[l3][l1] < -1.0) { drift_a[l3][l1] = -1.0; drift_c[l3][l1] = 1.0; } drift_a[l3][l1] += rdr * drift_c[l3][l1]; detuneCount++; driftCount++; if (detuneCount > qdt) { detuneCount = 0; for (l4 = 0; l4 < synthdata->poly; l4++) { detune_c[l4] = 2.0 * (double)random() / (double)RAND_MAX - 1.0; } // fprintf(stderr, "%5.3f\n", detune_c[0]); } if (driftCount > qdr) { driftCount = 0; for (l5 = 0; l5 < outPortCount; l5++) { for (l4 = 0; l4 < synthdata->poly; l4++) { drift_c[l5][l4] = 2.0 * (double)random() / (double)RAND_MAX - 1.0; } } } } } } } } void M_ad::updateVoices(int) { QString qs; qs = tr("Detune %1").arg(voice[0]); configDialog->labelList.at(0)->setText(qs); qs = tr("Drift %1").arg(voice[0]); configDialog->labelList.at(2)->setText(qs); qs = tr("Detune %1").arg(voice[1]); configDialog->labelList.at(3 + outPortCount)->setText(qs); qs = tr("Drift %1").arg(voice[1]); configDialog->labelList.at(5 + outPortCount)->setText(qs); } void M_ad::timerProc() { QString qs; int l1; qs.sprintf(" %2.3f", detune_a[voice[0]]); configDialog->labelList.at(1)->setText(qs); for (l1 = 0; l1 < outPortCount; l1++) { qs.sprintf(" %2.3f", drift_a[l1][voice[0]]); configDialog->labelList.at(3 + l1)->setText(qs); } qs.sprintf(" %2.3f", detune_a[voice[1]]); configDialog->labelList.at(4 + outPortCount)->setText(qs); for (l1 = 0; l1 < outPortCount; l1++) { qs.sprintf(" %2.3f", drift_a[l1][voice[1]]); configDialog->labelList.at(6 + outPortCount + l1)->setText(qs); } } void M_ad::autoTune() { int l1, l2; for (l1 = 0; l1 < synthdata->poly; l1++) { detune_a[l1] = 0; for (l2 = 0; l2 < outPortCount; l2++) { drift_a[l2][l1] = 0; } } } ams-2.0.1/src/box.h0000664000076400007640000000024111051113052010737 00000000000000#ifndef BOX_H #define BOX_H #include class Box: public QWidget { Q_OBJECT public: Box(QWidget* parent, const QString &name); }; #endif ams-2.0.1/src/mced.h0000664000076400007640000000055011051103100011053 00000000000000#ifndef MCED_H #define MCED_H /** *@author Karsten Wiese */ class MCed { public: MCed() {} virtual ~MCed() {} virtual void mcAbleChanged() = 0; }; class MCedThing: public MCed { class Module *module; public: MCedThing() : module(NULL) {} virtual ~MCedThing(); void listenTo(Module *); void listenTo(Module *, int from); }; #endif ams-2.0.1/src/notelist.cpp0000664000076400007640000000251311203770660012364 00000000000000#include "notelist.h" NoteList::NoteList() { nbNotesPressed = 0; for (int i = 0; i < NB_MIDI_NOTES; ++i){ notesPressed[i] = false; next[i] = -1; prev[i] = -1; } first = -1; last = -1; } bool NoteList::hasNote(int note) { return note >= 0 && note < NB_MIDI_NOTES && notesPressed[note]; } void NoteList::pushNote(int note) { if (!hasNote(note)) { notesPressed[note] = true; if (first == -1) first = note; if (last == -1) last = note; else { next[last] = note; prev[note] = last; last = note; } nbNotesPressed++; } } void NoteList::deleteNote(int note) { if (hasNote(note)) { notesPressed[note] = false; if (note != last && note != first) { prev[next[note]] = prev[note]; next[prev[note]] = next[note]; prev[note] = -1; next[note] = -1; } else if(note == first && note == last) { first = -1; last = -1; } else if (note == last) { last = prev[last]; prev[next[note]] = prev[note]; next[prev[note]] = next[note]; prev[note] = -1; } else if (note == first) { first = next[first]; prev[next[note]] = prev[note]; next[prev[note]] = next[note]; next[note] = -1; } } } void NoteList::reset() { while (anyNotesPressed()) deleteNote(lastNote()); } ams-2.0.1/src/colorwidget.h0000664000076400007640000000051511147066556012523 00000000000000#include #include #include #include /*forward declaration*/ class PrefWidget; class ColorWidget: public QWidget { Q_OBJECT QLabel label; QPushButton button; public: ColorWidget(const QString&, QGridLayout*, QColor&, int, PrefWidget*, const char *); }; ams-2.0.1/src/m_conv.h0000664000076400007640000000062411051103045011436 00000000000000#ifndef M_CONV_H #define M_CONV_H #include "module.h" #define MODULE_CONV_WIDTH 100 #define MODULE_CONV_HEIGHT 75 class M_conv : public Module { Q_OBJECT Port *port_M_in, *port_out; int convMode, octave; public: float **inData; public: M_conv(QWidget* parent=0); void generateCycle(); }; #endif ams-2.0.1/src/multi_envelope.cpp0000664000076400007640000001145511051103431013542 00000000000000#include #include #include #include #include #include #include #include #include #include #include #include "multi_envelope.h" #include "module.h" #include "midicontrollable.h" MultiEnvelope::MultiEnvelope(int p_envCount, float *timeScaleRef, float *attackRef, float *sustainRef, float *releaseRef) : timeScaleRef(timeScaleRef) , attackRef(attackRef) , sustainRef(sustainRef) , releaseRef(releaseRef) { setObjectName(tr("Multi Envelope")); envCount = p_envCount; setAutoFillBackground(true); setPalette(QPalette(QColor(20, 20, 80), envCount > 1 ? QColor(20, 20, 80) : QColor(10, 50, 10))); setMinimumHeight(125); colorTable[1].setRgb(255, 0, 0); colorTable[2].setRgb(0, 255, 0); colorTable[3].setRgb(50, 150, 255); colorTable[4].setRgb(255, 255, 0); colorTable[0].setRgb(255, 255, 255); colorTable[5].setRgb(0, 255, 255); colorTable[6].setRgb(255, 100, 255); colorTable[7].setRgb(255, 200, 50); } void MultiEnvelope::paintEvent(QPaintEvent *) { QPainter p(this); QPolygon points(10); QPen pen; QString qs; int l1; float len, maxlen, x, y, xscale, yscale; p.setViewport(0, 0, width(), height()); p.setWindow(0, 0, width(), height()); if (envCount > 1) { maxlen = 0; for (l1 = 0; l1 < envCount; l1++ ) { len = attackRef[l1] + attackRef[8+l1] + attackRef[24+l1] + attackRef[40+l1] + attackRef[56+l1] + releaseRef[l1] + releaseRef[16+l1] + releaseRef[32+l1] + SUSTAIN_LEN; if (len > maxlen) maxlen = len; } for (l1 = 0; l1 < envCount; l1++ ) { xscale = (float)width() / maxlen; yscale = (float)(height()-26); x = attackRef[l1] * xscale; points.setPoint(0, (int)x, height()); x += attackRef[8+l1] * xscale; y = attackRef[16+l1] * yscale; points.setPoint(1, (int)x, height() - (int)y); x += attackRef[24+l1] * xscale; y = attackRef[32+l1] * yscale; points.setPoint(2, (int)x, height() - (int)y); x += attackRef[40+l1] * xscale; y = attackRef[48+l1] * yscale; points.setPoint(3, (int)x, height() - (int)y); x += attackRef[56+l1] * xscale; y = sustainRef[l1] * yscale; points.setPoint(4, (int)x, height() - (int)y); x += SUSTAIN_LEN * xscale; points.setPoint(5, (int)x, height() - (int)y); x += releaseRef[l1] * xscale; y = releaseRef[8+l1] * yscale; points.setPoint(6, (int)x, height() - (int)y); x += releaseRef[16+l1] * xscale; y = releaseRef[24+l1] * yscale; points.setPoint(7, (int)x, height() - (int)y); x += releaseRef[32+l1] * xscale; points.setPoint(8, (int)x, height()); x = attackRef[l1] * xscale; points.setPoint(9, (int)x, height()); pen.setColor(colorTable[l1]); pen.setWidth(2); p.setPen(pen); p.drawPolyline(points); qs = tr("Env. %1").arg(l1); p.drawText(40 * l1 + 5, 15, qs); } } else { len = attackRef[0] + attackRef[1] + attackRef[3] + attackRef[5] + attackRef[7] + releaseRef[0] + releaseRef[2] + releaseRef[4] + SUSTAIN_LEN; xscale = (float)width() / len; yscale = (float)(height()-6); x = attackRef[0] * xscale; points.setPoint(0, (int)x, height()); x += attackRef[1] * xscale; y = attackRef[2] * yscale; points.setPoint(1, (int)x, height() - (int)y); x += attackRef[3] * xscale; y = attackRef[4] * yscale; points.setPoint(2, (int)x, height() - (int)y); x += attackRef[5] * xscale; y = attackRef[6] * yscale; points.setPoint(3, (int)x, height() - (int)y); x += attackRef[7] * xscale; y = *sustainRef * yscale; points.setPoint(4, (int)x, height() - (int)y); x += SUSTAIN_LEN * xscale; points.setPoint(5, (int)x, height() - (int)y); x += releaseRef[0] * xscale; y = releaseRef[1] * yscale; points.setPoint(6, (int)x, height() - (int)y); x += releaseRef[2] * xscale; y = releaseRef[3] * yscale; points.setPoint(7, (int)x, height() - (int)y); x += releaseRef[4] * xscale; points.setPoint(8, (int)x, height()); x = attackRef[0] * xscale; points.setPoint(9, (int)x, height()); p.setBrush(QBrush(QColor(10, 80, 10))); p.drawPolygon(points); pen.setColor(QColor(10, 110, 10)); pen.setWidth(3); p.setPen(pen); p.drawPolyline(points); pen.setColor(QColor(20, 160, 20)); pen.setWidth(1); p.setPen(pen); p.drawPolyline(points); } } void MultiEnvelope::mcAbleChanged() { update(); } QSize MultiEnvelope::sizeHint() const { return QSize(MULTI_ENVELOPE_MINIMUM_WIDTH, MULTI_ENVELOPE_MINIMUM_HEIGHT); } QSizePolicy MultiEnvelope::sizePolicy() const { return QSizePolicy( QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding); } ams-2.0.1/src/port.h0000664000076400007640000000312211060275054011147 00000000000000#ifndef PORT_H #define PORT_H #include #include #include #include #include #include #include #include "synthdata.h" #include "port_popup.h" #define PORT_DEFAULT_WIDTH 80 #define PORT_DEFAULT_HEIGHT 15 class Module; enum dirType { PORT_IN, PORT_OUT }; enum outTypeEnum { outType_audio, outType_control }; class Port : public QWidget { Q_OBJECT QString portName; int portNameWidth; bool highlighted; dirType dir; QList connectedPortList; public: Port(const QString &p_portName, dirType p_dir, int p_index, Module *parent, int p_color = 0); ~Port(); void connectTo(Port*); float **getinputdata (void); Module *module; int index; QColor jackColor, cableColor, &colorFont; outTypeEnum outType; QList outTypeAcceptList; void popupMenuClicked(PopupMenu::portAction); bool hasConnectedPort(); Port* needsConnectionToPort(); void disconnectClicked(); void cableGrayClicked(); void cableRedClicked(); void cableGreenClicked(); void cableBlueClicked(); void cableYellowClicked(); void cableDefaultClicked(); void jackColorClicked(); void cableColorClicked(); bool isInPort(); bool hasIndex(int); void removeAllConnectedPorts(); void removeAllConnectionsTo(Port*); void setHighlighted(bool); protected: virtual void paintEvent(QPaintEvent*); virtual void mousePressEvent(QMouseEvent*); signals: void portClicked(Port*); void portDisconnected(); }; #endif ams-2.0.1/src/midicombobox.h0000644000076400007640000000074411152565023012643 00000000000000#ifndef MIDICOMBOBOX_H #define MIDICOMBOBOX_H #include #include #include "midiguicomponent.h" /** *@author Matthias Nagorni */ class MidiComboBox : public MidiGUIcomponent { Q_OBJECT public: QComboBox *comboBox; QLabel *valueLabel; public: MidiComboBox(class MidiControllableNames &mcAble); virtual MidiGUIcomponent *createTwin(); ~MidiComboBox(); void mcAbleChanged(); private slots: void valueChanged(int value); }; #endif ams-2.0.1/src/colorwidget.cpp0000664000076400007640000000072111147066556013055 00000000000000#include "colorwidget.h" #include "prefwidget.h" ColorWidget::ColorWidget(const QString& l, QGridLayout *layout, QColor &color, int pos, PrefWidget *pw, const char *slot) : label(l), button(tr("Change...")) { setAutoFillBackground(true); setPalette(QPalette(color, color)); layout->addWidget(&label, pos - 1, 0); layout->addWidget(this, pos, 0); layout->addWidget(&button, pos, 1); connect(&button, SIGNAL(clicked()), pw, slot); } ams-2.0.1/src/midiguicomponent.cpp0000644000076400007640000000076511152565023014100 00000000000000#include "midiguicomponent.h" #include "midicontrollable.h" MidiGUIcomponent::MidiGUIcomponent(MidiControllableBase &mcAble) : mcAble(mcAble) { setObjectName(mcAble.name); nameLabel.setText(mcAble.name); mcAble.connectTo(this); controllerOK = false; } MidiGUIcomponent::~MidiGUIcomponent() { mcAble.disconnect(this); } void MidiGUIcomponent::resetControllerOK() { controllerOK = false; } void MidiGUIcomponent::invalidateController() { emit sigResetController(); } ams-2.0.1/src/synthdata.h0000664000076400007640000001124611204256021012161 00000000000000#ifndef SYNTHDATA_H #define SYNTHDATA_H #include #include #include #include #include #include #include #include #include #include #include #include #include "macros.h" #include "main.h" #include "midicontroller.h" #include "ringbuffer.h" #include "notelist.h" extern QTextStream StdErr; extern QTextStream StdOut; struct LadspaLib { QString name; QList desc; }; #define EXP2_DEPTH 15 #define EXP2_BUF_LEN (1< wavoutModuleList; QList midioutModuleList; QList scopeModuleList; #ifdef OUTDATED_CODE QList spectrumModuleList; #endif QList moduleList; QList listM_advmcv; snd_seq_t *seq_handle; bool doSynthesis; QSemaphore port_sem; QList ladspaLib; // LADSPA_Descriptor_Function ladspa_dsc_func_list[MAX_SO]; // QString ladspa_lib_name[MAX_SO]; QString loadPath, savePath, rcPath; class MidiWidget *midiWidget; class GuiWidget *guiWidget; QString name; int midi_out_port[2]; int midiChannel; QColor colorBackground; QColor colorModuleBackground; QColor colorModuleBorder; QColor colorModuleFont; QColor colorPortFont1; QColor colorPortFont2; QColor colorCable; QColor colorJack; QFont bigFont, smallFont; struct EditingFlags { enum { CrossTopLeft = 1, }; int f; bool crossTopLeft() { return f & CrossTopLeft; } void setCrossTopLeft(bool v) { f &= ~CrossTopLeft; if (v) f |= CrossTopLeft; } } editingFlags; pthread_mutex_t rtMutex; QList *activeMidiControllers; RingBuffer mckRead, mckDump; RingBuffer mcSet; int pipeFd[2]; char pipeMessage; unsigned framesDone; unsigned framesGUIPinged; private: void create_zero_data(void); static void *alsa_static_thr_main(void *arg); static int jack_static_callback(jack_nframes_t nframes, void *arg); void *alsa_thr_main(void); int jack_callback(jack_nframes_t nframes); void call_modules(void); void readAlsaMidiEvents(void); void processAlsaMidiEvent(snd_seq_event_t*); void handleMidiEventNoteOn(snd_seq_event_t*); void handleMidiEventNoteOff(snd_seq_event_t*); void handleMidiEventPgmChange(snd_seq_event_t*); void handleMidiEventController(snd_seq_event_t*); void handleMidiEventPitchbend(snd_seq_event_t*); void handleMidiEventChanPress(snd_seq_event_t*); void handleMidiEventControll14(snd_seq_event_t*); MidiControllerContext* getMidiControllerContext(snd_seq_event_t*); public: SynthData(const QString &name, int p_poly, float p_edge); void stopPCM(); ~SynthData(); void initVoices(); void allNotesOff() { setAllNotesOff = true; } float exp_table(float x); float exp2_table(float ) FATTR_FLOAT_ARG; int incModuleCount(); int decModuleCount(); int getModuleCount(); int getModuleID(); int getLadspaIDs(QString setName, QString pluginName, int *index, int *n); int find_capt_mod(void *); int find_play_mod(void *); void set_capt_mod(unsigned int k, void *M); void set_play_mod(unsigned int k, void *M); int initAlsa (const char *name, unsigned int fsamp, snd_pcm_uframes_t frsize, unsigned int nfrags, int ncapt, int nplay); int closeAlsa(); int initJack (int ncapt, int nplay); int closeJack(); }; extern SynthData *synthdata; #endif ams-2.0.1/src/config.h.in0000664000076400007640000001006111315245625012041 00000000000000/* src/config.h.in. Generated from configure.ac by autoheader. */ /* Define to 1 if you have the `floor' function. */ #undef HAVE_FLOOR /* Define to 1 if you have the `ftruncate' function. */ #undef HAVE_FTRUNCATE /* Define to 1 if you have the `getcwd' function. */ #undef HAVE_GETCWD /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define to 1 if you have the `asound' library (-lasound). */ #undef HAVE_LIBASOUND /* Define to 1 if you have the `clalsadrv' library (-lclalsadrv). */ #undef HAVE_LIBCLALSADRV /* Define to 1 if you have the `jack' library (-ljack). */ #undef HAVE_LIBJACK /* Define to 1 if you have the `m' library (-lm). */ #undef HAVE_LIBM /* Define to 1 if you have the `pthread' library (-lpthread). */ #undef HAVE_LIBPTHREAD /* Define to 1 if you have the `QtCore' library (-lQtCore). */ #undef HAVE_LIBQTCORE /* Define to 1 if you have the `QtGui' library (-lQtGui). */ #undef HAVE_LIBQTGUI /* Define to 1 if you have the `QtOpenGL' library (-lQtOpenGL). */ #undef HAVE_LIBQTOPENGL /* Define to 1 if your system has a GNU libc compatible `malloc' function, and to 0 otherwise. */ #undef HAVE_MALLOC /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the `memset' function. */ #undef HAVE_MEMSET /* Define to 1 if you have the `mkdir' function. */ #undef HAVE_MKDIR /* Define to 1 if you have the `pow' function. */ #undef HAVE_POW /* Define to 1 if you have the `rint' function. */ #undef HAVE_RINT /* Define to 1 if you have the `select' function. */ #undef HAVE_SELECT /* Define to 1 if you have the `sqrt' function. */ #undef HAVE_SQRT /* Define to 1 if `stat' has the bug that it succeeds when given the zero-length file name argument. */ #undef HAVE_STAT_EMPTY_STRING_BUG /* Define to 1 if stdbool.h conforms to C99. */ #undef HAVE_STDBOOL_H /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_SELECT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_SOCKET_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Define to 1 if the system has the type `_Bool'. */ #undef HAVE__BOOL /* Define to 1 if `lstat' dereferences a symlink specified with a trailing slash. */ #undef LSTAT_FOLLOWS_SLASHED_SYMLINK /* Name of package */ #undef PACKAGE /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Define to the type of arg 1 for `select'. */ #undef SELECT_TYPE_ARG1 /* Define to the type of args 2, 3 and 4 for `select'. */ #undef SELECT_TYPE_ARG234 /* Define to the type of arg 5 for `select'. */ #undef SELECT_TYPE_ARG5 /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Define to 1 if your declares `struct tm'. */ #undef TM_IN_SYS_TIME /* Version number of package */ #undef VERSION /* Define to empty if `const' does not conform to ANSI C. */ #undef const /* Define to `__inline__' or `__inline' if that's what the C compiler calls it, or to nothing if 'inline' is not supported under any name. */ #ifndef __cplusplus #undef inline #endif /* Define to rpl_malloc if the replacement function should be used. */ #undef malloc /* Define to `int' if does not define. */ #undef ssize_t ams-2.0.1/src/m_inv.h0000664000076400007640000000056411051103051011265 00000000000000#ifndef M_INV_H #define M_INV_H #include "module.h" #define MODULE_INV_WIDTH 90 #define MODULE_INV_HEIGHT 80 class M_inv : public Module { Q_OBJECT Port *port_M_in, *port_out; public: float **inData; public: M_inv(QWidget* parent=0); void generateCycle(); }; #endif ams-2.0.1/src/m_vcpanning.cpp0000664000076400007640000001152511051103422013010 00000000000000#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "synthdata.h" #include "m_vcpanning.h" #include "port.h" M_vcpanning::M_vcpanning(QWidget* parent) : Module(M_type_vcpanning, 2, parent, tr("VC Panning")) { QString qs; int l1, l2; float pos, q; setGeometry(MODULE_NEW_X, MODULE_NEW_Y, MODULE_VCPANNING_WIDTH, MODULE_VCPANNING_HEIGHT); port_M_in = new Port(tr("In"), PORT_IN, 0, this); port_M_pan = new Port(tr("Pan CV"), PORT_IN, 1, this); cv.out_off = 75; for (l1 = 0; l1 < 2; l1++) { qs.sprintf("Out %d", l1); port_out[l1] = new Port(qs, PORT_OUT, l1, this); } q = 2.0 / ((double)synthdata->poly - 1.0); for (l2 = 0; l2 < 2; l2++) { for (l1 = 0; l1 < synthdata->poly; l1++) { pan[l2][l1] = 0; oldpan[l2][l1] = 0; } } if (synthdata->poly & 1) { pos = 0; for (l1 = 0; l1 < synthdata->poly; l1++) { if (l1 & 1) { pos += q; } panPos[l1] = (l1 & 1) ? -pos : pos; // fprintf(stderr, "odd pan[%d] = %f\n", l1, panPos[l1]); } } else { pos = q / 2.0; for (l1 = 0; l1 < synthdata->poly; l1++) { panPos[l1] = (l1 & 1) ? -pos : pos; if (l1 & 1) { pos += q; } // fprintf(stderr, "even pan[%d] = %f\n", l1, panPos[l1]); } } panGain = 0.0; panOffset = 0.0; configDialog->addSlider(tr("Pan Offset"), panOffset, -1, 1); configDialog->addSlider(tr("Pan Gain"), panGain, 0, 2); QStringList panModeNames; panModeNames << tr("VC control") << tr("Fixed alternating panorama, full width") << tr("Fixed alternating panorama, half width") << tr("Fixed alternating panorama, quarter width") << tr("Sort by pitch, Low <--> High") << tr("Sort by pitch, High <--> Low") << tr("Mono"); configDialog->addComboBox(tr("Panning Mode"), panMode, panModeNames); } void M_vcpanning::generateCycle() { int l1, l2, k, len; double dpan[2], x, y, x_2, widthConst; inData = port_M_in->getinputdata (); panData = port_M_pan->getinputdata (); widthConst = 2.0 / 88.0; for (l1 = 0; l1 < synthdata->poly; l1++) { len = synthdata->cyclesize; l2 = -1; do { k = (len > 24) ? 16 : len; l2 += k; len -= k; switch (panMode) { case 0: x = panOffset + panGain * panData[l1][l2]; x_2 = 0.5 * x; if (x < -1) x = -1; if (x > 1) x = 1; y = 0.2125 * (1.0 - x * x); pan[1][l1] = (0.5 + x_2) + y; pan[0][l1] = (0.5 - x_2) + y; break; case 1: x = panPos[l1]; x_2 = 0.5 * x; y = 0.2125 * (1.0 - x * x); pan[1][l1] = (0.5 + x_2) + y; pan[0][l1] = (0.5 - x_2) + y; break; case 2: x = 0.5 * panPos[l1]; x_2 = 0.5 * x; y = 0.2125 * (1.0 - x * x); pan[1][l1] = (0.5 + x_2) + y; pan[0][l1] = (0.5 - x_2) + y; break; case 3: x = 0.25 * panPos[l1]; x_2 = 0.5 * x; y = 0.2125 * (1.0 - x * x); pan[1][l1] = (0.5 + x_2) + y; pan[0][l1] = (0.5 - x_2) + y; break; case 4: x = ((double)(synthdata->notes[l1] - 21) * widthConst - 1.0 ) * panGain + panOffset; if (x < -1) x = -1; if (x > 1) x = 1; x_2 = 0.5 * x; y = 0.2125 * (1.0 - x * x); pan[1][l1] = (0.5 + x_2) + y; pan[0][l1] = (0.5 - x_2) + y; break; case 5: x = ((double)(88 - (synthdata->notes[l1] - 21)) * widthConst - 1.0) * panGain + panOffset; if (x < -1) x = -1; if (x > 1) x = 1; x_2 = 0.5 * x; y = 0.2125 * (1.0 - x * x); pan[1][l1] = (0.5 + x_2) + y; pan[0][l1] = (0.5 - x_2) + y; break; case 6: pan[1][l1] = 1; pan[0][l1] = 1; break; } dpan[0] = (pan[0][l1] - oldpan[0][l1]) / (double) k; dpan[1] = (pan[1][l1] - oldpan[1][l1]) / (double) k; while(k--) { oldpan[0][l1] += dpan[0]; oldpan[1][l1] += dpan[1]; data[0][l1][l2-k] = oldpan[0][l1] * inData[l1][l2-k]; data[1][l1][l2-k] = oldpan[1][l1] * inData[l1][l2-k]; } } while(len); } } ams-2.0.1/src/function.cpp0000664000076400007640000003446411051103370012347 00000000000000#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "function.h" #include #include "canvasfunction.h" Function::Function(int p_functionCount, int *p_mode, int *p_editIndex, tFunction &point, int p_pointCount, QWidget *parent, const char *name) : QGraphicsView(new QGraphicsScene(), parent) , point(point) { int l1; QString qs; //? scene()->setGrid(FUNCTION_BORDER_L, FUNCTION_BORDER_R, FUNCTION_BORDER_B, FUNCTION_BORDER_T, FUNCTION_SCALE, // FUNCTION_WIDTH, FUNCTION_HEIGHT, FUNCTION_GRID, FUNCTION_GRID); functionCount = p_functionCount; mode = p_mode; editIndex = p_editIndex; mousePressed = false, activeFunction = -1; activePoint = -1; zoom = 1.0; updateScale(); // for (l1 = 0; l1 < MAX_FUNCTIONS; l1++) { // points[l1] = p_points[l1]; setPointCount(MAX_POINTS); // screenPoints[l1] = new QPolygon(MAX_POINTS); // } setMinimumWidth(FUNCTION_MINIMUM_WIDTH); setMinimumHeight(FUNCTION_MINIMUM_HEIGHT); setPalette(QPalette(QColor(FUNCTION_COLOR_FG), QColor(FUNCTION_COLOR_BG))); colorTable[0] = QColor(FUNCTION_COLOR_1); colorTable[1] = QColor(FUNCTION_COLOR_2); colorTable[2] = QColor(FUNCTION_COLOR_3); colorTable[3] = QColor(FUNCTION_COLOR_4); // colorTable[4] = QColor(FUNCTION_COLOR_5); // colorTable[5] = QColor(FUNCTION_COLOR_6); // colorTable[6] = QColor(FUNCTION_COLOR_7); // colorTable[7] = QColor(FUNCTION_COLOR_8); //? setBackgroundBrush(QColor(FUNCTION_COLOR_BG)); scene()->setSceneRect(-5 * FUNCTION_SCALE, -5 * FUNCTION_SCALE, 10 * FUNCTION_SCALE, 10 * FUNCTION_SCALE); for (l1 = 0; l1 < functionCount; l1++) { CanvasFunction *canvasFunction = new CanvasFunction(*this, l1); canvasFunctionList.append(canvasFunction); updateFunction(l1); qs = tr("Out %1").arg(l1); QGraphicsSimpleTextItem *canvasText = new QGraphicsSimpleTextItem(qs, 0, scene()); canvasText->setPos(8 + 50 * l1, 4); // canvasText->setColor(colorTable[l1]); canvasText->setFont(synthdata->bigFont); canvasText->setVisible(TRUE); canvasTextList.append(canvasText); } } Function::~Function() { } void Function::updateFunction(int index) { // int l1, z; // QPoint qp; // *screenPoints[index] = matrix.map(*points[index]); // if (*editIndex && (index == *editIndex - 1)) { // z = 20; // } else { // z = 10; // } // f[0][index][0] = -1e30; // f[0][index][pointCount+1] = 1e30; // f[1][index][0] = 0; // f[1][index][pointCount+1] = 0; // for (l1 = 0; l1 < pointCount; l1++) { // qp = screenPoints[index]->point(l1); // f[0][index][l1 + 1] = (points[index]->point(l1).x() - FUNCTION_CENTER_X) / FUNCTION_SCALE; // f[1][index][l1 + 1] = (double)(FUNCTION_HEIGHT - points[index]->point(l1).y() - FUNCTION_CENTER_Y) / (double)FUNCTION_SCALE; // canvasFunctionList.at(index)->setPoint(l1, qp.x(), qp.y(), z); // } // repaint(false); } void Function::setPointCount(int count) { pointCount = count; } QSize Function::sizeHint() const { return QSize(FUNCTION_MINIMUM_WIDTH, FUNCTION_MINIMUM_HEIGHT); } QSizePolicy Function::sizePolicy() const { return QSizePolicy( QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding); } void Function::resizeEvent (QResizeEvent* ) { updateScale(); // scene()->setSceneRect(0, 0, zoom * width(), zoom * height()); // redrawGrid(); redrawFunction(); // updateContents(); } void Function::redrawFunction() { int l1; if (canvasFunctionList.count() == functionCount) { for (l1 = 0; l1 < functionCount; l1++) { updateFunction(l1); } } } #include void Function::drawBackground(QPainter *painter, const QRectF &rect) { QString s; QFont f; f.setPointSizeF(250.0 / zoom); painter->setFont(f); { qreal y = ceil(rect.topLeft().y() * zoom / FUNCTION_SCALE); y *= FUNCTION_SCALE / zoom; QLineF l(std::max(-5.0 * FUNCTION_SCALE, rect.topLeft().x()), y, std::min(5.0 * FUNCTION_SCALE, rect.topRight().x()), y); while (l.y1() < rect.bottomLeft().y()) { painter->drawLine(l); painter->drawText(l.p1(), s.setNum(l.y1() / FUNCTION_SCALE)); l.translate(0, (qreal)FUNCTION_SCALE / zoom); } } { qreal x = ceil(rect.topLeft().x() * zoom / FUNCTION_SCALE); x *= FUNCTION_SCALE / zoom; QLineF l(x, std::max(-5.0 * FUNCTION_SCALE, rect.topLeft().y()), x, std::min(5.0 * FUNCTION_SCALE, rect.bottomLeft().y())); while (l.x1() < rect.bottomRight().x()) { painter->drawLine(l); painter->drawText(l.p1(), s.setNum(l.x1() / FUNCTION_SCALE)); std::cout << l.x1() << std::endl; l.translate((qreal)FUNCTION_SCALE / zoom, 0); std::cout << l.x1() << std::endl; } } } void Function::redrawGrid() { // int l1, l2, x0, y0, ix0, iy0; // QPoint qp_in[2], qp_out[2]; // QMatrix invMatrix, zoomMatrix; // if (matrix.isInvertible()) { // invMatrix = matrix.invert(); // } else { // fprintf(stderr, "Function::redrawGrid: Could not invert Matrix.\n"); // return; // } // // contentsToViewport(0, 0, x0, y0); // qp_in[0] = QPoint(x0, y0); // qp_out[0] = invMatrix.map(qp_in[0]); // ix0 = qp_out[0].x() / (FUNCTION_GRID * 2); // iy0 = qp_out[0].y() / (FUNCTION_GRID * 2); // // fprintf(stderr, "x0: %d y0: %d qp.x(): %d, qp.y(): %d ix0: %d iy0: %d\n", x0, y0, qp_out[0].x(), qp_out[0].y(), ix0, iy0); // qp_in[0].setX(0); // qp_in[1].setX(FUNCTION_WIDTH); // qp_in[1].setY(0); // zoomMatrix = matrix; // zoomMatrix.scale(1.0/zoom, 1.0/zoom); // zoomMatrix.translate(-ix0 * zoom * 2 * FUNCTION_GRID, -iy0 * zoom * 2 * FUNCTION_GRID); // for (l1 = 0; l1 setLine(qp_out[0].x(), qp_out[0].y(), qp_out[1].x(), qp_out[0].y()); // } // qp_in[0].setY(0); // qp_in[1].setY(FUNCTION_HEIGHT); // qp_in[1].setX(0); // for (l1 = 0; l1 setLine(qp_out[0].x(), qp_out[0].y(), qp_out[0].x(), qp_out[1].y()); // } } void Function::contentsMousePressEvent(QMouseEvent *ev) { // int l1, l2; // QList hitList; // QMatrix invMatrix; // QPoint qp; // bool foundHit; // if (matrix.isInvertible()) { // invMatrix = matrix.invert(); // qp = invMatrix.map(ev->pos()); // emit mousePos(qp.x(), qp.y()); // } // mousePressPos = ev->pos(); // mousePressed = true; // foundHit = false; // hitList = scene()->items(ev->pos()); // if (hitList.count()) { // for (l1 = 0; l1 < functionCount; l1++) { // for (l2 = 0; l2 < pointCount; l2++) { // for(QList::Iterator it=hitList.begin(); it!=hitList.end(); it++) { // if (canvasFunctionList.at(l1)->canvasPoints.at(l2) == *it) { // // fprintf(stderr, "Hit %d %d\n", l1, l2); // if (!*editIndex || (l1 == *editIndex - 1)) { // activeFunction = l1; // activePoint = l2; // // fprintf(stderr, "activeFunction: %d activePoint: %d\n", l1, l2); // foundHit = true; // break; // } else { // activePoint = -1; // // fprintf(stderr, "activePoint: %d\n", l2); // } // } // } // } // if (foundHit) { // break; // } // } // if (*mode == 3) { // for (l1 = 0; l1 < pointCount; l1++) { // deltaArray[l1] = points[activeFunction]->point(l1).x() - FUNCTION_CENTER_X; // } // } else if (*mode == 4) { // for (l1 = 0; l1 < pointCount; l1++) { // deltaArray[l1] = points[activeFunction]->point(l1).y() - FUNCTION_CENTER_Y; // } // } // } else { // activePoint = -1; // } } void Function::contentsMouseReleaseEvent(QMouseEvent *ev) { // QPoint qp; // int l1; // mousePressed = false; // if ((activeFunction >=0) && (activePoint >= 0)) { // switch (*mode) { // case 5: // for (l1 = 0; l1 < pointCount; l1++) { // qp = QPoint(l1 * FUNCTION_WIDTH / (pointCount - 1), FUNCTION_HEIGHT >> 1); // points[activeFunction]->setPoint(l1, qp); // } // break; // case 6: // for (l1 = 0; l1 < pointCount; l1++) { // qp = QPoint(l1 * FUNCTION_WIDTH / (pointCount - 1), (pointCount - 1 - l1) * FUNCTION_WIDTH / (pointCount - 1)); // points[activeFunction]->setPoint(l1, qp); // } // break; // } // updateFunction(activeFunction); // // repaintContents(false); // } } void Function::contentsMouseMoveEvent(QMouseEvent *ev) { // QMatrix invMatrix; // QPoint qp; // int l1, delta; // float scaleFactor; // if (matrix.isInvertible()) { // invMatrix = matrix.invert(); // qp = invMatrix.map(ev->pos()); // emit mousePos(qp.x(), qp.y()); // if (mousePressed && (activeFunction >=0) && (activePoint >= 0)) { // // fprintf(stderr, "mouseMoveEvent scale[0] = %f, scale[1] = %f\n", scale[0], scale[1]); // switch (*mode) { // case 0: // if ((activePoint > 0) && (qp.x() < points[activeFunction]->point(activePoint - 1).x())) { // qp.setX(points[activeFunction]->point(activePoint-1).x() + 1); // a minimum dx of 1 corresponds to 0.002 V // } else if ((activePoint < pointCount - 1) && (qp.x() > points[activeFunction]->point(activePoint + 1).x())) { // qp.setX(points[activeFunction]->point(activePoint+1).x() - 1); // } // if (qp.x() < 0) qp.setX(0); // if (qp.x() > FUNCTION_WIDTH) qp.setX(FUNCTION_WIDTH); // if (qp.y() < 0) qp.setY(0); // if (qp.y() > FUNCTION_HEIGHT) qp.setY(FUNCTION_HEIGHT); // points[activeFunction]->setPoint(activePoint, qp); // break; // case 1: // delta = qp.x() - points[activeFunction]->point(activePoint).x(); // for (l1 = 0; l1 < pointCount; l1++) { // qp = QPoint(points[activeFunction]->point(l1).x() + delta, points[activeFunction]->point(l1).y()); // if (qp.x() < 0) qp.setX(0); // if (qp.x() > FUNCTION_WIDTH) qp.setX(FUNCTION_WIDTH); // points[activeFunction]->setPoint(l1, qp); // } // break; // case 2: // delta = qp.y() - points[activeFunction]->point(activePoint).y(); // for (l1 = 0; l1 < pointCount; l1++) { // qp = QPoint(points[activeFunction]->point(l1).x(), points[activeFunction]->point(l1).y()+delta); // if (qp.y() < 0) qp.setY(0); // if (qp.y() > FUNCTION_HEIGHT) qp.setY(FUNCTION_HEIGHT); // points[activeFunction]->setPoint(l1, qp); // } // break; // case 3: // delta = qp.x() - FUNCTION_CENTER_X; // scaleFactor = (deltaArray[activePoint] != 0) // ? (double)delta / (double)deltaArray[activePoint] : 1.0; // for (l1 = 0; l1 < pointCount; l1++) { // qp = QPoint((double)FUNCTION_CENTER_X + scaleFactor * (double)deltaArray[l1], // points[activeFunction]->point(l1).y()); // if (qp.x() < 0) qp.setX(0); // if (qp.x() > FUNCTION_WIDTH) qp.setX(FUNCTION_WIDTH); // points[activeFunction]->setPoint(l1, qp); // } // break; // case 4: // delta = qp.y() - FUNCTION_CENTER_Y; // scaleFactor = (deltaArray[activePoint] != 0) // ? (double)delta / (double)deltaArray[activePoint] : 1.0; // for (l1 = 0; l1 < pointCount; l1++) { // qp = QPoint(points[activeFunction]->point(l1).x(), // (double)FUNCTION_CENTER_Y + scaleFactor * (double)deltaArray[l1]); // if (qp.y() < 0) qp.setY(0); // if (qp.y() > FUNCTION_HEIGHT) qp.setY(FUNCTION_HEIGHT); // points[activeFunction]->setPoint(l1, qp); // } // break; // } // // fprintf(stderr, "mouseMoveEvent points[%d]->point(%d) = %d %d\n", activeFunction, activePoint, // // points[activeFunction]->point(activePoint).x(), points[activeFunction]->point(activePoint).y()); // updateFunction(activeFunction); // // fprintf(stderr, "mouseMoveEvent f[0][%d][%d+1] = %f f[1][%d][%d+1] = %f\n", activeFunction, activePoint, f[0][activeFunction][activePoint+1], // // activeFunction, activePoint, f[1][activeFunction][activePoint+1]); // // repaintContents(false); // } // } else { // fprintf(stderr, "Matrix not invertible !\n"); // } } void Function::setZoom(float p_zoom) { zoom = p_zoom; updateScale(); } void Function::updateScale() { double scale[2]; scale[0] = (double)zoom * width() / (11 * FUNCTION_SCALE); scale[1] = (double)zoom * height() / (11 * FUNCTION_SCALE); matrix.reset(); matrix.scale(scale[0], scale[1]); setMatrix(matrix); } #include void Function::setPoint(int f_index, int p_index, int x, int y) { std::cout << __PRETTY_FUNCTION__ << f_index << " " << p_index << " " << x << ", " << y << std::endl; FunctionPointT &pf = point[f_index][p_index]; pf.x = (float)(x - FUNCTION_CENTER_X) / FUNCTION_SCALE; pf.y = (float)(y - FUNCTION_CENTER_Y) / FUNCTION_SCALE; canvasFunctionList.at(f_index)->setPoint(p_index); } QPoint Function::getPoint(int f_index, int p_index) { FunctionPointT &pf = point[f_index][p_index]; QPoint p; p.setX((int)(pf.x * FUNCTION_SCALE) + FUNCTION_CENTER_X); p.setY((int)(pf.y * FUNCTION_SCALE) + FUNCTION_CENTER_Y); return p; } void Function::highlightFunction(int index) { for (int l1 = 0; l1 < functionCount; l1++) canvasFunctionList.at(l1)->setZ((index ? (index - 1 == l1 ? 20 : 10) : 20) + l1); } ams-2.0.1/src/m_vcenv2.cpp0000664000076400007640000001035411051111616012233 00000000000000#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "synthdata.h" #include "m_vcenv2.h" #include "port.h" M_vcenv2::M_vcenv2(QWidget* parent) : Module(M_type_vcenv2, 1, parent, tr("VC Envelope II")) { QString qs; int l1; setGeometry(MODULE_NEW_X, MODULE_NEW_Y, MODULE_VCENV2_WIDTH, MODULE_VCENV2_HEIGHT); port_M_gate = new Port(tr("Gate"), PORT_IN, 0, this); port_M_retrigger = new Port(tr("Retrigger"), PORT_IN, 1, this); port_M_attack = new Port(tr("Attack"), PORT_IN, 2, this); port_M_decay = new Port(tr("Decay"), PORT_IN, 3, this); port_M_sustain = new Port(tr("Sustain"), PORT_IN, 4, this); port_M_release = new Port(tr("Release"), PORT_IN, 5, this); cv.out_off = 155; port_out = new Port(tr("Out"), PORT_OUT, 0, this); a0 = 0.0; d0 = 0.0; s0 = 0.7; r0 = 0.0; aGain = 1.0; dGain = 1.0; sGain = 1.0; rGain = 1.0; for (l1 = 0; l1 < synthdata->poly; l1++) { gate[l1] = false; retrigger[l1] = false; state[l1] = 0; noteActive[l1] = false; e[l1] = 0; } configDialog->addSlider(tr("Attack Offset"), a0, -8, 8); configDialog->addSlider(tr("Decay Offset"), d0, -8, 8); configDialog->addSlider(tr("Sustain Offset"), s0, 0, 1); configDialog->addSlider(tr("Release Offset"), r0, -8, 8); configDialog->addSlider(tr("Attack Gain"), aGain, -8, 8); configDialog->addSlider(tr("Decay Gain"), dGain, -8, 8); configDialog->addSlider(tr("Sustain Gain"), sGain, 0, 1); configDialog->addSlider(tr("Release Gain"), rGain, -8, 8); } void M_vcenv2::generateCycle() { int l1; unsigned int l2; double ts, tsr, tsn, tmp, c, n; gateData = port_M_gate->getinputdata (); retriggerData = port_M_retrigger->getinputdata (); attackData = port_M_attack->getinputdata (); decayData = port_M_decay->getinputdata (); sustainData = port_M_sustain->getinputdata (); releaseData = port_M_release->getinputdata (); ts = 1.0; tsr = ts / (double)synthdata->rate; tsn = ts * (double)synthdata->rate; for (l1 = 0; l1 < synthdata->poly; l1++) { // fprintf(stderr, "gate:%d retrigger:%d noteActive:%d state: %d\n", gate[l1], retrigger[l1], noteActive[l1], state[l1]); for (l2 = 0; l2 < synthdata->cyclesize; l2++) { if (!gate[l1] && gateData[l1][l2] > 0.5) { gate[l1] = true; noteActive[l1] = true; state[l1] = 1; } if (gate[l1] && gateData[l1][l2] < 0.5) { gate[l1] = false; state[l1] = 4; } if (!retrigger[l1] && retriggerData[l1][l2] > 0.5) { retrigger[l1] = true; if (gate[l1]) { state[l1] = 1; } } if (retrigger[l1] && retriggerData[l1][l2] < 0.5) { retrigger[l1] = false; } switch (state[l1]) { case 0: e[l1] = 0; break; case 1: e[l1] += ((tmp = synthdata->exp2_table(a0 + aGain * attackData[l1][l2])) > 0.001) ? tsr / tmp : tsr / 0.001; if (e[l1] >= 1.0) { state[l1] = 2; e[l1] = 1.0; } break; case 2: n = tsn * synthdata->exp2_table(d0 + dGain * decayData[l1][l2]); if (n < 1) n = 1; c = 2.3 / n; e[l1] *= exp(-c); if (e[l1] <= s0 + sGain * sustainData[l1][l2] + 1e-20) { state[l1] = 3; } else { break; } case 3: e[l1] = s0 + sGain * sustainData[l1][l2]; break; case 4: n = tsn * synthdata->exp2_table(r0 + rGain * releaseData[l1][l2]); if (n < 1) n = 1; c = 2.3 / n; e[l1] *= exp(-c); if (e[l1] <= 1e-20) { e[l1] = 0; noteActive[l1] = false; } break; default: e[l1] = 0; } data[0][l1][l2] = e[l1]; } } } ams-2.0.1/src/m_env.h0000664000076400007640000000123311051103050011252 00000000000000#ifndef M_ENV_H #define M_ENV_H #include "module.h" #define MODULE_ENV_WIDTH 100 #define MODULE_ENV_HEIGHT 120 #define ENVELOPE_RESPONSE 256 class M_env : public Module { Q_OBJECT float delay, attack, hold, decay, sustain, release; float e_noteOff[MAXPOLY], de[MAXPOLY]; Port *port_gate, *port_retrigger, *port_inverse_out, *port_gain_out; public: float e[MAXPOLY]; float timeScale; bool gate[MAXPOLY], retrigger[MAXPOLY]; int noteOnOfs[MAXPOLY]; float **gateData, **retriggerData; public: M_env(QWidget* parent=0); void generateCycle(); }; #endif ams-2.0.1/src/canvasfunction.cpp0000664000076400007640000001161011051103367013535 00000000000000#include #include #include #include #include #include #include #include #include "function.h" #include "canvasfunction.h" CanvasPoint::CanvasPoint(class CanvasFunction &canvasFunction, int p) : QGraphicsEllipseItem(-0.07 * FUNCTION_SCALE, -0.07 * FUNCTION_SCALE, 0.14 * FUNCTION_SCALE, 0.14 * FUNCTION_SCALE) , canvasFunction(canvasFunction) , p(p) { setPen(QPen(canvasFunction.color(), 0.1)); setBrush(canvasFunction.color()); setFlag(ItemIsMovable); } void CanvasPoint::mouseMoveEvent(QGraphicsSceneMouseEvent * event) { canvasFunction.mouseMoveEvent(p, event); } void CanvasPoint::mousePressEvent(QGraphicsSceneMouseEvent * event) { canvasFunction.mousePressEvent(p, event); } void CanvasFunction::mouseMoveEvent(int p, QGraphicsSceneMouseEvent *event) { qreal x = event->scenePos().x(); qreal y = event->scenePos().y(); x = std::min(x, 5.0 * FUNCTION_SCALE); x = std::max(x, -5.0 * FUNCTION_SCALE); y = std::min(y, 5.0 * FUNCTION_SCALE); y = std::max(y, -5.0 * FUNCTION_SCALE); switch (*function.mode) { case 0: { if (p > 0) x = std::max(x, canvasPoints.at(p - 1)->scenePos().x()); if (p < function.pointCount - 1) x = std::min(x, canvasPoints.at(p + 1)->scenePos().x()); QPointF newPos(x, y); setPoint(p, newPos); } break; case 1: { qreal delta = x - canvasPoints.at(p)->scenePos().x(); for (int _p = 0; _p < function.pointCount; ++_p) { QPointF newPos = canvasPoints.at(_p)->scenePos(); newPos.setX(newPos.x() + delta); newPos.setX(std::min(newPos.x(), 5.0 * FUNCTION_SCALE)); newPos.setX(std::max(newPos.x(), -5.0 * FUNCTION_SCALE)); setPoint(_p, newPos); } } break; case 2: { qreal delta = y - canvasPoints.at(p)->scenePos().y(); for (int _p = 0; _p < function.pointCount; ++_p) { QPointF newPos = canvasPoints.at(_p)->scenePos(); newPos.setY(newPos.y() + delta); newPos.setY(std::min(newPos.y(), 5.0 * FUNCTION_SCALE)); newPos.setY(std::max(newPos.y(), -5.0 * FUNCTION_SCALE)); setPoint(_p, newPos); } } break; case 3: if (pos0[p].x() < -0.000001 || pos0[p].x() > 0.000001) { qreal delta = x / pos0[p].x(); for (int _p = 0; _p < function.pointCount; ++_p) { QPointF newPos = canvasPoints.at(_p)->scenePos(); newPos.setX(pos0[_p].x() * delta); newPos.setX(std::min(newPos.x(), 5.0 * FUNCTION_SCALE)); newPos.setX(std::max(newPos.x(), -5.0 * FUNCTION_SCALE)); setPoint(_p, newPos); } } break; case 4: if (pos0[p].y() < -0.000001 || pos0[p].y() > 0.000001) { qreal delta = y / pos0[p].y(); for (int _p = 0; _p < function.pointCount; ++_p) { QPointF newPos = canvasPoints.at(_p)->scenePos(); newPos.setY(pos0[_p].y() * delta); newPos.setY(std::min(newPos.y(), 5.0 * FUNCTION_SCALE)); newPos.setY(std::max(newPos.y(), -5.0 * FUNCTION_SCALE)); setPoint(_p, newPos); } } break; } } void CanvasFunction::mousePressEvent(int , QGraphicsSceneMouseEvent *) { for (int p = 0; p < function.pointCount; ++p) switch (*function.mode) { default: pos0[p] = canvasPoints.at(p)->scenePos(); break; case 5: { QPointF newPos(p - 5, 0); setPoint(p, newPos *= FUNCTION_SCALE); } break; case 6: { QPointF newPos(p - 5, -(p - 5)); setPoint(p, newPos *= FUNCTION_SCALE); } break; } } CanvasFunction::CanvasFunction(Function &function, int index) : function(function) , index(index) , pos0(function.pointCount) { int l1; for (l1 = 0; l1 < function.pointCount; l1++) { CanvasPoint *p = new CanvasPoint(*this, l1); canvasPoints.append(p); function.scene()->addItem(p); } for (l1 = 0; l1 < function.pointCount - 1; l1++) { QGraphicsLineItem *canvasLine = function.scene()->addLine(QLineF(), QPen(color(), 0.05 * FUNCTION_SCALE)); canvasLines.append(canvasLine); } } CanvasFunction::~CanvasFunction() { } #include void CanvasFunction::setPoint(int p) { canvasPoints.at(p)->setPos(function.point[index][p]); std::cout << __PRETTY_FUNCTION__ << index << "[" << p << "] = " << function.point[index][p].x << ", " << function.point[index][p].y < 0) canvasLines.at(p - 1)->setLine(QLineF(function.point[index][p - 1], function.point[index][p])); if (p < function.pointCount - 1) canvasLines.at(p)->setLine(QLineF(function.point[index][p], function.point[index][p + 1])); } void CanvasFunction::setPoint(int p, QPointF &pos) { function.point[index][p].x = pos.x() / FUNCTION_SCALE; function.point[index][p].y = pos.y() / FUNCTION_SCALE; setPoint(p); } void CanvasFunction::setZ(int z) { int p; for (p = 0; p < function.pointCount; ++p) { canvasPoints.at(p)->setZValue(z); canvasPoints.at(p)->setVisible(z >= 20); } for (p = 0; p < function.pointCount - 1; ++p) canvasLines.at(p)->setZValue(z); } ams-2.0.1/src/m_quantizer.cpp0000664000076400007640000001251711051111565013060 00000000000000#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "synthdata.h" #include "m_quantizer.h" #include "port.h" M_quantizer::M_quantizer(QWidget* parent) : Module(M_type_quantizer, 2, parent, tr("Quantizer")) { QString qs; int l1; setGeometry(MODULE_NEW_X, MODULE_NEW_Y, MODULE_QUANTIZER_WIDTH, MODULE_QUANTIZER_HEIGHT); port_M_in = new Port(tr("In"), PORT_IN, 0, this); port_M_trigger = new Port(tr("Trigger"), PORT_IN, 1, this); port_M_transpose = new Port(tr("Transpose"), PORT_IN, 2, this); cv.out_off = 95; port_out = new Port("Out", PORT_OUT, 0, this); port_trigger_out = new Port(tr("Trigger Out"), PORT_OUT, 1, this); quantum = QUANT_12; QStringList quantumNames ; quantumNames << tr("1/12") << tr("1/6") << tr("Major Scale") << tr("Minor Scale") << tr("Major Chord") << tr("Minor Chord") << tr("Major 7 Chord") << tr("Minor 7 Chord") << tr("Major 6 Chord") << tr("Minor 6 Chord") << tr("Pentatonic"); configDialog->addComboBox(tr("Quantization"), quantum, quantumNames); for (l1 = 0; l1 < synthdata->poly; l1++) { qsig[l1] = 0; trigCount[l1] = 0; trigger[l1] = 0; } for (l1 = 0; l1 < 12; l1++) { lut[0][l1] = l1; lut[1][l1] = (int)(l1 / 2) * 2; } lut[2][0] = 0; lut[2][1] = 0; lut[2][2] = 2; lut[2][3] = 2; lut[2][4] = 4; lut[2][5] = 5; lut[2][6] = 5; lut[2][7] = 7; lut[2][8] = 7; lut[2][9] = 9; lut[2][10] = 9; lut[2][11] = 11; lut[3][0] = 0; lut[3][1] = 0; lut[3][2] = 2; lut[3][3] = 3; lut[3][4] = 3; lut[3][5] = 5; lut[3][6] = 5; lut[3][7] = 7; lut[3][8] = 8; lut[3][9] = 8; lut[3][10] = 10; lut[3][11] = 10; lut[4][0] = 0; lut[4][1] = 0; lut[4][2] = 0; lut[4][3] = 0; lut[4][4] = 4; lut[4][5] = 4; lut[4][6] = 4; lut[4][7] = 7; lut[4][8] = 7; lut[4][9] = 7; lut[4][10] = 7; lut[4][11] = 7; lut[5][0] = 0; lut[5][1] = 0; lut[5][2] = 0; lut[5][3] = 3; lut[5][4] = 3; lut[5][5] = 3; lut[5][6] = 3; lut[5][7] = 7; lut[5][8] = 7; lut[5][9] = 7; lut[5][10] = 7; lut[5][11] = 7; lut[6][0] = 0; lut[6][1] = 0; lut[6][2] = 0; lut[6][3] = 0; lut[6][4] = 4; lut[6][5] = 4; lut[6][6] = 4; lut[6][7] = 7; lut[6][8] = 7; lut[6][9] = 7; lut[6][10] = 7; lut[6][11] = 11; lut[7][0] = 0; lut[7][1] = 0; lut[7][2] = 0; lut[7][3] = 3; lut[7][4] = 3; lut[7][5] = 3; lut[7][6] = 3; lut[7][7] = 7; lut[7][8] = 7; lut[7][9] = 7; lut[7][10] = 10; lut[7][11] = 10; lut[8][0] = 0; lut[8][1] = 0; lut[8][2] = 0; lut[8][3] = 0; lut[8][4] = 4; lut[8][5] = 4; lut[8][6] = 4; lut[8][7] = 7; lut[8][8] = 7; lut[8][9] = 9; lut[8][10] = 9; lut[8][11] = 9; lut[9][0] = 0; lut[9][1] = 0; lut[9][2] = 0; lut[9][3] = 3; lut[9][4] = 3; lut[9][5] = 3; lut[9][6] = 3; lut[9][7] = 7; lut[9][8] = 7; lut[9][9] = 9; lut[9][10] = 9; lut[9][11] = 9; lut[10][0] = 0; lut[10][1] = 0; lut[10][2] = 2; lut[10][3] = 2; lut[10][4] = 2; lut[10][5] = 5; lut[10][6] = 5; lut[10][7] = 7; lut[10][8] = 7; lut[10][9] = 9; lut[10][10] = 9; lut[10][11] = 9; } void M_quantizer::generateCycle() { int l1, quant, lutquant, transpose; unsigned int l2; inData = port_M_in->getinputdata (); triggerData = port_M_trigger->getinputdata (); transposeData = port_M_transpose->getinputdata (); if (triggerData == synthdata->zeroModuleData) { for (l1 = 0; l1 < synthdata->poly; l1++) { for (l2 = 0; l2 < synthdata->cyclesize; l2++) { quant = (int)((100.0 + inData[l1][l2]) * 12.0); lutquant = lut[quantum][quant % 12] + (int)(quant / 12) * 12; if (qsig[l1] != lutquant) { qsig[l1] = lutquant; data[1][l1][l2] = 1.0; trigCount[l1] = 512; } else { if (trigCount[l1] > 0) { data[1][l1][l2] = 1; trigCount[l1]--; } else { data[1][l1][l2] = 0; } } transpose = (int)(transposeData[l1][l2] * 12.0); data[0][l1][l2] = (float)qsig[l1] / 12.0 - 100 + (float)transpose / 12.0; } } } else { for (l1 = 0; l1 < synthdata->poly; l1++) { for (l2 = 0; l2 < synthdata->cyclesize; l2++) { if (!trigger[l1] && (triggerData[l1][l2] > 0.5)) { trigger[l1] = true; qsig[l1] = (int)((100.0 + inData[l1][l2]) * 12.0); data[1][l1][l2] = 1.0; trigCount[l1] = 512; } else { if (trigger[l1] && (triggerData[l1][l2] < 0.5)) { trigger[l1] = false; } } if (trigCount[l1] > 0) { data[1][l1][l2] = 1; trigCount[l1]--; } else { data[1][l1][l2] = 0; } transpose = (int)(transposeData[l1][l2] * 12.0); data[0][l1][l2] = (float)lut[quantum][qsig[l1] % 12] / 12.0 + qsig[l1] / 12 - 100 + (float)transpose / 12.0; } } } } ams-2.0.1/src/m_scquantizer.h0000664000076400007640000000201311051103064013034 00000000000000#ifndef M_SCQUANTIZER_H #define M_SCQUANTIZER_H #include #include "module.h" #define MODULE_SCQUANTIZER_WIDTH 90 #define MODULE_SCQUANTIZER_HEIGHT 140 class M_scquantizer : public Module { Q_OBJECT private: Port *port_M_in, *port_M_trigger, *port_M_transpose, *port_out, *port_trigger_out; int trigCount[MAXPOLY]; bool trigger[MAXPOLY]; int quantum; float scale_lut[128]; bool scale_lut_isRatio[128]; int scale_lut_length; float scale_notes[128]; float qsig[MAXPOLY]; QFileDialog *fileDialog; private: void calcScale(); public: int base, lastbase; QString sclname, dirpath; float **inData, **triggerData, **transposeData; public: M_scquantizer(QWidget* parent=0, QString *p_sclname = 0); void generateCycle(); public slots: void loadScale(const QString &p_sclname); void openBrowser(); }; #endif ams-2.0.1/src/m_mix.cpp0000664000076400007640000000346511051111565011635 00000000000000#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "synthdata.h" #include "m_mix.h" #include "port.h" M_mix::M_mix(int p_in_channels, QWidget* parent) : Module(M_type_mix, 1, parent, tr("Mixer %1").arg(p_in_channels)) { QString qs; int l1; in_channels = p_in_channels; setGeometry(MODULE_NEW_X, MODULE_NEW_Y, MODULE_MIX_WIDTH, MODULE_MIX_HEIGHT + 20 + 20 * in_channels); gain = 1.0; configDialog->addSlider(tr("Gain"), gain, 0, 2); for (l1 = 0; l1 < in_channels; l1++) { qs = tr("In %1").arg(l1); Port *audio_in_port = new Port(qs, PORT_IN, in_port_list.count(), this); in_port_list.append(audio_in_port); mixer_gain[l1] = 1.0; qs = tr("Volume %1").arg(l1); configDialog->addSlider(qs, mixer_gain[l1], 0, 2); } cv.out_off += cv.step * in_channels; port_out = new Port(tr("Out"), PORT_OUT, 0, this); } void M_mix::generateCycle() { int l1, l3; unsigned int l2; float mixgain; for (l3 = 0; l3 < in_port_list.count(); l3++) inData [l3] = in_port_list.at(l3)->getinputdata(); mixgain = gain * mixer_gain[0]; for (l1 = 0; l1 < synthdata->poly; l1++) { for (l2 = 0; l2 < synthdata->cyclesize; l2++) { data[0][l1][l2] = mixgain * inData[0][l1][l2]; } } for (l3 = 1; l3 < in_port_list.count(); l3++) { mixgain = gain * mixer_gain[l3]; for (l1 = 0; l1 < synthdata->poly; l1++) { for (l2 = 0; l2 < synthdata->cyclesize; l2++) { data[0][l1][l2] += mixgain * inData[l3][l1][l2]; } } } } ams-2.0.1/src/m_slew.cpp0000664000076400007640000000340111051111616011775 00000000000000#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "synthdata.h" #include "m_slew.h" #include "port.h" M_slew::M_slew(QWidget* parent) : Module(M_type_slew, 1, parent, tr("Slew Limiter")) { QString qs; int l1; setGeometry(MODULE_NEW_X, MODULE_NEW_Y, MODULE_SLEW_WIDTH, MODULE_SLEW_HEIGHT); port_M_in = new Port(tr("In"), PORT_IN, 0, this); cv.out_off = 55; port_out = new Port(tr("Out"), PORT_OUT, 0, this); timeUp = 0.5; timeDown = 0.5; configDialog->addSlider(tr("Time Up"), timeUp, 0, 10); configDialog->addSlider(tr("Time Down"), timeDown, 0, 10); for (l1 = 0; l1 < synthdata->poly; l1++) { lastData[l1] = 0; } } void M_slew::generateCycle() { int l1; unsigned int l2; float ds, slewUp, slewDown; inData = port_M_in->getinputdata (); if (timeUp > 0.0001) { slewUp = 1.0 / (timeUp * (float)synthdata->rate); } else { slewUp = 1.0 / (0.0001 * (float)synthdata->rate); } if (timeDown > 0.0001) { slewDown = -1.0 / (timeDown * (float)synthdata->rate); } else { slewDown = -1.0 / (0.0001 * (float)synthdata->rate); } for (l1 = 0; l1 < synthdata->poly; l1++) { for (l2 = 0; l2 < synthdata->cyclesize; l2++) { ds = inData[l1][l2] - lastData[l1]; if (ds > 0) { if (ds > slewUp) ds = slewUp; } else { if (ds < slewDown) ds = slewDown; } data[0][l1][l2] = lastData[l1] + ds; lastData[l1] = data[0][l1][l2]; } } } ams-2.0.1/src/m_vco2.cpp0000664000076400007640000002210311051111616011674 00000000000000#include #include #include #include #include "m_vco2.h" #include "port.h" M_vco2::M_vco2(QWidget* parent) : Module(M_type_vco2, 1, parent, tr("VCO2")) { QString qs; int l1; setGeometry(MODULE_NEW_X, MODULE_NEW_Y, MODULE_VCO2_WIDTH, MODULE_VCO2_HEIGHT); wave_period = (float)WAVE_PERIOD; wave_period_2 = wave_period * 0.5f; wave_period_3 = wave_period / 3.0; Pi2Times= (2.0f * M_PI); PKonst = wave_period / Pi2Times; freq = 0; vcoExpFMGain = 0; vcoLinFMGain = 0; pwGain = 0; phi0 = 0; harmonic = 1; subharmonic = 1; octave = 3; edge = 0.95; for (l1 = 0; l1 < MAXPOLY; ++l1) { phi[l1] = 0; } pw0 = 0.5; waveForm = SINUS; cv.in_index = 1; cv.in_off -= cv.step; port_M_freq = new Port(tr("Freq"), PORT_IN, 1, this); port_M_exp = new Port(tr("Exp. FM"), PORT_IN, 2, this); port_M_lin = new Port(tr("Lin. FM"), PORT_IN, 3, this); port_M_pw = new Port(tr("PW"), PORT_IN, 4, this); cv.out_off = 115; port_sine = new Port(tr("Out"), PORT_OUT, 0, this); /* port_tri = new Port("Triangle", PORT_OUT, 1, this, synthdata); port_saw = new Port("Saw", PORT_OUT, 2, this, synthdata); port_rect = new Port("Rectangle", PORT_OUT, 3, this, synthdata); port_aux = new Port("Aux", PORT_OUT, 4, this, synthdata); */ configDialog->initTabWidget(); QVBoxLayout *freqTab = configDialog->addVBoxTab(tr("Frequency")); QStringList waveFormNames; waveFormNames << tr("Sine"); waveFormNames << tr("Triangle"); waveFormNames << tr("Sawtooth"); waveFormNames << tr("Rectangle"); waveFormNames << tr("Aux Saw"); waveFormNames << tr("Aux Saw 1"); waveFormNames << tr("Aux Saw 2"); configDialog->addComboBox(tr("Wave Form"), waveForm, waveFormNames, freqTab); configDialog->addIntSlider(tr("Octave"), octave, 0, 6, freqTab); configDialog->addSlider(tr("Tune"), freq, 0, 1, false, freqTab); configDialog->addIntSlider(tr("Harmonic"), harmonic, 1, 16, freqTab); configDialog->addIntSlider(tr("Subharmonic"), subharmonic, 1, 16, freqTab); QVBoxLayout *pulseTab = configDialog->addVBoxTab(tr("Pulse Width / Phase")); configDialog->addSlider(tr("PW"), pw0, 0.1, 0.9, false, pulseTab); configDialog->addSlider(tr("PW Gain"), pwGain, 0, 1, false, pulseTab); configDialog->addSlider(tr("Phi0"), phi0, 0, 6.283, false, pulseTab); QVBoxLayout *modulationTab = configDialog->addVBoxTab( tr("Modulation / Aux Waveform")); configDialog->addSlider(tr("Exp. FM Gain"), vcoExpFMGain, 0, 10, false, modulationTab); configDialog->addSlider(tr("Lin. FM Gain"), vcoLinFMGain, 0, 10, false, modulationTab); } void M_vco2::generateCycle() { int l1; unsigned int l2; unsigned phint; float dphi, phi1, phi_const, pw, d, dd, dsaw, half_wave, third_wave; float freq_const, freq_tune, gain_linfm, pw_low, pw_high; edge = 0.01f + 1.8f * synthdata->edge; freqData = port_M_freq->getinputdata(); expFMData = port_M_exp->getinputdata(); linFMData = port_M_lin->getinputdata(); pwData = port_M_pw->getinputdata(); freq_const = wave_period / (float)synthdata->rate * (float)harmonic / (float)subharmonic; freq_tune = 4.0313842f + octave + freq; gain_linfm = 1000.0f * vcoLinFMGain; phi_const = phi0 * PKonst; pw_low = 0.1f * wave_period; pw_high = 0.9f * wave_period; if (phi0 > 0.0f) { for (l1 = 0; l1 < synthdata->poly; ++l1) { for (l2 = 0; l2 < synthdata->cyclesize; ++l2) { dphi = freq_const * (synthdata->exp2_table(freq_tune + freqData[l1][l2] + vcoExpFMGain * expFMData[l1][l2]) + gain_linfm * linFMData[l1][l2]); if (dphi > wave_period_2) dphi = wave_period_2; phi1 = phi[l1] + phi_const; if (phi1 < 0.0f) phi1 += wave_period; else if (phi1 >= wave_period) phi1 -= wave_period; phint=(int)phi1; switch (waveForm) { case SINUS: data[0][l1][l2] = synthdata->wave_sine[phint]; break; case TRIANGLE: data[0][l1][l2] = synthdata->wave_tri[phint]; break; case AWAVE_SAW: data[0][l1][l2] = synthdata->wave_saw2[phint]; break; case AWAVE_SAW2: half_wave = wave_period_2;// * 0.5f;// / 2.0; data[0][l1][l2] = (phi1 < half_wave) ? synthdata->wave_saw2[(int)(2.0f * phi1)] : 0.0f; break; case AWAVE_SAW3: third_wave = wave_period_3;// * 0.3333333333334f;// / 3.0f; data[0][l1][l2] = (phi1 < third_wave) ? synthdata->wave_saw2[(int)(3.0f * phi1)] : 0.0f; break; case SAWTOOTH: { pw = (pw0 + pwGain * pwData[l1][l2]) * wave_period; if (pw < pw_low) pw = pw_low; else if (pw > pw_high) pw = pw_high; d = edge * dphi; dd = 1.0f / d; dsaw = 2.0f / (wave_period - 2.0f * d); if (phi1 <= d) { data[0][l1][l2] = phi1 * dd; } else { if (phi1 <= pw - d) { data[0][l1][l2] = 1.0f - (phi1 - d) * dsaw; } else { if (phi1 <= pw + d) { data[0][l1][l2] = 1.0f - (phi1 - d) * dsaw; } else { if (phi1 <= wave_period - d) { data[0][l1][l2] = 1.0f - (phi1 - d) * dsaw; } else { data[0][l1][l2] = (phi1 - wave_period) * dd; } } } } } break; case RECTANGLE: { pw = (pw0 + pwGain * pwData[l1][l2]) * wave_period; if (pw < pw_low) pw = pw_low; else if (pw > pw_high) pw = pw_high; d = edge * dphi; dd = 1.0f / d; if (phi1 <= d) { data[0][l1][l2] = phi1 * dd; } else { if (phi1 <= pw - d) { data[0][l1][l2] = 1.0f; } else { if (phi1 <= pw + d) { data[0][l1][l2] = (pw - phi1) * dd; } else { if (phi1 <= wave_period - d) { data[0][l1][l2] = -1.0f; } else { data[0][l1][l2] = (phi1 - wave_period) * dd; } } } } } break; } // end of case phi[l1] += dphi; while (phi[l1] < 0.0f) phi[l1] += wave_period; while (phi[l1] >= wave_period) phi[l1] -= wave_period; } } } else { for (l1 = 0; l1 < synthdata->poly; ++l1) { for (l2 = 0; l2 < synthdata->cyclesize; ++l2) { dphi = freq_const * (synthdata->exp2_table(freq_tune + freqData[l1][l2] + vcoExpFMGain * expFMData[l1][l2]) + gain_linfm * linFMData[l1][l2]); if (dphi > wave_period_2) dphi = wave_period_2; phint=(int)phi[l1]; switch (waveForm) { case SINUS: data[0][l1][l2] = synthdata->wave_sine[phint]; break; case TRIANGLE: data[0][l1][l2] = synthdata->wave_tri[phint]; break; case AWAVE_SAW: data[0][l1][l2] = synthdata->wave_saw2[phint]; break; case AWAVE_SAW2: half_wave = wave_period_2;// * 0.5f; // / 2.0; data[0][l1][l2] = (phi[l1] < half_wave) ? synthdata->wave_saw2[(int)(2.0f * phi[l1])] : 0.0f; break; case AWAVE_SAW3: third_wave = wave_period_3;// * 0.3333333333334f;// / 3.0f; data[0][l1][l2] = (phi[l1] < third_wave) ? synthdata->wave_saw2[(int)(3.0f * phi[l1])] : 0.0f; break; case SAWTOOTH: { pw = (pw0 + pwGain * pwData[l1][l2]) * wave_period; if (pw < pw_low) pw = pw_low; else if (pw > pw_high) pw = pw_high; d = edge * dphi; dd = 1.0f / d; dsaw = 2.0f / (wave_period - 2.0f * d); if (phi[l1] <= d) { data[0][l1][l2] = phi[l1] * dd; } else { if (phi[l1] <= pw - d) { data[0][l1][l2] = 1.0f - (phi[l1] - d) * dsaw; } else { if (phi[l1] <= pw + d) { data[0][l1][l2] = 1.0f - (phi[l1] - d) * dsaw; } else { if (phi[l1] <= wave_period - d) { data[0][l1][l2] = 1.0f - (phi[l1] - d) * dsaw; } else { data[0][l1][l2] = (phi[l1] - wave_period) * dd; } } } } } break; case RECTANGLE: { pw = (pw0 + pwGain * pwData[l1][l2]) * wave_period; if (pw < pw_low) pw = pw_low; else if (pw > pw_high) pw = pw_high; d = edge * dphi; dd = 1.0f / d; if (phi[l1] <= d) { data[0][l1][l2] = phi[l1] * dd; } else { if (phi[l1] <= pw - d) { data[0][l1][l2] = 1.0f; } else { if (phi[l1] <= pw + d) { data[0][l1][l2] = (pw - phi[l1]) * dd; } else { if (phi[l1] <= wave_period - d) { data[0][l1][l2] = -1.0f; } else { data[0][l1][l2] = (phi[l1] - wave_period) * dd; } } } } } break; }// end of case phi[l1] += dphi; while (phi[l1] < 0.0f) phi[l1] += wave_period; while (phi[l1] >= wave_period) phi[l1] -= wave_period; } } } } ams-2.0.1/src/msoptions.h0000664000076400007640000000111411214540271012212 00000000000000/* msoptions.h * This file defines the struct for modular synth options */ #ifndef MSOPTIONS_H #define MSOPTIONS_H #include #include struct ModularSynthOptions { QString synthName; QString pcmname; QString presetName; QString presetPath; snd_pcm_uframes_t frsize; unsigned int fsamp; unsigned int nfrags; int ncapt; int nplay; int poly; int rcFd; bool noGui; bool havePreset; bool havePresetPath; bool forceJack; bool forceAlsa; float edge; int verbose; }; #endif // MSOPTIONS_H ams-2.0.1/src/m_dynamicwaves.h0000664000076400007640000000406211051103047013165 00000000000000#ifndef M_DYNAMICWAVES_H #define M_DYNAMICWAVES_H #include "module.h" #define MODULE_DYNAMICWAVES_WIDTH 125 #define MODULE_DYNAMICWAVES_HEIGHT 160 #define MODULE_DYNAMICWAVES_MAX_OSC 8 #define DYNAMICWAVES_EXP_TABLE_LEN 32768 #define DYNAMICWAVES_ENVELOPE_RESPONSE 256 enum dynamicWaveFormType { DYNAMICWAVE_SINE, DYNAMICWAVE_SAW, DYNAMICWAVE_TRI, DYNAMICWAVE_RECT, DYNAMICWAVE_SAW2 }; class M_dynamicwaves : public Module { Q_OBJECT float attack[8][MODULE_DYNAMICWAVES_MAX_OSC], sustain[MODULE_DYNAMICWAVES_MAX_OSC]; float release[5][MODULE_DYNAMICWAVES_MAX_OSC]; float timeScale; float e_noteOff[MAXPOLY][MODULE_DYNAMICWAVES_MAX_OSC]; float de[MAXPOLY][MODULE_DYNAMICWAVES_MAX_OSC]; float de_release[MAXPOLY][MODULE_DYNAMICWAVES_MAX_OSC]; float tune, osc_tune[MODULE_DYNAMICWAVES_MAX_OSC], gain[MODULE_DYNAMICWAVES_MAX_OSC]; int octave, osc_octave[MODULE_DYNAMICWAVES_MAX_OSC]; int harmonic[MODULE_DYNAMICWAVES_MAX_OSC], subharmonic[MODULE_DYNAMICWAVES_MAX_OSC]; int waveForm[MODULE_DYNAMICWAVES_MAX_OSC]; float expFMGain, linFMGain; float phi0[MODULE_DYNAMICWAVES_MAX_OSC], phi[MAXPOLY][MODULE_DYNAMICWAVES_MAX_OSC]; float wave_period; bool allEnvTerminated; Port *port_M_freq, *port_M_exp, *port_M_lin, *port_gate, *port_retrigger; Port *port_out; public: int oscCount; float e[MAXPOLY][MODULE_DYNAMICWAVES_MAX_OSC]; bool noteActive[MAXPOLY], gate[MAXPOLY], retrigger[MAXPOLY]; bool oscActive[MAXPOLY][MODULE_DYNAMICWAVES_MAX_OSC]; long noteOnOfs[MAXPOLY][MODULE_DYNAMICWAVES_MAX_OSC]; long noteOffOfs[MAXPOLY][MODULE_DYNAMICWAVES_MAX_OSC]; float **gateData; float **retriggerData; float **freqData; float **expFMData; // Frequency modulation exp characteristic float **linFMData; // Frequency modulation lin characteristic public: M_dynamicwaves(int p_oscCount, QWidget* parent=0); void generateCycle(); }; #endif ams-2.0.1/src/m_mix.h0000664000076400007640000000103611051103054011264 00000000000000#ifndef M_MIX_H #define M_MIX_H #include "module.h" #define MODULE_MIX_WIDTH 85 #define MODULE_MIX_HEIGHT 40 #define MAX_MIX_IN 16 class M_mix : public Module { Q_OBJECT QList in_port_list; Port *port_out; float gain; float mixer_gain[MAX_MIX_IN]; public: float **inData[MAX_MIX_IN]; int in_channels; public: M_mix(int p_in_channels, QWidget* parent=0); void generateCycle(); }; #endif ams-2.0.1/src/intmidislider.cpp0000664000076400007640000000111311051103371013344 00000000000000#include "intmidislider.h" #include "midicontrollable.h" IntMidiSlider::IntMidiSlider(GUIcomponentType componentType, MidiControllableBase &mcAble, Qt::Orientation orientation) : MidiSliderBase(mcAble, orientation) { componentType = componentType; int ps = 0; if (mcAble.getMax() % 12 == 0) ps = 12; if (ps) slider.setPageStep(ps); slider.setTickInterval(1); slider.setTickPosition(QSlider::TicksBelow); slider.setFixedHeight(slider.sizeHint().height()); } MidiGUIcomponent *IntMidiSlider::createTwin() { return new IntMidiSlider(componentType, mcAble); } ams-2.0.1/src/m_mcv.cpp0000664000076400007640000000422711203763534011632 00000000000000#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "midicombobox.h" #include "synthdata.h" #include "m_mcv.h" #include "port.h" M_mcv::M_mcv(QWidget* parent) : Module(M_type_mcv, 4, parent, tr("MCV")) { QString qs; int l1; setGeometry(MODULE_NEW_X, MODULE_NEW_Y, MODULE_MCV_WIDTH, MODULE_MCV_HEIGHT); port_gate_out = new Port(tr("Gate"), PORT_OUT, 0, this); port_note_out = new Port(tr("Freq"), PORT_OUT, 1, this); port_velocity_out = new Port(tr("Velocity"), PORT_OUT, 2, this); port_trig_out = new Port(tr("Trigger"), PORT_OUT, 3, this); QStringList channelNames; channelNames << "RESERVED FOR LATER USE"; for (l1 = 1; l1 < 17; l1++) { qs.sprintf("RESERVED FOR LATER USE"); channelNames << qs; } channel = 0; pitch = 0; pitchbend = 0; for (l1 = 0; l1 < synthdata->poly; l1++) { freq[l1] = 0; } configDialog->addComboBox(" ", channel, channelNames)->hide(); configDialog->addIntSlider(tr("Note Offset"), pitch, -36, 36); configDialog->addSlider(tr("Pitch"), pitchbend, -1, 1); } void M_mcv::generateCycle() { int l1; unsigned int l2; float gate, velocity; for (l1 = 0; l1 < synthdata->poly; l1++) { // do legato in mono mode gate = (synthdata->channel[l1] == channel - 1 || channel == 0) && synthdata->noteCounter[l1] < 1000000; freq[l1] = pitchbend + float(synthdata->notes[l1]+pitch-60) / 12.0; // if (freq[l1] < 0) freq[l1] = 0; velocity = (float)synthdata->velocity[l1] / 127.0; for (l2 = 0; l2 < synthdata->cyclesize; l2++) { data[0][l1][l2] = gate; data[1][l1][l2] = freq[l1]; data[2][l1][l2] = velocity; } memset(data[3][l1], 0, synthdata->cyclesize * sizeof(float)); // data[3][l1][0] = trig[l1]; data[3][l1][15] = synthdata->noteCounter[l1] == 0; // Added for interpolated input ports (e.g. m_vcenv.cpp) } } ams-2.0.1/src/m_amp.h0000664000076400007640000000060411051103044011243 00000000000000#ifndef M_AMP_H #define M_AMP_H #include "module.h" #define MODULE_AMP_WIDTH 90 #define MODULE_AMP_HEIGHT 80 class M_amp : public Module { Q_OBJECT Port *port_M_in, *port_out; float gain; public: float **inData; public: M_amp(QWidget* parent=0); void generateCycle(); }; #endif ams-2.0.1/src/m_ringmod.h0000664000076400007640000000075711051103060012134 00000000000000#ifndef M_RINGMOD_H #define M_RINGMOD_H #include "module.h" #define MODULE_RINGMOD_WIDTH 100 #define MODULE_RINGMOD_HEIGHT 95 class M_ringmod : public Module { Q_OBJECT float gain; Port *port_M_vco1, *port_M_vco2, *port_out; public: float **vcoData1, **vcoData2; public: M_ringmod(QWidget* parent=0); int setGain(float p_gain); float getGain(); void generateCycle(); }; #endif ams-2.0.1/src/main.h0000664000076400007640000000465511051113053011111 00000000000000#ifndef __MAIN_H #define __MAIN_H #define AMS_LONGNAME "AlsaModularSynth" #define AMS_SHORTNAME "AMS" // Compile time options for AlsaModularSynth #define DEFAULT_SETUP #ifdef DEFAULT_SETUP // Default setup - do not modify - change the local setup below. // Functional #define DEFAULT_PCMNAME "plughw:0,0" #define DEFAULT_RATE 44100 #define DEFAULT_PERIODSIZE 1024 #define MAXIMUM_PERIODSIZE 4096 #define DEFAULT_PERIODS 2 #define DEFAULT_CAPT_PORTS 2 #define DEFAULT_PLAY_PORTS 2 #define MAX_CAPT_PORTS 32 #define MAX_PLAY_PORTS 32 #define MAXPOLY 128 #define MAX_SO 256 #define WAVE_PERIOD 65536 #define M_MCV_MAX_FREQ 20000.0 #define EXP_TABLE_LEN 32768 #define MAX_LADPSA_CONTROLS_PER_TAB 8 #define MAX_ANALOGUE_DRIVER_OUT 6 // Appearance #define DEFAULT_WIDTH 750 #define DEFAULT_HEIGHT 550 #define SYNTH_DEFAULT_WIDTH 750 #define SYNTH_DEFAULT_HEIGHT 500 #define SYNTH_MINIMUM_WIDTH 200 #define SYNTH_MINIMUM_HEIGHT 150 #define COLOR_MAINWIN_BG 0x825A31 #define COLOR_CONNECT_LINE 0xDCD8D8 #define COLOR_CONNECT_BEZ1 0x968C8C #define COLOR_CONNECT_BEZ2 0xB4AAAA #define COLOR_CONNECT_BEZ3 0xDCD8D8 #define COLOR_MODULE_BG 0x4D4640 #else // Local setup. Modify these and comment out the #define DEFAULT_SETUP. // Functional #define DEFAULT_PCMNAME "TT" #define DEFAULT_RATE 48000 #define DEFAULT_PERIODSIZE 256 #define MAXIMUM_PERIODSIZE 1024 #define DEFAULT_PERIODS 4 #define DEFAULT_CAPT_PORTS 8 #define DEFAULT_PLAY_PORTS 8 #define MAX_CAPT_PORTS 32 #define MAX_PLAY_PORTS 32 #define MAXPOLY 32 #define MAX_SO 256 #define WAVE_PERIOD 65536 #define M_MCV_MAX_FREQ 20000.0 #define EXP_TABLE_LEN 32768 // Appearance #define DEFAULT_WIDTH 750 #define DEFAULT_HEIGHT 550 #define SYNTH_DEFAULT_WIDTH 750 #define SYNTH_DEFAULT_HEIGHT 500 #define SYNTH_MINIMUM_WIDTH 200 #define SYNTH_MINIMUM_HEIGHT 150 #define COLOR_MAINWIN_BG 0xD0D0D0 #define COLOR_CONNECT_LINE 0x000000 #define COLOR_CONNECT_BEZ1 0x606060 #define COLOR_CONNECT_BEZ2 0x909090 #define COLOR_CONNECT_BEZ3 0xC0C0C0 #define COLOR_MODULE_BG 0x6060E0 #endif #endif ams-2.0.1/src/m_wavout.h0000664000076400007640000000153011051103076012017 00000000000000#ifndef M_WAVOUT_H #define M_WAVOUT_H #include #include "module.h" #define MODULE_WAVOUT_WIDTH 90 #define MODULE_WAVOUT_HEIGHT 80 class M_wavout : public Module { Q_OBJECT private: QFile wavfile; long wavDataSize; float gain; float mixer_gain[2]; int agc; float doRecord; QString wavname; QTimer *timer; Port *port_in[2]; char outbuf[8]; char *wavdata; float *floatdata; public: float **inData[2]; public: M_wavout(QWidget* parent=0); ~M_wavout(); void generateCycle(); int setGain(float p_gain); float getGain(); public slots: void recordToggled(bool on); void recordClicked(); void openBrowser(); void stopClicked(); void createWav(); void timerProc(); }; #endif ams-2.0.1/src/canvas.h0000664000076400007640000000142511051103031011423 00000000000000#ifndef CANVAS_H #define CANVAS_H #include #include #include #include #define CANVAS_GRID_COLOR_LIGHT 0xC0C0C0 #define CANVAS_GRID_COLOR_DARK 0x707070 #define CANVAS_COLOR_BG 0x141450 class Canvas : public QGraphicsScene { Q_OBJECT private: float zoom, dx, dy, w, h; int border_l, border_r, border_b, border_t, scale; QMatrix matrix; public: Canvas(QObject* parent=0, const char *name=0); ~Canvas(); void setZoom(float p_zoom); void setMatrix(QMatrix p_matrix); void setGrid(int p_border_l, int p_border_r, int p_border_b, int p_border_t, int p_scale, int p_w, int p_h, float p_dx, float p_dy); protected: virtual void drawBackground(QPainter *r, const QRectF &); }; #endif ams-2.0.1/src/m_scquantizer.cpp0000664000076400007640000001660511051111615013404 00000000000000#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "midipushbutton.h" #include "synthdata.h" #include "m_scquantizer.h" #include "port.h" M_scquantizer::M_scquantizer(QWidget* parent, QString *p_sclname) : Module(M_type_scquantizer, 2, parent, tr("Scala Quantizer")) { QString qs; int l1; setGeometry(MODULE_NEW_X, MODULE_NEW_Y, MODULE_SCQUANTIZER_WIDTH, MODULE_SCQUANTIZER_HEIGHT); port_M_in = new Port(tr("In"), PORT_IN, 0, this); port_M_trigger = new Port(tr("Trigger"), PORT_IN, 1, this); port_M_transpose = new Port(tr("Transpose"), PORT_IN, 2, this); cv.out_off = 95; port_out = new Port(tr("Out"), PORT_OUT, 0, this); port_trigger_out = new Port(tr("Trigger Out"), PORT_OUT, 1, this); base = 0; lastbase = 12; configDialog->addIntSlider(tr("Note Offset"), base, -36, 36); for (l1 = 0; l1 < synthdata->poly; l1++) { qsig[l1] = 0; trigCount[l1] = 0; trigger[l1] = 0; } sclname = "No_Scale_loaded"; configDialog->addLabel(tr(" Scale: ") + sclname); configDialog->addLabel(" "); //!! configDialog->addPushButton("Load Scale"); // QObject::connect(configDialog->midiPushButtonList.at(0), SIGNAL(clicked()), // this, SLOT(openBrowser())); fileDialog = NULL; for (l1 = 0; l1 < 12; l1++) { scale_lut_isRatio[l1] = false; scale_lut[l1] = 100.0 + (float)l1 * 100.0; } scale_lut_isRatio[12] = true; scale_lut[12] = 2.0; scale_lut_length = 12; dirpath.sprintf("%s", getenv("SCALA_PATH")); if (dirpath.length() < 1) { qWarning("\nYou did not set the environment variable SCALA_PATH."); qWarning("Assuming SCALA_PATH=/usr/share/scala"); dirpath = "/usr/share/scala"; } else StdErr << "SCALA_PATH: " << dirpath << endl; if (p_sclname && !p_sclname->contains("No_Scale_loaded")) { loadScale(dirpath + "/" + *p_sclname); } } void M_scquantizer::calcScale() { int l1, index; float base_cv, base_freq; lastbase = base; base_cv = base / 12.0; base_freq = synthdata->exp2_table(4.0313842 + base_cv); fprintf(stderr, "base: %d, base_cv: %f, base_freq: %f\n", base, base_cv, base_freq); scale_notes[0] = base_cv; index = 1; while (index < 128) { for (l1 = 0; l1 < scale_lut_length; l1++) { if (scale_lut_isRatio[l1]) { scale_notes[index] = log(base_freq * scale_lut[l1])/M_LN2 - 4.0313842; } else { scale_notes[index] = base_cv + scale_lut[l1] / 1200.0; } index++; if (index > 127) break; } base_cv = scale_notes[index - 1]; base_freq = synthdata->exp2_table(4.0313842 + base_cv); } } void M_scquantizer::generateCycle() { int l1, l3, quant, transpose; unsigned int l2; float lutquant = 0.0; if (base != lastbase) { calcScale(); } inData = port_M_in->getinputdata (); triggerData = port_M_trigger->getinputdata (); transposeData = port_M_transpose->getinputdata (); if (triggerData == synthdata->zeroModuleData) { for (l1 = 0; l1 < synthdata->poly; l1++) { quant = 1; for (l2 = 0; l2 < 128; l2++) { if (scale_notes[quant] > 4.0 + inData[l1][l2]) { lutquant = scale_notes[quant-1]; break; } else { quant++; } } for (l2 = 0; l2 < synthdata->cyclesize; l2++) { if (scale_notes[quant] > 4.0 + inData[l1][l2]) { lutquant = scale_notes[quant-1]; } if (qsig[l1] != lutquant) { qsig[l1] = lutquant; data[1][l1][l2] = 1.0; trigCount[l1] = 512; } else { if (trigCount[l1] > 0) { data[1][l1][l2] = 1; trigCount[l1]--; } else { data[1][l1][l2] = 0; } } transpose = (int)(transposeData[l1][l2] * 12.0); data[0][l1][l2] = (float)qsig[l1] - 4.0 + (float)(transpose + base) / 12.0; } } } else { for (l1 = 0; l1 < synthdata->poly; l1++) { for (l2 = 0; l2 < synthdata->cyclesize; l2++) { if (!trigger[l1] && (triggerData[l1][l2] > 0.5)) { trigger[l1] = true; quant = 1; for (l3 = 0; l3 < 128; l3++) { if (scale_notes[quant] > 4.0 + inData[l1][l2]) { break; } else { quant++; } } qsig[l1] = scale_notes[quant-1]; data[1][l1][l2] = 1.0; trigCount[l1] = 512; } else { if (trigger[l1] && (triggerData[l1][l2] < 0.5)) { trigger[l1] = false; } } if (trigCount[l1] > 0) { data[1][l1][l2] = 1; trigCount[l1]--; } else { data[1][l1][l2] = 0; } transpose = (int)(transposeData[l1][l2] * 12.0); data[0][l1][l2] = (float)qsig[l1] - 4.0 + (float)(transpose + base) / 12.0; } } } } void M_scquantizer::openBrowser() { if (!fileDialog) { fileDialog = new QFileDialog(NULL, tr("Load Scala"), dirpath, "Scala files (*.scl)"); QObject::connect(fileDialog, SIGNAL(currentChanged(const QString &)), this, SLOT(loadScale(const QString &))); } fileDialog->show(); } void M_scquantizer::loadScale(const QString &p_sclname) { QString qs, qs2, qs3; int index, n; sclname = p_sclname; QFile qfile(sclname); if (!qfile.open(QIODevice::ReadOnly)) { QMessageBox::information( this, "AlsaModularSynth", tr("Could not load Scala file '%1'").arg(sclname)); sclname = "No_Scale_loaded"; return; } configDialog->labelList.at(0)->setText(tr(" Scale: ") + sclname); QTextStream stream(&qfile); while (!stream.atEnd()) { qs = stream.readLine(); if (!qs.contains("!")) break; } configDialog->labelList.at(1)->setText(" " + qs); StdErr << "Scale: " << qs << endl; while (!stream.atEnd()) { qs = stream.readLine(); if (!qs.contains("!")) break; } index = 0; while (!stream.atEnd() && (index < 128)) { qs = stream.readLine(); if (qs.contains("!")) { continue; } qs2 = qs.simplified(); if (qs2.contains(".")) { if ((n = qs2.indexOf(" ")) > 0) { qs = qs2.left(n); } else { qs = qs2; } scale_lut_isRatio[index] = false; scale_lut[index] = qs.toFloat(); index++; } else { scale_lut_isRatio[index] = true; if (qs.contains("/")) { qs = qs2.left(qs2.indexOf("/")); qs3 = qs2.mid(qs2.indexOf("/") + 1); if ((n = qs3.indexOf(" ")) > 0) { qs2 = qs3.left(n); } else { qs2 = qs3; } scale_lut[index] = qs.toFloat() / qs2.toFloat(); } else { if ((n = qs2.indexOf(" ")) > 0) { qs = qs2.left(n); } else { qs = qs2; } scale_lut[index] = qs.toFloat(); } index++; } } scale_lut_length = index; calcScale(); } ams-2.0.1/src/m_pcmin.h0000664000076400007640000000066511051103056011606 00000000000000#ifndef M_PCMIN_H #define M_PCMIN_H #include "module.h" #define MODULE_PCMIN_WIDTH 90 #define MODULE_PCMIN_HEIGHT 80 class M_pcmin : public Module { Q_OBJECT float gain; float mixer_gain[2]; Port *port_out[2]; public: float *pcmdata[2]; public: M_pcmin(QWidget* parent, int port); ~M_pcmin(); void generateCycle(); }; #endif ams-2.0.1/src/m_function.cpp0000664000076400007640000001115611051103375012661 00000000000000#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "synthdata.h" #include "midicombobox.h" #include "m_function.h" #include "port.h" M_function::M_function(int p_functionCount, QWidget* parent) : Module(M_type_function, p_functionCount, parent, tr("Function")) { QString qs; QHBoxLayout *hbox; int l1, l2; setGeometry(MODULE_NEW_X, MODULE_NEW_Y, MODULE_FUNCTION_WIDTH, MODULE_FUNCTION_HEIGHT + 20 + 20 * outPortCount); port_in = new Port(tr("In"), PORT_IN, 0, this); cv.out_off = 55; for (l1 = 0; l1 < outPortCount; l1++) { for (l2 = 0; l2 < MAXPOLY; l2++) { i[l2][l1] = 1; y[l1][l2] = 0; old_y[l1][l2] = 0; } for (l2 = 0; l2 < MAX_POINTS; l2++) { point[l1][l2].x = l2 - 5; point[l1][l2].y = (float)l1 / 10; } qs = tr("Out %1").arg(l1); Port *audio_out_port = new Port(qs, PORT_OUT, out_port_list.count(), this); out_port_list.append(audio_out_port); } qs = tr("Function %1 -> 1 ID %2").arg(outPortCount).arg(moduleID); configDialog->setAddStretch(-1); configDialog->addFunction(outPortCount, &mode, &editIndex, point, MAX_POINTS); zoomIndex = 0; zoom = 1.0; mode = 0; editIndex = 0; QStringList zoomNames; zoomNames << " 1 " << " 2 " << " 4 " << " 8 "; QStringList modeNames; modeNames << tr("Move Point") << tr("Shift X") << tr("Shift Y") << tr("Scale X") << tr("Scale Y") << tr("Reset") << tr("Linear"); QStringList editNames; editNames << "All"; for (l1 = 0; l1 < outPortCount; l1++) { qs.sprintf("%d", l1); editNames << qs; } hbox = configDialog->addHBox(); configDialog->addLabel( tr(" Mouse X: _____ Y: _____"), hbox); hbox = configDialog->addHBox(); configDialog->addComboBox(tr("Mode"), mode, modeNames, hbox); configDialog->addComboBox(tr("Edit Function"), editIndex, editNames, hbox); configDialog->addComboBox(tr("Zoom"), zoomIndex, zoomNames, hbox); QObject::connect(configDialog->midiComboBoxList.at(2)->comboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(updateZoom(int))); QObject::connect(configDialog->midiComboBoxList.at(1)->comboBox, SIGNAL(currentIndexChanged(int)), configDialog->functionList.at(0), SLOT(highlightFunction(int))); QObject::connect(configDialog->functionList.at(0), SIGNAL(mousePos(int, int)), this, SLOT(updateMouseLabels(int, int))); } void M_function::generateCycle() { int l1, l2, l3, k, len, l2_out; int pointCount; Function *cf; float xg, dy; inData = port_in->getinputdata(); cf = configDialog->functionList.at(0); pointCount = configDialog->functionList.at(0)->pointCount; for (l3 = 0; l3 < outPortCount; l3++) { for (l1 = 0; l1 < synthdata->poly; l1++) { len = synthdata->cyclesize; l2 = -1; l2_out = 0; do { k = (len > 24) ? 16 : len; l2 += k; len -= k; xg = inData[l1][l2]; while (xg < cf->f[0][l3][i[l1][l3]]) i[l1][l3]--; while (xg >= cf->f[0][l3][i[l1][l3]+1]) i[l1][l3]++; if (i[l1][l3] < 1) { y[l3][l1] = cf->f[1][l3][1]; } else if (i[l1][l3] >= pointCount) { y[l3][l1] = cf->f[1][l3][pointCount]; } else { y[l3][l1] = cf->f[1][l3][i[l1][l3]] + (xg - cf->f[0][l3][i[l1][l3]]) * (cf->f[1][l3][i[l1][l3]+1] - cf->f[1][l3][i[l1][l3]]) / (cf->f[0][l3][i[l1][l3]+1] - cf->f[0][l3][i[l1][l3]]); } dy = (y[l3][l1] - old_y[l3][l1]) / (double)k; while (k--) { old_y[l3][l1] += dy; data[l3][l1][l2_out++] = old_y[l3][l1]; } } while (len); } } } void M_function::updateZoom(int zoomIndex) { zoom = pow(2.0, zoomIndex); // zoomIndex is may _not_ be already set in MidiComboBox event handler configDialog->functionList.at(0)->setZoom(zoom); } void M_function::updateMouseLabels(int x, int y) { QString qs; qs.sprintf(" Mouse X: %6.3f Y: %6.3f", (float)(x-FUNCTION_CENTER_X)/(float)FUNCTION_SCALE, (float)(FUNCTION_CENTER_Y-y)/(float)FUNCTION_SCALE); configDialog->labelList.at(0)->setText(qs); } ams-2.0.1/src/m_amp.cpp0000664000076400007640000000202711051111565011606 00000000000000#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "synthdata.h" #include "m_amp.h" #include "port.h" M_amp::M_amp(QWidget* parent) : Module(M_type_amp, 1, parent, tr("Amplifier")) { QString qs; setGeometry(MODULE_NEW_X, MODULE_NEW_Y, MODULE_AMP_WIDTH, MODULE_AMP_HEIGHT); port_M_in = new Port(tr("In"), PORT_IN, 0, this); cv.out_off = 55; port_out = new Port(tr("Out"), PORT_OUT, 0, this); gain = 1; configDialog->addSlider(tr("Gain"), gain, -10, 10); } void M_amp::generateCycle() { int l1; unsigned int l2; inData = port_M_in->getinputdata(); for (l1 = 0; l1 < synthdata->poly; l1++) { for (l2 = 0; l2 < synthdata->cyclesize; l2++) { data[0][l1][l2] = gain * inData[l1][l2]; } } } ams-2.0.1/src/m_ringmod.cpp0000664000076400007640000000246511051111565012476 00000000000000#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "synthdata.h" #include "m_ringmod.h" #include "port.h" M_ringmod::M_ringmod(QWidget* parent) : Module(M_type_ringmod, 1, parent, tr("Ring Modulator")) { QString qs; setGeometry(MODULE_NEW_X, MODULE_NEW_Y, MODULE_RINGMOD_WIDTH, MODULE_RINGMOD_HEIGHT); gain = 0.5; port_M_vco1 = new Port(tr("In 0"), PORT_IN, 0, this); port_M_vco2 = new Port(tr("In 1"), PORT_IN, 1, this); cv.out_off = 70; port_out = new Port(tr("Out"), PORT_OUT, 0, this); configDialog->addSlider(tr("Gain"), gain, 0, 5); } int M_ringmod::setGain(float p_gain) { gain = p_gain; return(0); } float M_ringmod::getGain() { return(gain); } void M_ringmod::generateCycle() { int l1; unsigned int l2; vcoData1 = port_M_vco1->getinputdata (); vcoData2 = port_M_vco2->getinputdata (); for (l1 = 0; l1 < synthdata->poly; l1++) { for (l2 = 0; l2 < synthdata->cyclesize; l2++) { data[0][l1][l2] = gain * vcoData1[l1][l2] * vcoData2[l1][l2]; } } } ams-2.0.1/src/notelist.h0000664000076400007640000000066211203770404012030 00000000000000#ifndef NOTELIST_H #define NOTELIST_H #define NB_MIDI_NOTES 129 class NoteList { bool hasNote(int); int nbNotesPressed; int first, last; bool notesPressed[NB_MIDI_NOTES]; int next[NB_MIDI_NOTES]; int prev[NB_MIDI_NOTES]; public: NoteList(); void pushNote(int); int lastNote() { return last; } void deleteNote(int); bool anyNotesPressed() { return last != -1; } void reset(); }; #endif ams-2.0.1/src/m_vcdoubledecay.cpp0000664000076400007640000001277111051103417013646 00000000000000#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "synthdata.h" #include "m_vcdoubledecay.h" #include "port.h" M_vcdoubledecay::M_vcdoubledecay(QWidget* parent) : Module(M_type_vcdoubledecay, 1, parent, tr("VC Double Decay")) { QString qs; int l1; setGeometry(MODULE_NEW_X, MODULE_NEW_Y, MODULE_VCDOUBLEDECAY_WIDTH, MODULE_VCDOUBLEDECAY_HEIGHT); port_M_gate = new Port(tr("Gate"), PORT_IN, 0, this); port_M_retrigger = new Port(tr("Retrigger"), PORT_IN, 1, this); port_M_attack = new Port(tr("Attack"), PORT_IN, 2, this); port_M_decay = new Port(tr("Decay"), PORT_IN, 3, this); port_M_sustain = new Port(tr("Sustain"), PORT_IN, 4, this); port_M_release = new Port(tr("Release"), PORT_IN, 5, this); port_M_ratio = new Port(tr("Ratio"), PORT_IN, 6, this); cv.out_off = 175; port_out = new Port(tr("Out"), PORT_OUT, 0, this); a0 = 0; d0 = 0; s0 = 0; rl0 = 0; r0 = 0.5; aGain = 1.0; dGain = 1.0; sGain = 1.0; rlGain = 1.0; rGain = 1.0; for (l1 = 0; l1 < synthdata->poly; l1++) { gate[l1] = false; retrigger[l1] = false; state[l1] = 0; noteActive[l1] = false; e[l1] = 0; e2[l1] = 0; old_e[l1] = 0; old_e2[l1] = 0; s[l1] = 0; old_s[l1] = 0; } configDialog->addSlider(tr("Attack Offset"), a0, -8, 8); configDialog->addSlider(tr("Decay Offset"), d0, -8, 8); configDialog->addSlider(tr("Sustain Offset"), s0, 0, 1); configDialog->addSlider(tr("Ratio Offset"), r0, 0, 1); configDialog->addSlider(tr("Release Offset"), rl0, -8, 8); configDialog->addSlider(tr("Attack Gain"), aGain, -8, 8); configDialog->addSlider(tr("Decay Gain"), dGain, -8, 8); configDialog->addSlider(tr("Sustain Gain"), sGain, 0, 1); configDialog->addSlider(tr("Ratio Gain"), rGain, 0, 1); configDialog->addSlider(tr("Release Gain"), rlGain, -8, 8); } void M_vcdoubledecay::generateCycle() { int l1, l2, k, len, l2_out; double ts, tsr, tsn, tmp, c1, c2, n1, n, c, astep, de, de2, ds; gateData = port_M_gate->getinputdata (); retriggerData = port_M_retrigger->getinputdata (); attackData = port_M_attack->getinputdata (); decayData = port_M_decay->getinputdata (); sustainData = port_M_sustain->getinputdata (); releaseData = port_M_sustain->getinputdata (); ratioData = port_M_ratio->getinputdata (); ts = 1.0; tsr = 16.0 * ts / (double)synthdata->rate; tsn = ts * (double)synthdata->rate / 16.0; for (l1 = 0; l1 < synthdata->poly; l1++) { // fprintf(stderr, "gate:%d retrigger:%d noteActive:%d state: %d\n", gate[l1], retrigger[l1], noteActive[l1], state[l1]); len = synthdata->cyclesize; l2 = -1; l2_out = 0; do { k = (len > 24) ? 16 : len; l2 += k; len -= k; if (!gate[l1] && gateData[l1][l2] > 0.5) { gate[l1] = true; noteActive[l1] = true; state[l1] = 1; } if (gate[l1] && gateData[l1][l2] < 0.5) { gate[l1] = false; state[l1] = 3; } if (!retrigger[l1] && retriggerData[l1][l2] > 0.5) { retrigger[l1] = true; if (gate[l1]) { state[l1] = 1; } } if (retrigger[l1] && retriggerData[l1][l2] < 0.5) { retrigger[l1] = false; } s[l1] = s0 + sGain * sustainData[l1][l2]; switch (state[l1]) { case 0: e[l1] = 0; e2[l1] = 0; break; case 1: astep = ((tmp = synthdata->exp2_table(a0 + aGain * attackData[l1][l2])) > 0.001) ? tsr / tmp : tsr / 0.001; e[l1] += astep; e2[l1] += astep; if (e[l1] >= 1.0) { state[l1] = 2; e[l1] = 1.0; } if (e2[l1] >= 1.0) { e2[l1] = 1.0; } break; case 2: n1 = tsn * synthdata->exp2_table(d0 + dGain * decayData[l1][l2]); if (n1 < 1) n1 = 1; c1 = 2.3 / n1; c2 = c1 * (r0 + rGain * ratioData[l1][l2]); if (c2 < 0) c2 = 0; e[l1] *= exp(-c1); if (e[l1] <= 1e-20) e[l1] = 0; e2[l1] *= exp(-c2); if (e2[l1] <= 1e-20) e2[l1] = 0; break; case 3: n = tsn * synthdata->exp2_table(rl0 + rlGain * releaseData[l1][l2]); if (n < 1) n = 1; c = 2.3 / n; e[l1] *= exp(-c); if (e[l1] <= 1e-20) e[l1] = 0; e2[l1] *= exp(-c); if (e2[l1] < 1e-20) { e[l1] = 0; e2[l1] = 0; noteActive[l1] = false; } break; default: e[l1] = 0; e2[l1] = 0; data[0][l1][l2] = e[l1]; } de = (e[l1] - old_e[l1]) / (double)k; de2 = (e2[l1] - old_e2[l1]) / (double)k; ds = (s[l1] - old_s[l1]) / (double)k; while (k--) { old_e[l1] += de; old_e2[l1] += de2; old_s[l1] += ds; data[0][l1][l2_out++] = (1.0 - old_s[l1]) * old_e[l1] + old_s[l1] * old_e2[l1]; } } while (len); } } ams-2.0.1/src/port.cpp0000664000076400007640000001477311060275054011520 00000000000000#include #include #include #include #include #include #include #include #include "modularsynth.h" #include "port.h" #include "synthdata.h" #include "module.h" #include "main.h" Port::Port(const QString &p_portName, dirType dir, int p_index, Module *parent, int p_color) : QWidget(parent) , portNameWidth(0) , dir(dir) , colorFont(p_color ? synthdata->colorPortFont2 : synthdata->colorPortFont1) { module = parent; portName = p_portName; if (dir == PORT_IN) outTypeAcceptList.append(outType_audio); else outType = outType_audio; jackColor = synthdata->colorJack; cableColor = synthdata->colorCable; highlighted = false; index = p_index; portNameWidth = QFontMetrics(QFont(synthdata->smallFont, this)).boundingRect(p_portName).width(); int width = 10 + portNameWidth; if (width < 30) width = 30; setFixedWidth(width); setFixedHeight(PORT_DEFAULT_HEIGHT); module->addPort(this); } Port::~Port() { } void Port::connectTo(Port *port) { synthdata->port_sem.acquire(); if (dir == PORT_OUT) { if (port->outTypeAcceptList.contains(outType)) { connectedPortList.append(port); module->incConnections(); port->jackColor = synthdata->colorJack; port->cableColor = synthdata->colorCable; } } else { if (outTypeAcceptList.contains(port->outType)) { if (connectedPortList.count() > 0) { Port* cport = connectedPortList.at(0); cport->connectedPortList.removeAll(this); cport->module->decConnections(); connectedPortList.clear(); } else module->incConnections(); connectedPortList.append(port); } } synthdata->port_sem.release(); } Port* Port::needsConnectionToPort() { if ((dir == PORT_IN) && (connectedPortList.count() > 0)) return connectedPortList.at(0); else return NULL; } bool Port::hasConnectedPort() { return (connectedPortList.count() > 0); } void Port::paintEvent(QPaintEvent *) { QPainter p(this); QRect textRect; p.setFont(synthdata->smallFont); p.setPen(colorFont); if (dir == PORT_IN) { if (highlighted) { p.fillRect(0, height()/2 - 2, 3, 5, QBrush(QColor(240, 0, 0))); } else { p.fillRect(0, height()/2 - 2, 3, 5, QBrush(QColor(10, 10, 10))); } p.drawText(5, 11, portName); } else { if (highlighted) { p.fillRect(width() - 3, height()/2 - 2, 3, 5, QBrush(QColor(240, 0, 0))); } else { p.fillRect(width() - 3, height()/2 - 2, 3, 5, QBrush(QColor(10, 10, 10))); } p.drawText(width() - portNameWidth - 6, 11, portName); } } void Port::mousePressEvent(QMouseEvent *ev) { switch (ev->button()) { case Qt::LeftButton: emit portClicked(this); ev->accept(); break; default: ev->ignore(); break; } } bool Port::isInPort() { return (dir == PORT_IN); } void Port::popupMenuClicked(PopupMenu::portAction ac) { switch(ac) { case PopupMenu::paDisconnect: disconnectClicked(); break; case PopupMenu::paDefaultCable: cableDefaultClicked(); break; case PopupMenu::paGrayCable: cableGrayClicked(); break; case PopupMenu::paRedCable: cableRedClicked(); break; case PopupMenu::paGreenCable: cableGreenClicked(); break; case PopupMenu::paBlueCable: cableBlueClicked(); break; case PopupMenu::paYellowCable: cableYellowClicked(); break; case PopupMenu::paSetJackColor: jackColorClicked(); break; case PopupMenu::paSetCableColor: cableColorClicked(); break; case PopupMenu::paNone: default: break; } } void Port::disconnectClicked() { synthdata->port_sem.acquire(); if (connectedPortList.count() > 0) { Port* cport = connectedPortList.at(0); cport->connectedPortList.removeAll(this); cport->module->decConnections(); connectedPortList.clear(); module->decConnections(); } synthdata->port_sem.release(); emit portDisconnected(); } float **Port::getinputdata (void) { Module *M; Port* outport; if (connectedPortList.count() > 0) { outport = connectedPortList.at(0); M = outport->module; return M->getData(outport->index); } else return synthdata->zeroModuleData; } void Port::cableGrayClicked() { jackColor = QColor(250, 200, 50); cableColor = QColor(180, 180, 180); update(); } void Port::cableRedClicked() { jackColor = QColor(200, 150, 150); cableColor = QColor(190, 0, 60); update(); } void Port::cableGreenClicked() { jackColor = QColor(130, 190, 130); cableColor = QColor(60, 170, 60); update(); } void Port::cableBlueClicked() { jackColor = QColor(150, 150, 190); cableColor = QColor(90, 90, 210); update(); } void Port::cableYellowClicked() { jackColor = QColor(220, 170, 100); cableColor = QColor(220, 195, 10); update(); } void Port::cableDefaultClicked() { jackColor = synthdata->colorJack; cableColor = synthdata->colorCable; update(); } void Port::jackColorClicked() { QColor tmp; tmp = QColorDialog::getColor (jackColor); if (tmp.isValid()) { jackColor = tmp; } update(); } void Port::cableColorClicked() { QColor tmp; tmp = QColorDialog::getColor (cableColor); if (tmp.isValid()) { cableColor = tmp; } update(); } bool Port::hasIndex(int idx) { return (index == idx); } void Port::removeAllConnectedPorts() { for (int i = 0; i < connectedPortList.count(); i++) { Port *port = connectedPortList.at(i); if (port != NULL) port->removeAllConnectionsTo(this); } connectedPortList.clear(); } void Port::removeAllConnectionsTo(Port* p) { int connections = connectedPortList.removeAll(p); for (int i = 0; i < connections; i++) module->decConnections(); } void Port::setHighlighted(bool lighton) { if (highlighted != lighton) { highlighted = lighton; update(); } } ams-2.0.1/src/m_delay.cpp0000664000076400007640000000325411051111565012132 00000000000000#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "synthdata.h" #include "m_delay.h" #include "port.h" M_delay::M_delay(QWidget* parent) : Module(M_type_delay, 1, parent, tr("Delay")) { QString qs; int l1; setGeometry(MODULE_NEW_X, MODULE_NEW_Y, MODULE_DELAY_WIDTH, MODULE_DELAY_HEIGHT); port_M_in = new Port(tr("In"), PORT_IN, 0, this); cv.out_off = 55; port_out = new Port(tr("Out"), PORT_OUT, 0, this); configDialog->addSlider(tr("Delay"), delay, 0, 10); buf = (float **)malloc(synthdata->poly * sizeof(float *)); for (l1 = 0; l1 < synthdata->poly; l1++) { buf[l1] = (float *)malloc(MAX_DELAY_FRAMES * sizeof(float)); memset(buf[l1], 0, MAX_DELAY_FRAMES * sizeof(float)); } read_ofs = 0; } M_delay::~M_delay() { int l1; for (l1 = 0; l1 < synthdata->poly; l1++) { free(buf[l1]); } free(buf); } void M_delay::generateCycle() { int l1, ofs, delay_frames; unsigned int l2; inData = port_M_in->getinputdata(); delay_frames = (int)((float)(MAX_DELAY_FRAMES - 3) * delay / 10.0); for (l2 = 0; l2 < synthdata->cyclesize; l2++) { for (l1 = 0; l1 < synthdata->poly; l1++) { buf[l1][read_ofs] = inData[l1][l2]; ofs = read_ofs - delay_frames; if (ofs < 0) ofs += MAX_DELAY_FRAMES; data[0][l1][l2] = buf[l1][ofs]; } read_ofs++; if (read_ofs >= MAX_DELAY_FRAMES) read_ofs = 0; } } ams-2.0.1/src/m_vcf.h0000664000076400007640000000215511051103074011252 00000000000000#ifndef M_VCF_H #define M_VCF_H #include "module.h" #define MODULE_VCF_WIDTH 90 #define MODULE_VCF_HEIGHT 155 #define MIN_FREQ 20 #define MAX_FREQ 20000 #define MAX_FREQ2 22000 enum vcfTypeEnum { VCF_LR, VCF_LPF, VCF_HPF, VCF_BPF_I, VCF_BPF_II, VCF_NF, VCF_MOOG1, VCF_MOOG2 }; class M_vcf : public Module { Q_OBJECT private: float gain, freq, resonance, dBgain; float vcfExpFMGain, vcfLinFMGain, resonanceGain; float freq_const; float fInvertRandMax ; float pi2_rate,inv2_rate; float freq_tune, gain_linfm, qr, moog_f, revMoog, moog2times; double b_noise; double in[5][MAXPOLY], buf[5][MAXPOLY]; int vcfType; Port *port_M_in, *port_M_resonance, *port_M_freq, *port_M_exp, *port_M_lin, *port_out; public: float **inData, **resonanceData, **freqData, **linFMData, **expFMData; public: M_vcf(QWidget* parent=0); void generateCycle(); public slots: void initBuf(int index); }; #endif ams-2.0.1/src/m_noise2.cpp0000664000076400007640000000520011051113053012216 00000000000000#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "synthdata.h" #include "m_noise2.h" #include "port.h" M_noise2::M_noise2(QWidget* parent) : Module(M_type_noise2, 1, parent, tr("Noise2")) { QString qs; int l2; long t; rate = 5; level = 0.5; count = 0; NoiseType=WHITE; randmax = 2.0f / (float)RAND_MAX; setGeometry(MODULE_NEW_X, MODULE_NEW_Y, MODULE_NOISE2_WIDTH, MODULE_NOISE2_HEIGHT); port_white = new Port("Out", PORT_OUT, 0, this); /* port_pink = new Port("Pink", PORT_OUT, 1, this, synthdata); port_random = new Port("Random", PORT_OUT, 2, this, synthdata); */ QStringList noiseNames; noiseNames << tr("White") << tr("Random") << tr("Pink"); configDialog->addComboBox(tr("Noise Type"), NoiseType, noiseNames); configDialog->addSlider(tr("Random Rate"), rate, 0, 10); configDialog->addSlider(tr("Random Level"), level, 0, 1); r = 0; for (l2 = 0; l2 < 3; ++l2) { buf[l2] = 0; } t = time(NULL) % 1000000; srand(abs(t - 10000 * (t % 100))); } void M_noise2::generateCycle() { int l1; unsigned int l2; float white_noise; switch (NoiseType) { case WHITE: { for (l2 = 0; l2 < synthdata->cyclesize; ++l2) { white_noise = rand() * randmax - 1.0f; for (l1 = 0; l1 < synthdata->poly; ++l1) { data[0][l1][l2] = white_noise; } } } break; case RAND: { unsigned int random_rate = (unsigned int)(5000.0 * (double)rate + 100.0); for (l2 = 0; l2 < synthdata->cyclesize; ++l2) { count++; if (count > random_rate) { count = 0; r = level * rand() * randmax - 1.0f; } for (l1 = 0; l1 < synthdata->poly; ++l1) { data[0][l1][l2] = r; } } } break; case PINK: { for (l2 = 0; l2 < synthdata->cyclesize; ++l2) { white_noise = rand() * randmax - 1.0f; buf[0] = 0.99765f * buf[0] + white_noise * 0.099046f; buf[1] = 0.963f * buf[1] + white_noise * 0.2965164f; buf[2] = 0.57f * buf[2] + white_noise * 1.0526913f; for (l1 = 0; l1 < synthdata->poly; ++l1) { data[0][0][l2] = buf[0] + buf[1] + buf[2] + white_noise * 0.1848f; data[0][l1][l2] = data[0][0][l2]; } } } break; } } ams-2.0.1/src/canvas.cpp0000644000076400007640000000537211315233754012004 00000000000000#include #include #include #include #include #include #include #include "canvas.h" #include "synthdata.h" Canvas::Canvas(QObject* parent, const char *) : QGraphicsScene(parent) { zoom = 1.0; } Canvas::~Canvas() { } void debugCatch() { } void Canvas::drawBackground(QPainter *painter, const QRectF &clip) { int l1; QPointF qp_in[2], qp_out[2]; float zoom_dx, zoom_dy, val; QString qs; static int countt; std::cout << __FUNCTION__ << countt++ << std::endl; debugCatch(); zoom_dx = dx / zoom; zoom_dy = dy / zoom; painter->fillRect(clip, QBrush(QColor(CANVAS_COLOR_BG))); for (l1 = 0; l1 <= w / zoom_dx; l1++) { val = ((float)l1 * zoom_dx - (float)w/2.0) / (float)scale; if (floor(val) == ceil(val)) { painter->setPen(QColor(CANVAS_GRID_COLOR_LIGHT)); } else { painter->setPen(QColor(CANVAS_GRID_COLOR_DARK)); } qp_in[0].setX(l1 * zoom_dx); qp_in[0].setY(0); qp_in[1].setX(l1 * zoom_dx); qp_in[1].setY(h); qp_out[0] = matrix.map(qp_in[0]); qp_out[1] = matrix.map(qp_in[1]); painter->drawLine(qp_out[0], qp_out[1]); if (floor(val) == ceil(val)) { qs.sprintf("%6.0f", val); painter->setFont(synthdata->bigFont); painter->drawText( QPointF(qp_out[1].x() - 20, qp_out[1].y() + 15), qs); } } for (l1 = 0; l1 <= h / zoom_dy; l1++) { val = -((float)l1 * zoom_dy - (float)w/2.0) / (float)scale; if (floor(val) == ceil(val)) { painter->setPen(QColor(CANVAS_GRID_COLOR_LIGHT)); } else { painter->setPen(QColor(CANVAS_GRID_COLOR_DARK)); } qp_in[0].setY(l1 * zoom_dy); qp_in[0].setX(0); qp_in[1].setY(l1 * zoom_dy); qp_in[1].setX(w); qp_out[0] = matrix.map(qp_in[0]); qp_out[1] = matrix.map(qp_in[1]); painter->drawLine(qp_out[0], qp_out[1]); if (floor(val) == ceil(val)) { qs.sprintf("%7.0f", val); painter->setFont(synthdata->bigFont); painter->drawText( QPointF(qp_out[0].x() - 44, qp_out[0].y() + 4), qs); } } } void Canvas::setZoom(float p_zoom) { zoom = p_zoom; } void Canvas::setMatrix(QMatrix p_matrix) { matrix = p_matrix; } void Canvas::setGrid(int p_border_l, int p_border_r, int p_border_b, int p_border_t, int p_scale, int p_w, int p_h, float p_dx, float p_dy) { border_l = p_border_l; border_r = p_border_r; border_b = p_border_b; border_t = p_border_t; scale = p_scale; w = p_w; h = p_h; dx = p_dx; dy = p_dy; } ams-2.0.1/src/m_ladspa.cpp0000664000076400007640000004661511056204124012307 00000000000000#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "synthdata.h" #include "m_ladspa.h" #include "port.h" #include "../pixmaps/ladspa_logo.xpm" M_ladspa::M_ladspa(QWidget* parent, int ladspaDesFuncIndex, int n, bool poly, bool extCtrlPorts) : Module(M_type_ladspa, 0, parent, QString(poly ? tr("Poly ") : "") + synthdata->ladspaLib.at(ladspaDesFuncIndex).desc.at(n)->Label) , ladspa_dsc(synthdata->ladspaLib.at(ladspaDesFuncIndex).desc.at(n)) , ladspaPoly(poly ? synthdata->poly : 1) , ladspaDesFuncIndex(ladspaDesFuncIndex) , isPoly(poly) { QString qs; int l1, l2, itmp, port_ofs; int audio_in_index = 0, audio_out_index = 0, ctrl_in_index = 0, ctrl_out_index = 0, control_port_count = 0; float control_min, control_max; bool tabMode; QVBoxLayout *ladspaTab; setGeometry(MODULE_NEW_X, MODULE_NEW_Y, MODULE_LADSPA_WIDTH, MODULE_LADSPA_HEIGHT); logo = QPixmap(ladspa_logo_xpm); ladspaTab = 0; hasExtCtrlPorts = extCtrlPorts; // fprintf(stderr, "new LADSPA module, Poly: %d\n", (int)isPoly); rate_factor = 1.0; ladspa_audio_in_count = 0; ladspa_audio_out_count = 0; ladspa_ctrl_in_count = 0; ladspa_ctrl_out_count = 0; for (unsigned l1 = 0; l1 < ladspa_dsc->PortCount; l1++) { if (LADSPA_IS_PORT_AUDIO(ladspa_dsc->PortDescriptors[l1])) { if (LADSPA_IS_PORT_INPUT(ladspa_dsc->PortDescriptors[l1])) { ladspa_audio_in_count++; } if (LADSPA_IS_PORT_OUTPUT(ladspa_dsc->PortDescriptors[l1])) { ladspa_audio_out_count++; } } if (LADSPA_IS_PORT_CONTROL(ladspa_dsc->PortDescriptors[l1])) { if (LADSPA_IS_PORT_INPUT(ladspa_dsc->PortDescriptors[l1])) { ladspa_ctrl_in_count++; } if (LADSPA_IS_PORT_OUTPUT(ladspa_dsc->PortDescriptors[l1])) { ladspa_ctrl_out_count++; } } } if (ladspa_audio_in_count > MAX_AUDIOPORTS) ladspa_audio_in_count = MAX_AUDIOPORTS; if (ladspa_audio_out_count > MAX_AUDIOPORTS) ladspa_audio_out_count = MAX_AUDIOPORTS; if (ladspa_ctrl_in_count > MAX_CONTROLPORTS) ladspa_ctrl_in_count = MAX_CONTROLPORTS; if (ladspa_ctrl_out_count > MAX_CONTROLPORTS) ladspa_ctrl_out_count = MAX_CONTROLPORTS; portMemAlloc(ladspa_audio_out_count + ladspa_ctrl_out_count, poly); tabMode = ladspa_ctrl_in_count > MAX_LADPSA_CONTROLS_PER_TAB; for (l1 = 0; l1 < ladspaPoly; l1++) { for (l2 = 0; l2 < ladspa_audio_in_count; l2++) { ladspaDataIn[l2][l1] = (LADSPA_Data *)malloc(synthdata->periodsize * sizeof(LADSPA_Data)); memset(ladspaDataIn[l2][l1], 0, synthdata->periodsize * sizeof(LADSPA_Data)); } ladspa_handle[l1] = ladspa_dsc->instantiate(ladspa_dsc, synthdata->rate); } if (ladspa_dsc->activate) for (l1 = 0; l1 < ladspaPoly; l1++) ladspa_dsc->activate(ladspa_handle[l1]); configDialog->addLabel(tr("Name: ") + ladspa_dsc->Name); configDialog->addLabel(tr("Author: ") + ladspa_dsc->Maker); configDialog->addLabel(tr("Copyright: ") + ladspa_dsc->Copyright); if (tabMode) configDialog->initTabWidget(); port_ofs = 35; for (unsigned l1 = 0; l1 < ladspa_dsc->PortCount; l1++) { if (LADSPA_IS_PORT_AUDIO(ladspa_dsc->PortDescriptors[l1])) { if (LADSPA_IS_PORT_INPUT(ladspa_dsc->PortDescriptors[l1])) { Port *audio_in_port = new Port(ladspa_dsc->PortNames[l1], PORT_IN, in_port_list.count() + in_ctrl_port_list.count(), this); in_port_list.append(audio_in_port); for (l2 = 0; l2 < ladspaPoly; l2++) ladspa_dsc->connect_port(ladspa_handle[l2], l1, ladspaDataIn[audio_in_index][l2]); audio_in_index++; } if (LADSPA_IS_PORT_OUTPUT(ladspa_dsc->PortDescriptors[l1])) { Port *audio_out_port = new Port(ladspa_dsc->PortNames[l1], PORT_OUT, out_port_list.count() + out_ctrl_port_list.count(), this); out_port_list.append(audio_out_port); for (l2 = 0; l2 < ladspaPoly; l2++) ladspa_dsc->connect_port(ladspa_handle[l2], l1, data[out_port_list.count() + out_ctrl_port_list.count() - 1][l2]); audio_index[audio_out_index] = out_port_list.count() + out_ctrl_port_list.count() - 1; // fprintf(stderr, "audio_index[audio_out_index] = audio_index[%d] = %d\n", audio_out_index, audio_index[audio_out_index]); audio_out_index++; } } if (LADSPA_IS_PORT_CONTROL(ladspa_dsc->PortDescriptors[l1])) { controlPortRate[control_port_count] = false; if (hasExtCtrlPorts) { if (LADSPA_IS_PORT_INPUT(ladspa_dsc->PortDescriptors[l1])) { Port *ctrl_in_port = new Port(ladspa_dsc->PortNames[l1], PORT_IN, in_port_list.count() + in_ctrl_port_list.count(), this, 1); in_ctrl_port_list.append(ctrl_in_port); // fprintf(stderr, "input: %s\n", ladspa_dsc->PortNames[l1]); } if (LADSPA_IS_PORT_OUTPUT(ladspa_dsc->PortDescriptors[l1])) { Port *ctrl_out_port = new Port(ladspa_dsc->PortNames[l1], PORT_OUT, out_port_list.count() + out_ctrl_port_list.count(), this, 1); out_ctrl_port_list.append(ctrl_out_port); if (LADSPA_IS_HINT_SAMPLE_RATE( ladspa_dsc->PortRangeHints[l1].HintDescriptor)) { controlPortRate[ctrl_out_index] = true; } for (l2 = 0; l2 < ladspaPoly; l2++) ladspa_dsc->connect_port(ladspa_handle[l2], l1, &control_out[ctrl_out_index]); // fprintf(stderr, "output: %s\n", ladspa_dsc->PortNames[l1]); ctrl_index[ctrl_out_index] = out_port_list.count() + out_ctrl_port_list.count() - 1; ctrl_out_index++; } } else { if (LADSPA_IS_PORT_OUTPUT(ladspa_dsc->PortDescriptors[l1])) { for (l2 = 0; l2 < ladspaPoly; l2++) ladspa_dsc->connect_port(ladspa_handle[l2], l1, &control_out[ctrl_out_index]); ctrl_out_index++; } } if (LADSPA_IS_PORT_INPUT(ladspa_dsc->PortDescriptors[l1])) { if (tabMode && ((ctrl_in_index % MAX_LADPSA_CONTROLS_PER_TAB) == 0)) { if (ctrl_in_index + MAX_LADPSA_CONTROLS_PER_TAB < ladspa_ctrl_in_count) { qs.sprintf("%d-%d", ctrl_in_index + 1, ctrl_in_index + MAX_LADPSA_CONTROLS_PER_TAB); } else { qs.sprintf("%d-%d", ctrl_in_index + 1, ladspa_ctrl_in_count); } ladspaTab = configDialog->addVBoxTab(qs); } if (LADSPA_IS_HINT_TOGGLED( ladspa_dsc->PortRangeHints[l1].HintDescriptor)) { configDialog->addCheckBox(ladspa_dsc->PortNames[l1], control_gui[ctrl_in_index], ladspaTab); control_data[ctrl_in_index] = 0; for (l2 = 0; l2 < ladspaPoly; l2++) ladspa_dsc->connect_port(ladspa_handle[l2], l1, &control_data[ctrl_in_index]); ctrl_in_index++; } else { control_min = 0; control_max = 1; if (LADSPA_IS_HINT_BOUNDED_BELOW( ladspa_dsc->PortRangeHints[l1].HintDescriptor)) { control_min = ladspa_dsc->PortRangeHints[l1].LowerBound; } if (LADSPA_IS_HINT_BOUNDED_ABOVE( ladspa_dsc->PortRangeHints[l1].HintDescriptor)) { control_max = ladspa_dsc->PortRangeHints[l1].UpperBound; } if (LADSPA_IS_HINT_SAMPLE_RATE( ladspa_dsc->PortRangeHints[l1].HintDescriptor)) { // TODO implement this rate_factor = synthdata->rate; controlPortRate[ctrl_in_index] = true; } else { rate_factor = 1.0; } control_gui[ctrl_in_index] = control_min * rate_factor; control_data[ctrl_in_index] = control_min * rate_factor; control_data_min[ctrl_in_index] = control_min * rate_factor; control_data_max[ctrl_in_index] = control_max * rate_factor; if (LADSPA_IS_HINT_DEFAULT_MAXIMUM( ladspa_dsc->PortRangeHints[l1].HintDescriptor)) { control_gui[ctrl_in_index] = control_max * rate_factor; control_data[ctrl_in_index] = control_max * rate_factor; } if (LADSPA_IS_HINT_LOGARITHMIC( ladspa_dsc->PortRangeHints[l1].HintDescriptor)) { if (LADSPA_IS_HINT_DEFAULT_LOW( ladspa_dsc->PortRangeHints[l1].HintDescriptor)) { if (control_min <=0 ) control_min = 1e-4; if (control_max <=0 ) control_max = 1e-4; control_gui[ctrl_in_index] = exp(log(control_min) * 0.75 + log(control_max) * 0.25) * rate_factor; control_data[ctrl_in_index] = exp(log(control_min) * 0.75 + log(control_max) * 0.25) * rate_factor; } if (LADSPA_IS_HINT_DEFAULT_MIDDLE( ladspa_dsc->PortRangeHints[l1].HintDescriptor)) { if (control_min <=0 ) control_min = 1e-4; if (control_max <=0 ) control_max = 1e-4; control_gui[ctrl_in_index] = exp(log(control_min) * 0.5 + log(control_max) * 0.5) * rate_factor; control_data[ctrl_in_index] = exp(log(control_min) * 0.5 + log(control_max) * 0.5) * rate_factor; } if (LADSPA_IS_HINT_DEFAULT_HIGH( ladspa_dsc->PortRangeHints[l1].HintDescriptor)) { if (control_min <=0 ) control_min = 1e-4; if (control_max <=0 ) control_max = 1e-4; control_gui[ctrl_in_index] = exp(log(control_min) * 0.25 + log(control_max) * 0.75) * rate_factor; control_data[ctrl_in_index] = exp(log(control_min) * 0.25 + log(control_max) * 0.75) * rate_factor; } } else { if (LADSPA_IS_HINT_DEFAULT_LOW( ladspa_dsc->PortRangeHints[l1].HintDescriptor)) { control_gui[ctrl_in_index] = (control_min * 0.75 + control_max * 0.25) * rate_factor; control_data[ctrl_in_index] = (control_min * 0.75 + control_max * 0.25) * rate_factor; } if (LADSPA_IS_HINT_DEFAULT_MIDDLE( ladspa_dsc->PortRangeHints[l1].HintDescriptor)) { control_gui[ctrl_in_index] = (control_min * 0.5 + control_max * 0.5) * rate_factor; control_data[ctrl_in_index] = (control_min * 0.5 + control_max * 0.5) * rate_factor; } if (LADSPA_IS_HINT_DEFAULT_HIGH( ladspa_dsc->PortRangeHints[l1].HintDescriptor)) { control_gui[ctrl_in_index] = (control_min * 0.25 + control_max * 0.75) * rate_factor; control_data[ctrl_in_index] = (control_min * 0.25 + control_max * 0.75) * rate_factor; } } if (LADSPA_IS_HINT_DEFAULT_0( ladspa_dsc->PortRangeHints[l1].HintDescriptor)) { control_gui[ctrl_in_index] = 0; control_data[ctrl_in_index] = 0; } if (LADSPA_IS_HINT_DEFAULT_1( ladspa_dsc->PortRangeHints[l1].HintDescriptor)) { control_gui[ctrl_in_index] = rate_factor; control_data[ctrl_in_index] = rate_factor; } if (LADSPA_IS_HINT_DEFAULT_100( ladspa_dsc->PortRangeHints[l1].HintDescriptor)) { control_gui[ctrl_in_index] = 100.0 * rate_factor; control_data[ctrl_in_index] = 100.0 * rate_factor; } if (LADSPA_IS_HINT_DEFAULT_440( ladspa_dsc->PortRangeHints[l1].HintDescriptor)) { control_gui[ctrl_in_index] = 440.0 * rate_factor; control_data[ctrl_in_index] = 440.0 * rate_factor; } if (LADSPA_IS_HINT_LOGARITHMIC( ladspa_dsc->PortRangeHints[l1].HintDescriptor)) { configDialog->addSlider( ladspa_dsc->PortNames[l1], control_gui[ctrl_in_index], control_min * rate_factor, control_max * rate_factor, true, ladspaTab); } else { if (LADSPA_IS_HINT_INTEGER( ladspa_dsc->PortRangeHints[l1].HintDescriptor)) { // fprintf(stderr, "LADSPA_IS_HINT_INTEGER %s\n", ladspa_dsc->PortNames[l1]); configDialog->addFloatIntSlider( ladspa_dsc->PortNames[l1], control_gui[ctrl_in_index], control_min * rate_factor, control_max * rate_factor, ladspaTab); } else { configDialog->addSlider( ladspa_dsc->PortNames[l1], control_gui[ctrl_in_index], control_min * rate_factor, control_max * rate_factor, false, ladspaTab); } } for (l2 = 0; l2 < ladspaPoly; l2++) ladspa_dsc->connect_port(ladspa_handle[l2], l1, &control_data[ctrl_in_index]); ctrl_in_index++; } } } } itmp = ((out_port_list.count() + out_ctrl_port_list.count()) > (in_port_list.count() + in_ctrl_port_list.count())) ? (out_port_list.count() + out_ctrl_port_list.count()) : (in_port_list.count() + in_ctrl_port_list.count()); setGeometry(MODULE_NEW_X, MODULE_NEW_Y, MODULE_LADSPA_WIDTH, MODULE_LADSPA_HEIGHT + 20 * itmp); pluginName.sprintf("%s", ladspa_dsc->Label); // fprintf(stderr, "--> isPoly: %d ladspa_dsc->Label: %s moduleID: %d\n", isPoly, ladspa_dsc->Label, moduleID); } M_ladspa::~M_ladspa() { int l1, l2; for (l1 = 0; l1 < ladspaPoly; l1++) { for (l2 = 0; l2 < ladspa_audio_in_count; l2++) free(ladspaDataIn[l2][l1]); if (ladspa_dsc->deactivate) ladspa_dsc->deactivate(ladspa_handle[l1]); } for (l1 = 0; l1 < ladspaPoly; l1++) ladspa_dsc->cleanup(ladspa_handle[l1]); } void M_ladspa::paintEvent(QPaintEvent *) { QPainter p(this); QRect r = logo.rect(); r.moveCenter(rect().center()); p.drawPixmap(r, logo); paint(p); } void M_ladspa::generateCycle() { int l1, l3; unsigned int l2; float ctrlVal; for (l3 = 0; l3 < in_port_list.count(); l3++) inData [l3] = in_port_list.at(l3)->getinputdata(); if (hasExtCtrlPorts) { for (l3 = 0; l3 < in_ctrl_port_list.count(); l3++) inData_ctrl [l3] = in_ctrl_port_list.at(l3)->getinputdata(); } if (isPoly) { for (l3 = 0; l3 < in_port_list.count(); l3++) { for (l1 = 0; l1 < synthdata->poly; l1++) { for (l2 = 0; l2 < synthdata->cyclesize; l2++) { ladspaDataIn[l3][l1][l2] = inData[l3][l1][l2]; } } } } else { for (l3 = 0; l3 < in_port_list.count(); l3++) { for (l2 = 0; l2 < synthdata->cyclesize; l2++) { ladspaDataIn[l3][0][l2] = inData[l3][0][l2]; } if (synthdata->poly > 1 && inData[l3][0] != inData[l3][1]) for (l1 = 1; l1 < synthdata->poly; l1++) { for (l2 = 0; l2 < synthdata->cyclesize; l2++) { ladspaDataIn[l3][0][l2] += inData[l3][l1][l2]; } } } } if (hasExtCtrlPorts) { for (l3 = 0; l3 < in_ctrl_port_list.count(); l3++) { if (controlPortRate[l3]) { ctrlVal = synthdata->rate * inData_ctrl[l3][0][0] + control_gui[l3]; } else { ctrlVal = inData_ctrl[l3][0][0] + control_gui[l3]; } if (ctrlVal < control_data_min[l3]) ctrlVal = control_data_min[l3]; if (ctrlVal > control_data_max[l3]) ctrlVal = control_data_max[l3]; control_data[l3] = ctrlVal; } for (l1 = 0; l1 < synthdata->poly; l1++) { for (l3 = 0; l3 < out_ctrl_port_list.count(); l3++) { for (l2 = 0; l2 < synthdata->cyclesize; l2++) { data[ctrl_index[l3]][l1][l2] = control_out[l3]; } } } } else { for (l3 = 0; l3 < ladspa_ctrl_in_count; l3++) { control_data[l3] = control_gui[l3]; } } for (l1 = 0; l1 < ladspaPoly; l1++) ladspa_dsc->run(ladspa_handle[l1], synthdata->cyclesize); } ams-2.0.1/src/port_popup.h0000664000076400007640000000320011051113055012357 00000000000000#ifndef PORT_POPUP_H #define PORT_POPUP_H #include #include class PopupMenu: public QMenu { Q_OBJECT public: enum portAction { paNone = 0, paDisconnect, paDefaultCable, paGrayCable, paRedCable, paGreenCable, paBlueCable, paYellowCable, paSetJackColor, paSetCableColor }; PopupMenu(QWidget* parent = NULL); PopupMenu::portAction runAt(const QPoint&); private: QAction* acDisconnect; QAction* acDefaultCable; QAction* acGrayCable; QAction* acRedCable; QAction* acGreenCable; QAction* acBlueCable; QAction* acYellowCable; QAction* acSetJackColor; QAction* acSetCableColor; /* public slots: void disconnectClicked() { port->disconnectClicked(); } void cableGrayClicked() { port->cableGrayClicked(); port->module->modularSynth()->update(); } void cableRedClicked() { port->cableRedClicked(); port->module->modularSynth()->update(); } void cableGreenClicked() { port->cableGreenClicked(); port->module->modularSynth()->update(); } void cableBlueClicked() { port->cableBlueClicked(); port->module->modularSynth()->update(); } void cableYellowClicked() { port->cableYellowClicked(); port->module->modularSynth()->update(); } void cableDefaultClicked() { port->cableDefaultClicked(); port->module->modularSynth()->update(); } void jackColorClicked() { port->jackColorClicked(); port->module->modularSynth()->update(); } void cableColorClicked() { port->cableColorClicked(); port->module->modularSynth()->update(); } */ }; #endif ams-2.0.1/src/m_env.cpp0000664000076400007640000001055311315236530011627 00000000000000#include #include #include #include #include #include #include #include "envelope.h" #include "synthdata.h" #include "midislider.h" #include "m_env.h" #include "port.h" #include "midicontrollable.h" M_env::M_env(QWidget* parent) : Module(M_type_env, 2, parent, tr("ENV")) { QString qs; int l1; setGeometry(MODULE_NEW_X, MODULE_NEW_Y, MODULE_ENV_WIDTH, MODULE_ENV_HEIGHT); delay = 0; attack = 0.05; hold = 0.02; decay = 0.1; sustain = 0.7; release = 0.05; timeScale = 1.0; port_gate = new Port(tr("Gate"), PORT_IN, 0, this); port_retrigger = new Port(tr("Retrigger"), PORT_IN, 1, this); cv.out_off = 75; port_gain_out = new Port(tr("Out"), PORT_OUT, 0, this); port_inverse_out = new Port(tr("Inverse Out"), PORT_OUT, 1, this); configDialog->initTabWidget(); QVBoxLayout *adsrTab = configDialog->addVBoxTab(tr("ADSR")); QVBoxLayout *delayTab = configDialog->addVBoxTab( tr("Delay / Hold / Time Scale")); configDialog->addSlider(tr("Delay"), delay, 0, 1, false, delayTab); configDialog->addSlider(tr("Attack"), attack, 0, 1, false, adsrTab); configDialog->addSlider(tr("Hold"), hold, 0, 1, false, delayTab); configDialog->addSlider(tr("Decay"), decay, 0, 1, false, adsrTab); configDialog->addSlider(tr("Sustain"), sustain, 0, 1, false, adsrTab); configDialog->addSlider(tr("Release"), release, 0, 1, false, adsrTab); configDialog->addSlider(tr("Time Scale"), timeScale, 0.1, 10, false, delayTab); configDialog->addEnvelope(*dynamic_cast(midiControllables.at(0)), *dynamic_cast(midiControllables.at(1)), *dynamic_cast(midiControllables.at(2)), *dynamic_cast(midiControllables.at(3)), *dynamic_cast(midiControllables.at(4)), *dynamic_cast(midiControllables.at(5))); for (l1 = 0; l1 < synthdata->poly; l1++) { gate[l1] = false; retrigger[l1] = false; noteOnOfs[l1] = 0; e[l1] = 0; de[l1] = 0; e_noteOff[l1] = 0; } } void M_env::generateCycle() { int l1, status; unsigned int l2; float tscale, de_attack, de_decay, de_release; float a, dl, dc, h; int idl, idla, idlah, idlahdc; gateData = port_gate->getinputdata(); retriggerData = port_retrigger->getinputdata(); tscale = timeScale * (float)synthdata->rate; de_attack = (attack > 0) ? 1.0 / (attack * tscale) : 0; de_decay = (decay > 0) ? (1.0 - sustain) / (decay * tscale) : 0; a = tscale * attack; dl = tscale * delay; idl = (int)dl; h = tscale * hold; dc = tscale * decay; idla = (int)(dl + a); idlah = idla + (int)h; if (idlah == idla) ++idlah; idlahdc = idlah + (int)dc; for (l1 = 0; l1 < synthdata->poly; l1++) { for (l2 = 0; l2 < synthdata->cyclesize; l2++) { if (!gate[l1] && (gateData[l1][l2] > 0.5)) { gate[l1] = true; if (e[l1] > 0) { noteOnOfs[l1] = -ENVELOPE_RESPONSE; de[l1] = e[l1] / (float)ENVELOPE_RESPONSE; } else noteOnOfs[l1] = 0; } if (gate[l1] && (gateData[l1][l2] < 0.5)) { gate[l1] = false; e_noteOff[l1] = e[l1]; } if (!retrigger[l1] && (retriggerData[l1][l2] > 0.5)) { retrigger[l1] = true; if (e[l1] > 0) noteOnOfs[l1] = (de_attack > 0) ? (int)(e[l1] / de_attack) : 0; else noteOnOfs[l1] = 0; } if (retrigger[l1] && (retriggerData[l1][l2] < 0.5)) retrigger[l1] = false; if (gate[l1]) { status = 1; if (noteOnOfs[l1] < 0) status = 0; if (noteOnOfs[l1] >= idl) status = 2; if (noteOnOfs[l1] >= idla) status = 3; if (noteOnOfs[l1] >= idlah) status = 4; if (noteOnOfs[l1] >= idlahdc) status = 5; switch (status) { case 0: e[l1] -= de[l1]; break; case 1: e[l1] = 0; break; case 2: e[l1] += de_attack; break; case 3: e[l1] = 1.0; break; case 4: e[l1] -= de_decay; break; case 5: e[l1] = sustain; break; default: e[l1] = 0; break; } if (e[l1] < 0) e[l1] = 0; data[0][l1][l2] = e[l1]; data[1][l1][l2] = -e[l1]; noteOnOfs[l1]++; } else { // Release de_release = (release > 0) ? e_noteOff[l1] / (release * tscale) : 0; e[l1] -= de_release; if ((release == 0) || (e[l1] < 0)) e[l1] = 0; data[0][l1][l2] = e[l1]; data[1][l1][l2] = -e[l1]; } } } } ams-2.0.1/src/m_dynamicwaves.cpp0000664000076400007640000003437411051111565013535 00000000000000#include #include #include #include #include #include #include #include #include #include #include #include "synthdata.h" #include "midislider.h" #include "multi_envelope.h" #include "m_dynamicwaves.h" #include "port.h" #include "midicontrollable.h" M_dynamicwaves::M_dynamicwaves(int p_oscCount, QWidget* parent) : Module(M_type_dynamicwaves, 1, parent, tr("DynamicWaves %1").arg(p_oscCount)) { QString qs; int l1, l2; QVBoxLayout *oscTab[MODULE_DYNAMICWAVES_MAX_OSC]; QVBoxLayout *envelopeTab[MODULE_DYNAMICWAVES_MAX_OSC]; setGeometry(MODULE_NEW_X, MODULE_NEW_Y, MODULE_DYNAMICWAVES_WIDTH, MODULE_DYNAMICWAVES_HEIGHT); wave_period = (float)WAVE_PERIOD; tune = 0; octave = 3; expFMGain = 0; linFMGain = 0; oscCount = p_oscCount; allEnvTerminated = true; timeScale = 1; for (l1 = 0; l1 < oscCount; l1++) { gain[l1] = 1; osc_tune[l1] = 0; harmonic[l1] = 1 + l1; subharmonic[l1] = 1; osc_octave[l1] = 0; waveForm[l1] = DYNAMICWAVE_SINE; phi0[l1] = 0; attack[0][l1] = 0; attack[1][l1] = 0.01; attack[2][l1] = 0.5; attack[3][l1] = 0.01; attack[4][l1] = 1.0; attack[5][l1] = 0.1; attack[6][l1] = 0.9; attack[7][l1] = 0.1; sustain[l1] = 0.8; release[0][l1] = 0.01; release[1][l1] = 0.7; release[2][l1] = 0.01; release[3][l1] = 0.5; release[4][l1] = 0.01; } for (l1 = 0; l1 < MAXPOLY; l1++) { gate[l1] = false; retrigger[l1] = false; noteActive[l1] = false; for (l2 = 0; l2 < oscCount; l2++) { phi[l1][l2] = 0; oscActive[l1][l2] = false; noteOnOfs[l1][l2] = 0; noteOffOfs[l1][l2] = 0; e[l1][l2] = 0; de[l1][l2] = 0; } } port_M_freq = new Port("Freq", PORT_IN, 0, this); port_M_exp = new Port("Exp. FM", PORT_IN, 1, this); port_M_lin = new Port("Lin. FM", PORT_IN, 2, this); port_gate = new Port("Gate", PORT_IN, 3, this); port_retrigger = new Port("Retrigger", PORT_IN, 4, this); cv.out_off = 135; port_out = new Port("Out", PORT_OUT, 0, this); configDialog->initTabWidget(); QStringList waveFormNames; waveFormNames << "Sine" << "Saw" << "Tri" << "Rect" << "Saw 2"; QVBoxLayout *generalTab = configDialog->addVBoxTab("Tune / Modulation"); MultiEnvelope *multiEnv = configDialog->addMultiEnvelope(oscCount, &timeScale, attack[0], sustain, release[0], generalTab); configDialog->addIntSlider("Octave", octave, 0, 6, generalTab); configDialog->addSlider("Tune", tune, 0, 1, false, generalTab); configDialog->addSlider("Exp. FM Gain", expFMGain, 0, 10, false, generalTab); configDialog->addSlider("Lin. FM Gain", linFMGain, 0, 10, false, generalTab); configDialog->addSlider("Timescale", timeScale, 0.1, 10, false, generalTab); QVBoxLayout *mixTab = configDialog->addVBoxTab("Mixer"); for (l1 = 0; l1 < oscCount; l1++) { qs.sprintf("Volume %d", l1); configDialog->addSlider(qs, gain[l1], 0, 1, false, mixTab); } for (l1 = 0; l1 < oscCount; l1++) { qs.sprintf("Osc %d", l1); oscTab[l1] = configDialog->addVBoxTab(qs); qs.sprintf("Wave Form %d", l1); configDialog->addComboBox(qs, waveForm[l1], waveFormNames, oscTab[l1]); qs.sprintf("Octave %d", l1); configDialog->addIntSlider(qs, osc_octave[l1], 0, 3, oscTab[l1]); qs.sprintf("Tune %d", l1); configDialog->addSlider(qs, osc_tune[l1], 0, 1, false, oscTab[l1]); qs.sprintf("Harmonic %d", l1); configDialog->addIntSlider(qs, harmonic[l1], 1, 16, oscTab[l1]); qs.sprintf("Subharmonic %d", l1); configDialog->addIntSlider(qs, subharmonic[l1], 1, 16, oscTab[l1]); qs.sprintf("Phi0 %d", l1); configDialog->addSlider(qs, phi0[l1], 0, 6.283, false, oscTab[l1]); } int multiEnvFromListen = midiControllables.count(); for (l1 = 0; l1 < oscCount; l1++) { qs.sprintf("Envelope %d", l1); envelopeTab[l1] = configDialog->addVBoxTab(qs); qs.sprintf("Delay %d", l1); configDialog->addSlider(qs, attack[0][l1], 0, 1, false, envelopeTab[l1]); qs.sprintf("Attack Time 0 %d", l1); configDialog->addSlider(qs, attack[1][l1], 0, 1, false, envelopeTab[l1]); qs.sprintf("Attack Level 0 %d", l1); configDialog->addSlider(qs, attack[2][l1], 0, 1, false, envelopeTab[l1]); qs.sprintf("Attack Time 1 %d", l1); configDialog->addSlider(qs, attack[3][l1], 0, 1, false, envelopeTab[l1]); qs.sprintf("Attack Level 1 %d", l1); configDialog->addSlider(qs, attack[4][l1], 0, 1, false, envelopeTab[l1]); qs.sprintf("Attack Time 2 %d", l1); configDialog->addSlider(qs, attack[5][l1], 0, 1, false, envelopeTab[l1]); qs.sprintf("Attack Level 2 %d", l1); configDialog->addSlider(qs, attack[6][l1], 0, 1, false, envelopeTab[l1]); qs.sprintf("Attack Time 3 %d", l1); configDialog->addSlider(qs, attack[7][l1], 0, 1, false, envelopeTab[l1]); qs.sprintf("Sustain %d", l1); configDialog->addSlider(qs, sustain[l1], 0, 1, false, envelopeTab[l1]); qs.sprintf("Release Time 0 %d", l1); configDialog->addSlider(qs, release[0][l1], 0, 1, false, envelopeTab[l1]); qs.sprintf("Release Level 0 %d", l1); configDialog->addSlider(qs, release[1][l1], 0, 1, false, envelopeTab[l1]); qs.sprintf("Release Time 1 %d", l1); configDialog->addSlider(qs, release[2][l1], 0, 1, false, envelopeTab[l1]); qs.sprintf("Release Level 1 %d", l1); configDialog->addSlider(qs, release[3][l1], 0, 1, false, envelopeTab[l1]); qs.sprintf("Release Time 2 %d", l1); configDialog->addSlider(qs, release[4][l1], 0, 1, false, envelopeTab[l1]); } multiEnv->listenTo(this, multiEnvFromListen); } void M_dynamicwaves::generateCycle() { int l1, l3, l4, status; unsigned int l2; float dphi, phi1; float freq_const[MODULE_DYNAMICWAVES_MAX_OSC], freq_tune[MODULE_DYNAMICWAVES_MAX_OSC]; float gain_linfm, wave_period_2, current_gain; float gain_const[MODULE_DYNAMICWAVES_MAX_OSC], phi_const[MODULE_DYNAMICWAVES_MAX_OSC]; float t[8][MODULE_DYNAMICWAVES_MAX_OSC], tscale; float de_a[4][MODULE_DYNAMICWAVES_MAX_OSC]; float de_d[3][MODULE_DYNAMICWAVES_MAX_OSC]; wave_period_2 = wave_period / 2.0; freqData = port_M_freq->getinputdata(); expFMData = port_M_exp->getinputdata(); linFMData = port_M_lin->getinputdata(); gateData = port_gate->getinputdata(); retriggerData = port_retrigger->getinputdata(); gain_linfm = 1000.0 * linFMGain; tscale = timeScale * synthdata->rate; for (l3 = 0; l3 < oscCount; l3++) { gain_const[l3] = gain[l3] / (float)oscCount; freq_tune[l3] = 4.0313842 + octave + tune + osc_octave[l3] + osc_tune[l3]; freq_const[l3] = wave_period / (float)synthdata->rate * (float)harmonic[l3] / (float)subharmonic[l3]; phi_const[l3] = phi0[l3] * wave_period / (2.0 * M_PI); de_a[0][l3] = (attack[1][l3] > 0) ? attack[2][l3] / (tscale * attack[1][l3]) : 0; de_a[1][l3] = (attack[3][l3] > 0) ? (attack[4][l3] - attack[2][l3]) / (tscale * attack[3][l3]) : 0; de_a[2][l3] = (attack[5][l3] > 0) ? (attack[6][l3] - attack[4][l3]) / (tscale * attack[5][l3]) : 0; de_a[3][l3] = (attack[7][l3] > 0) ? (sustain[l3] - attack[6][l3]) / (tscale * attack[7][l3]) : 0; de_d[0][l3] = (release[0][l3] > 0) ? (release[1][l3] - sustain[l3]) / (tscale * release[0][l3]) : 0; de_d[1][l3] = (release[2][l3] > 0) ? (release[3][l3] - release[1][l3]) / (tscale * release[2][l3]) : 0; de_d[2][l3] = (release[4][l3] > 0) ? - release[3][l3] / (tscale * release[4][l3]) : 0; t[0][l3] = tscale * attack[0][l3]; t[1][l3] = t[0][l3] + tscale * attack[1][l3]; t[2][l3] = t[1][l3] + tscale * attack[3][l3]; t[3][l3] = t[2][l3] + tscale * attack[5][l3]; t[4][l3] = t[3][l3] + tscale * attack[7][l3]; t[5][l3] = tscale * release[0][l3]; t[6][l3] = t[5][l3] + tscale * release[2][l3]; t[7][l3] = t[6][l3] + tscale * release[4][l3]; } for (l1 = 0; l1 < synthdata->poly; l1++) { memset(data[0][l1], 0, synthdata->cyclesize * sizeof(float)); for (l2 = 0; l2 < synthdata->cyclesize; l2++) { noteActive[l1] = !allEnvTerminated; allEnvTerminated = true; if (!retrigger[l1] && (retriggerData[l1][l2] > 0.5)) { retrigger[l1] = true; } if (retrigger[l1] && (retriggerData[l1][l2] < 0.5)) { retrigger[l1] = false; } for (l3 = 0; l3 < oscCount; l3++) { if (l3 == 0) { if (!gate[l1] && (gateData[l1][l2] > 0.5)) { gate[l1] = true; noteActive[l1] = true; for (l4 = 0; l4 < oscCount; l4++) { oscActive[l1][l4] = true; if (e[l1][l4] > 0) { noteOnOfs[l1][l4] = -DYNAMICWAVES_ENVELOPE_RESPONSE; de[l1][l4] = e[l1][l4] / (float)DYNAMICWAVES_ENVELOPE_RESPONSE; } else { noteOnOfs[l1][l4] = 0; } } } if (gate[l1] && (gateData[l1][l2] < 0.5)) { gate[l1] = false; for (l4 = 0; l4 < oscCount; l4++) { noteOffOfs[l1][l4] = 0; e_noteOff[l1][l4] = e[l1][l4]; de_release[l1][l4] = (release[0][l4] > 0) ? (release[1][l4] - e_noteOff[l1][l4]) / (tscale * release[0][l4]) : 0; } } } if (retrigger[l1]) { if (e[l1][l3] > 0) { noteOnOfs[l1][l3] = 0; if (e[l1][l3] < attack[2][l3]) { noteOnOfs[l1][l3] = (de_a[0][l3] > 0) ? t[0][l3] + e[l1][l3] / de_a[0][l3] : t[0][l3]; } else if (e[l1][l3] < attack[4][l3]) { noteOnOfs[l1][l3] = (de_a[1][l3] > 0) ? t[1][l3] + (e[l1][l3] - attack[2][l3]) / de_a[1][l3] : t[1][l3]; } else if (e[l1][l3] < attack[6][l3]) { noteOnOfs[l1][l3] = (de_a[2][l3] > 0) ? t[2][l3] + (e[l1][l3] - attack[4][l3]) / de_a[2][l3] : t[2][l3]; } else if (e[l1][l3] <= sustain[l3]) { noteOnOfs[l1][l3] = (de_a[3][l3] > 0) ? t[3][l3] + (e[l1][l3] - attack[6][l3]) / de_a[3][l3] : t[3][l3]; } } else { noteOnOfs[l1][l3] = 0; } } if (gate[l1]) { status = 1; if (noteOnOfs[l1][l3] < 0) status = 0; if (noteOnOfs[l1][l3] >= long(t[0][l3])) status = 2; if (noteOnOfs[l1][l3] >= long(t[1][l3])) status = 3; if (noteOnOfs[l1][l3] >= long(t[2][l3])) status = 4; if (noteOnOfs[l1][l3] >= long(t[3][l3])) status = 5; if (noteOnOfs[l1][l3] >= long(t[4][l3])) status = 6; switch (status) { case 0: e[l1][l3] -= de[l1][l3]; break; case 1: e[l1][l3] = 0; break; case 2: e[l1][l3] += de_a[0][l3]; break; case 3: e[l1][l3] += de_a[1][l3]; break; case 4: e[l1][l3] += de_a[2][l3]; break; case 5: e[l1][l3] += de_a[3][l3]; break; case 6: e[l1][l3] = sustain[l3]; break; default: e[l1][l3] = 0; break; } if (e[l1][l3] < 0) e[l1][l3] = 0; noteOnOfs[l1][l3]++; //fprintf(stderr, "Attack status: %d, e[%d][%d]: %f\n", status, l1, l3, e[l1][l3]); } else { if (oscActive[l1][l3] > 0) { status = 1; if (noteOffOfs[l1][l3] < 0) status = 0; if (noteOffOfs[l1][l3] >= long(t[5][l3])) status = 2; if (noteOffOfs[l1][l3] >= long(t[6][l3])) status = 3; if (noteOffOfs[l1][l3] >= long(t[7][l3])) status = 4; switch (status) { case 0: e[l1][l3] = 0; break; case 1: e[l1][l3] += de_release[l1][l3]; break; case 2: e[l1][l3] += de_d[1][l3]; break; case 3: e[l1][l3] += de_d[2][l3]; break; case 4: e[l1][l3] = 0; break; default: e[l1][l3] = 0; break; } if (e[l1][l3] < 0) e[l1][l3] = 0; } noteOffOfs[l1][l3]++; if (noteOffOfs[l1][l3] >= int(t[7][l3])) { oscActive[l1][l3] = false; e[l1][l3] = 0; // fprintf(stderr, "oscActive[%d][%d] = false, e[%d][%d] = %f\n", l1, l3, l1, l3, e[l1][l3]); } // if (l3 == 0) { // fprintf(stderr, "Release status: %d, e[%d][%d]: %f\n", status, l1, l3, e[l1][l3]); // } } if (oscActive[l1][l3]) { allEnvTerminated = false; } dphi = freq_const[l3] * (synthdata->exp2_table(freq_tune[l3] + freqData[l1][l2] + expFMGain * expFMData[l1][l2]) + gain_linfm * linFMData[l1][l2]); if (dphi > wave_period_2) { dphi = wave_period_2; current_gain = 0; } else { current_gain = gain_const[l3] * e[l1][l3]; } //fprintf(stderr, "current_gain: %f\n", current_gain); phi1 = phi[l1][l3] + phi_const[l3]; //fprintf(stderr, "phi1: %f\n", phi1); if (phi1 < 0) phi1 += wave_period; else if (phi1 >= wave_period) phi1 -= wave_period; switch (waveForm[l3]) { case DYNAMICWAVE_SINE: data[0][l1][l2] += current_gain * synthdata->wave_sine[(int)phi1]; break; case DYNAMICWAVE_SAW: data[0][l1][l2] += current_gain * synthdata->wave_saw[(int)phi1]; break; case DYNAMICWAVE_TRI: data[0][l1][l2] += current_gain * synthdata->wave_tri[(int)phi1]; break; case DYNAMICWAVE_RECT: data[0][l1][l2] += current_gain * synthdata->wave_rect[(int)phi1]; break; case DYNAMICWAVE_SAW2: data[0][l1][l2] += current_gain * synthdata->wave_saw2[(int)phi1]; break; } phi[l1][l3] += dphi; while (phi[l1][l3] < 0) phi[l1][l3] += wave_period; while (phi[l1][l3] >= wave_period) phi[l1][l3] -= wave_period; } } } } ams-2.0.1/src/midiwidget.h0000644000076400007640000000767511315234154012327 00000000000000#ifndef MIDIWIDGET_H #define MIDIWIDGET_H #include #include #include #include #include #include #include #include #include #include #include "midicontroller.h" #include "midiguicomponent.h" /*forward declarations*/ class Module; class MidiControllerModel : public QAbstractItemModel { Q_OBJECT friend class MidiWidget; QList &rMidiControllers; public: MidiControllerModel(QList & , QObject *parent = 0); int columnCount(const QModelIndex &parent = QModelIndex()) const; int rowCount(const QModelIndex &parent = QModelIndex()) const; QVariant data(const QModelIndex &index, int role) const; QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const; QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const; QModelIndex parent(const QModelIndex &child) const; void insert(int , MidiController &mc); }; class ModuleModel : public QAbstractItemModel { Q_OBJECT friend class MidiWidget; QList list; public: ModuleModel(QObject *parent = 0); int rowCount(const QModelIndex &parent = QModelIndex()) const; QVariant data(const QModelIndex &index, int role) const; QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const; QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const; QModelIndex parent(const QModelIndex &child) const; int columnCount(const QModelIndex &parent = QModelIndex()) const; }; class MidiWidget : public QWidget { Q_OBJECT MidiGUIcomponent *mgc; QVBoxLayout vbox; MidiControllerModel midiControllerModel; ModuleModel moduleModel; MidiControllerKey selectedController; QPersistentModelIndex selectedMcAbleIndex; QTreeView* midiControllerView; QTreeView* moduleListView; QVBoxLayout *currentGUIcontrol; QCheckBox *logCheck; QPushButton *newMinButton; QPushButton *newMaxButton; QPushButton *resetMinMaxButton; QPushButton *addGuiButton; QPushButton *bindButton; QPushButton *clearButton; QPushButton *clearAllButton; QPushButton *midiSignButton; QString currentFrameName, currentTabName; MidiControllableBase *midiControllable; QList midiControllers; void selectMcAble(MidiControllableBase &mcAble); void showFloatHelpers(bool show); public: bool noteControllerEnabled, followConfig, followMidi; MidiWidget(QWidget* parent, const char *name=0); ~MidiWidget(); void addMidiController(MidiControllerKey midiController); const MidiController *midiController(MidiControllerKey midiController); void setActiveMidiControllers(); void addMidiControllable(MidiControllerKey mck, MidiControllableBase *midiGuiComponent); void removeMidiControllable(MidiControllerKey midiController, MidiControllableBase *midiGuiComponent, bool *updateActiveMidiControllers = NULL); const MidiControllerKey getSelectedController(); void addModule(Module *m); void removeModule(Module *m); void guiComponentTouched(MidiControllableBase &mcAble); void midiTouched(MidiControllableBase &mcAble); public slots: void clearAllClicked(); void clearClicked(); void bindClicked(); void addToParameterViewClicked(); void noteControllerCheckToggle(int); void configCheckToggle(int); void midiCheckToggle(int); void toggleMidiSign(); void guiControlChanged(const QItemSelection &selected, const QItemSelection &deselected); void midiControlChanged(const QItemSelection &selected, const QItemSelection &deselected); void setLogMode(bool on); void setNewMin(); void setNewMax(); void setInitialMinMax(); void updateMidiChannel(int index); }; #endif ams-2.0.1/src/m_inv.cpp0000664000076400007640000000173511051111565011632 00000000000000#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "synthdata.h" #include "m_inv.h" #include "port.h" M_inv::M_inv(QWidget* parent) : Module(M_type_inv, 1, parent, tr("Inverter")) { QString qs; M_type = M_type_inv; setGeometry(MODULE_NEW_X, MODULE_NEW_Y, MODULE_INV_WIDTH, MODULE_INV_HEIGHT); port_M_in = new Port("In", PORT_IN, 0, this); cv.out_off = 55; port_out = new Port("Out", PORT_OUT, 0, this); } void M_inv::generateCycle() { int l1; unsigned int l2; inData = port_M_in->getinputdata(); for (l1 = 0; l1 < synthdata->poly; l1++) { for (l2 = 0; l2 < synthdata->cyclesize; l2++) { data[0][l1][l2] = -inData[l1][l2]; } } } ams-2.0.1/src/m_sh.h0000664000076400007640000000074511051103065011111 00000000000000#ifndef M_SH_H #define M_SH_H #include "module.h" #define MODULE_SH_WIDTH 115 #define MODULE_SH_HEIGHT 80 class M_sh : public Module { Q_OBJECT float triggerLevel, sample; bool gate; Module *in_M_in, *in_M_trig; Port *port_M_in, *port_M_trig, *port_out, *port_gate; public: float **inData, **trigData; public: M_sh(QWidget* parent=0); void generateCycle(); }; #endif ams-2.0.1/src/m_vco.cpp0000644000076400007640000002224611150721750011626 00000000000000#include #include #include #include #include #include #include "synthdata.h" #include "m_vco.h" #include "port.h" M_vco::M_vco(QWidget* parent) : Module(M_type_vco, 5, parent, tr("VCO")) { QString qs; int l1; setGeometry(MODULE_NEW_X, MODULE_NEW_Y, MODULE_VCO_WIDTH, MODULE_VCO_HEIGHT); wave_period = (float)WAVE_PERIOD; wave_period_2 = wave_period * 0.5f; wave_period_3 = wave_period / 3.0; Pi2Times= (2.0f * M_PI); PKonst = wave_period / Pi2Times; freq = 0; vcoExpFMGain = 0; vcoLinFMGain = 0; pwGain = 0; phi0 = 0; harmonic = 1; subharmonic = 1; octave = 3; edge = 0.95; for (l1 = 0; l1 < MAXPOLY; ++l1) { phi[l1] = 0; } pw0 = 0.5; waveForm = WAVE_SAW; cv.in_index = 1; cv.in_off -= cv.step; port_M_freq = new Port(tr("Freq"), PORT_IN, 1, this); port_M_exp = new Port(tr("Exp. FM"), PORT_IN, 2, this); port_M_lin = new Port(tr("Lin. FM"), PORT_IN, 3, this); port_M_pw = new Port(tr("PW"), PORT_IN, 4, this); cv.out_off = 115; port_sine = new Port(tr("Sine"), PORT_OUT, 0, this); port_tri = new Port(tr("Triangle"), PORT_OUT, 1, this); port_saw = new Port(tr("Saw"), PORT_OUT, 2, this); port_rect = new Port(tr("Rectangle"), PORT_OUT, 3, this); port_aux = new Port(tr("Aux"), PORT_OUT, 4, this); configDialog->initTabWidget(); QVBoxLayout *freqTab = configDialog->addVBoxTab(tr("Frequency")); configDialog->addIntSlider(tr("Octave"), octave, 0, 6, freqTab); configDialog->addSlider(tr("Tune"), freq, 0, 1, false, freqTab); configDialog->addIntSlider(tr("Harmonic"), harmonic, 1, 16, freqTab); configDialog->addIntSlider(tr("Subharmonic"), subharmonic, 1, 16, freqTab); QVBoxLayout *pulseTab = configDialog->addVBoxTab(tr("Pulse Width / Phase")); configDialog->addSlider(tr("PW"), pw0, 0.1, 0.9, false, pulseTab); configDialog->addSlider(tr("PW Gain"), pwGain, 0, 1, false, pulseTab); configDialog->addSlider(tr("Phi0"), phi0, 0, 6.283, false, pulseTab); QVBoxLayout *modulationTab = configDialog->addVBoxTab(tr("Modulation / Aux Waveform")); QStringList waveFormNames; waveFormNames << tr("Saw"); waveFormNames << tr("Saw 1"); waveFormNames << tr("Saw 2"); configDialog->addComboBox(tr("Aux Wave Form"), waveForm, waveFormNames, modulationTab); configDialog->addSlider(tr("Exp. FM Gain"), vcoExpFMGain, 0, 10, false, modulationTab); configDialog->addSlider(tr("Lin. FM Gain"), vcoLinFMGain, 0, 10, false, modulationTab); } void M_vco::generateCycle() { int l1, phint; unsigned int l2; float dphi, phi1, phi_const, pw, d, dd, dsaw, half_wave, third_wave; float freq_const, freq_tune, gain_linfm, pw_low, pw_high; edge = 0.01f + 1.8f * synthdata->edge; freqData = port_M_freq->getinputdata(); expFMData = port_M_exp->getinputdata(); linFMData = port_M_lin->getinputdata(); pwData = port_M_pw->getinputdata(); freq_const = wave_period / (float)synthdata->rate * (float)harmonic / (float)subharmonic; freq_tune = 4.0313842f + octave + freq; gain_linfm = 1000.0f * vcoLinFMGain; phi_const = phi0 * PKonst; pw_low = 0.1f * wave_period; pw_high = 0.9f * wave_period; if (phi0 > 0.0f) { for (l1 = 0; l1 < synthdata->poly; ++l1) { for (l2 = 0; l2 < synthdata->cyclesize; ++l2) { dphi = freq_const * (synthdata->exp2_table(freq_tune + freqData[l1][l2] + vcoExpFMGain * expFMData[l1][l2]) + gain_linfm * linFMData[l1][l2]); if (dphi > wave_period_2) dphi = wave_period_2; phi1 = phi[l1] + phi_const; if (phi1 < 0.0f) phi1 += wave_period; else if (phi1 >= wave_period) phi1 -= wave_period; phint=(int)phi1; data[0][l1][l2] = synthdata->wave_sine[phint]; data[1][l1][l2] = synthdata->wave_tri[phint]; switch (waveForm) { case WAVE_SAW: data[4][l1][l2] = synthdata->wave_saw2[phint]; break; case WAVE_SAW2: half_wave = wave_period_2;// * 0.5f;// / 2.0; data[4][l1][l2] = (phi1 < half_wave) ? synthdata->wave_saw2[(int)(2.0f * phi1)] : 0.0f; break; case WAVE_SAW3: third_wave = wave_period_3;// * 0.3333333333334f;// / 3.0f; data[4][l1][l2] = (phi1 < third_wave) ? synthdata->wave_saw2[(int)(3.0f * phi1)] : 0.0f; break; } pw = (pw0 + pwGain * pwData[l1][l2]) * wave_period; if (pw < pw_low) pw = pw_low; else if (pw > pw_high) pw = pw_high; d = edge * dphi; dd = 1.0f / d; dsaw = 2.0f / (wave_period - 2.0f * d); if (phi1 <= d) { data[3][l1][l2] = phi1 * dd; data[2][l1][l2] = phi1 * dd; } else { if (phi1 <= pw - d) { data[3][l1][l2] = 1.0f; data[2][l1][l2] = 1.0f - (phi1 - d) * dsaw; } else { if (phi1 <= pw + d) { data[3][l1][l2] = (pw - phi1) * dd; data[2][l1][l2] = 1.0f - (phi1 - d) * dsaw; } else { if (phi1 <= wave_period - d) { data[3][l1][l2] = -1.0f; data[2][l1][l2] = 1.0f - (phi1 - d) * dsaw; } else { data[3][l1][l2] = (phi1 - wave_period) * dd; data[2][l1][l2] = data[3][l1][l2]; //(phi1 - wave_period) * dd; } } } } phi[l1] += dphi; while (phi[l1] < 0.0f) phi[l1] += wave_period; while (phi[l1] >= wave_period) phi[l1] -= wave_period; } } } else { for (l1 = 0; l1 < synthdata->poly; ++l1) { for (l2 = 0; l2 < synthdata->cyclesize; ++l2) { dphi = freq_const * (synthdata->exp2_table(freq_tune + freqData[l1][l2] + vcoExpFMGain * expFMData[l1][l2]) + gain_linfm * linFMData[l1][l2]); if (dphi > wave_period_2) dphi = wave_period_2; phint=(int)phi[l1]; data[0][l1][l2] = synthdata->wave_sine[phint]; data[1][l1][l2] = synthdata->wave_tri[phint]; switch (waveForm) { case WAVE_SAW: data[4][l1][l2] = synthdata->wave_saw2[phint]; break; case WAVE_SAW2: half_wave = wave_period_2;// * 0.5f; // / 2.0; data[4][l1][l2] = (phi[l1] < half_wave) ? synthdata->wave_saw2[(int)(2.0f * phi[l1])] : 0.0f; break; case WAVE_SAW3: third_wave = wave_period_3;// * 0.3333333333334f;// / 3.0f; data[4][l1][l2] = (phi[l1] < third_wave) ? synthdata->wave_saw2[(int)(3.0f * phi[l1])] : 0.0f; break; } pw = (pw0 + pwGain * pwData[l1][l2]) * wave_period; if (pw < pw_low) pw = pw_low; else if (pw > pw_high) pw = pw_high; d = edge * dphi; dd = 1.0f / d; dsaw = 2.0f / (wave_period - 2.0f * d); if (phi[l1] <= d) { data[3][l1][l2] = phi[l1] * dd; data[2][l1][l2] = data[3][l1][l2];//phi[l1] * dd; } else { if (phi[l1] <= pw - d) { data[3][l1][l2] = 1.0f; data[2][l1][l2] = 1.0f - (phi[l1] - d) * dsaw; } else { if (phi[l1] <= pw + d) { data[3][l1][l2] = (pw - phi[l1]) * dd; data[2][l1][l2] = 1.0f - (phi[l1] - d) * dsaw; } else { if (phi[l1] <= wave_period - d) { data[3][l1][l2] = -1.0; data[2][l1][l2] = 1.0f - (phi[l1] - d) * dsaw; } else { data[3][l1][l2] = (phi[l1] - wave_period) * dd; data[2][l1][l2] = data[3][l1][l2];//(phi[l1] - wave_period) * dd; } } } } phi[l1] += dphi; while (phi[l1] < 0.0f) phi[l1] += wave_period; while (phi[l1] >= wave_period) phi[l1] -= wave_period; } } } } ams-2.0.1/src/m_midiout.cpp0000664000076400007640000003766411213417311012520 00000000000000#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "synthdata.h" #include "m_midiout.h" #include "module.h" #include "port.h" M_midiout::M_midiout(QWidget* parent) : Module(M_type_midiout, 0, parent, tr("Midi Out")) { QString qs; int l1, l2; setGeometry(MODULE_NEW_X, MODULE_NEW_Y, MODULE_MIDIOUT_WIDTH, MODULE_MIDIOUT_HEIGHT); mixer_gain[0] = 1.0; mixer_gain[1] = 1.0; midiMode = 0; offset[0] = 0; offset[1] = 0; controller[0] = 24; controller[1] = 25; triggerLevel = 0.5; port_in[0] = new Port(tr("In 0"), PORT_IN, 0, this); port_in[1] = new Port(tr("In 1"), PORT_IN, 1, this); port_M_trigger = new Port(tr("Trigger"), PORT_IN, 2, this); configDialog->initTabWidget(); QVBoxLayout *gainTab = configDialog->addVBoxTab( tr("Gain / Offset / Trigger Level")); QVBoxLayout *midiTab = configDialog->addVBoxTab(tr("MIDI Settings")); QStringList channelNames; for (l1 = 0; l1 < 16; l1++) { qs.sprintf("%4d", l1); channelNames << qs; } channel = 0; configDialog->addComboBox(tr("MIDI Channel"), channel, channelNames, midiTab); configDialog->addSlider(tr("Gain 0"), mixer_gain[0], 0, 10, false, gainTab); configDialog->addSlider(tr("Gain 1"), mixer_gain[1], 0, 10, false, gainTab); configDialog->addIntSlider(tr("Offset 0"), offset[0], 0, 127, gainTab); configDialog->addIntSlider(tr("Offset 1"), offset[1], 0, 127, gainTab); QStringList midiNames; midiNames << tr("In 0/1: Controller") << tr("In 0: Controller In 1: Pitchbend") << tr("In 0/1: Note") << tr("In 0: Note, In 1: Velocity"); configDialog->addComboBox(tr("MIDI Event Type"), midiMode, midiNames, midiTab); configDialog->addIntSlider(tr("Controller 0"), controller[0], 0, 127, midiTab); configDialog->addIntSlider(tr("Controller 1"), controller[1], 0, 127, midiTab); configDialog->addSlider(tr("Trigger Level"), triggerLevel, 0, 10, false, gainTab); for (l1 = 0; l1 < synthdata->poly; l1++) { trigger[l1] = false; for (l2 = 0; l2 < 2; l2++) { triggeredNote[l2][l1] = 0; lastmididata[l2][l1] = 0; } } } M_midiout::~M_midiout() { } void M_midiout::generateCycle() { if (!synthdata->seq_handle) return; int l1, l3, mididata, velocitydata; unsigned int l2; snd_seq_event_t ev; triggerData = port_M_trigger->getinputdata(); for (l1 = 0; l1 < 2; l1++) inData [l1] = port_in [l1]->getinputdata(); switch (midiMode) { case 0: if (triggerData == synthdata->zeroModuleData) { for (l1 = 0; l1 < 2; l1++) { if (mixer_gain[l1] > 0.01) { for (l3 = 0; l3 < synthdata->poly; l3++) { for (l2 = 0; l2 < synthdata->cyclesize; l2++) { mididata = offset[l1] + (int)(1000.0 + mixer_gain[l1] * inData[l1][l3][l2] * 12.8) - 1000; if (mididata < 0) mididata = 0; else if (mididata > 127) mididata = 127; if (mididata != lastmididata[l1][l3]) { snd_seq_ev_clear(&ev); snd_seq_ev_set_subs(&ev); snd_seq_ev_set_direct(&ev); ev.type = SND_SEQ_EVENT_CONTROLLER; ev.data.control.channel = channel; ev.data.control.param = controller[l1]; ev.data.control.value = mididata; triggeredNote[l1][l3] = 0; lastmididata[l1][l3] = mididata; snd_seq_ev_set_source(&ev, synthdata->midi_out_port[l1]); snd_seq_event_output_direct(synthdata->seq_handle, &ev); } } } } } } else { for (l3 = 0; l3 < synthdata->poly; l3++) { for (l2 = 0; l2 < synthdata->cyclesize; l2++) { if (!trigger[l3] && (triggerData[l3][l2] > triggerLevel)) { trigger[l3] = true; for (l1 = 0; l1 < 2; l1++) { if (mixer_gain[l1] > 0.01) { snd_seq_ev_clear(&ev); snd_seq_ev_set_subs(&ev); snd_seq_ev_set_direct(&ev); ev.type = SND_SEQ_EVENT_CONTROLLER; mididata = offset[l1] + (int)(1000.0 + mixer_gain[l1] * inData[l1][l3][l2] * 12.8) - 1000; if (mididata < 0) mididata = 0; else if (mididata > 127) mididata = 127; ev.data.control.channel = channel; ev.data.control.param = controller[l1]; ev.data.control.value = mididata; triggeredNote[l1][l3] = 0; snd_seq_ev_set_source(&ev, synthdata->midi_out_port[l1]); snd_seq_event_output_direct(synthdata->seq_handle, &ev); } } } else { if (trigger[l3] && (triggerData[l3][l2] < triggerLevel)) { trigger[l3] = false; } } } } } break; case 1: if (triggerData == synthdata->zeroModuleData ) { for (l1 = 0; l1 < 2; l1++) { if (mixer_gain[l1] > 0.01) { for (l3 = 0; l3 < synthdata->poly; l3++) { for (l2 = 0; l2 < synthdata->cyclesize; l2++) { if (l1) { mididata = (int)(128.0 * offset[l1] + (int)(mixer_gain[l1] * inData[l1][l3][l2] * 16384.0) - 8192.0); if (mididata < -8191) mididata = -8191; else if (mididata > 8191) mididata = 8191; } else { mididata = offset[l1] + (int)(1000.0 + mixer_gain[l1] * inData[l1][l3][l2] * 12.8) - 1000; if (mididata < 0) mididata = 0; else if (mididata > 127) mididata = 127; } if (mididata != lastmididata[l1][l3]) { snd_seq_ev_clear(&ev); snd_seq_ev_set_subs(&ev); snd_seq_ev_set_direct(&ev); if (l1) { ev.type = SND_SEQ_EVENT_PITCHBEND; ev.data.control.param = 0; } else { ev.type = SND_SEQ_EVENT_CONTROLLER; ev.data.control.param = controller[l1]; } ev.data.control.channel = channel; ev.data.control.value = mididata; triggeredNote[l1][l3] = 0; lastmididata[l1][l3] = mididata; snd_seq_ev_set_source(&ev, synthdata->midi_out_port[l1]); snd_seq_event_output_direct(synthdata->seq_handle, &ev); } } } } } } else { for (l3 = 0; l3 < synthdata->poly; l3++) { for (l2 = 0; l2 < synthdata->cyclesize; l2++) { if (!trigger[l3] && (triggerData[l3][l2] > triggerLevel)) { trigger[l3] = true; for (l1 = 0; l1 < 2; l1++) { if (mixer_gain[l1] > 0.01) { snd_seq_ev_clear(&ev); snd_seq_ev_set_subs(&ev); snd_seq_ev_set_direct(&ev); if (l1) { ev.type = SND_SEQ_EVENT_PITCHBEND; ev.data.control.param = 0; mididata = (int)(128.0 * offset[l1] + (int)(mixer_gain[l1] * inData[l1][l3][l2] * 16384.0) - 8192.0); if (mididata < -8191) mididata = -8191; else if (mididata > 8191) mididata = 8191; } else { ev.type = SND_SEQ_EVENT_CONTROLLER; ev.data.control.param = controller[l1]; mididata = offset[l1] + (int)(1000.0 + mixer_gain[l1] * inData[l1][l3][l2] * 12.8) - 1000; if (mididata < 0) mididata = 0; else if (mididata > 127) mididata = 127; } ev.data.control.channel = channel; ev.data.control.value = mididata; triggeredNote[l1][l3] = 0; snd_seq_ev_set_source(&ev, synthdata->midi_out_port[l1]); snd_seq_event_output_direct(synthdata->seq_handle, &ev); } } } else { if (trigger[l3] && (triggerData[l3][l2] < triggerLevel)) { trigger[l3] = false; } } } } } break; case 2: if (triggerData != synthdata->zeroModuleData ) { for (l3 = 0; l3 < synthdata->poly; l3++) { for (l2 = 0; l2 < synthdata->cyclesize; l2++) { if (!trigger[l3] && (triggerData[l3][l2] > triggerLevel)) { trigger[l3] = true; for (l1 = 0; l1 < 2; l1++) { if (mixer_gain[l1] > 0.01) { snd_seq_ev_clear(&ev); snd_seq_ev_set_subs(&ev); snd_seq_ev_set_direct(&ev); ev.type = SND_SEQ_EVENT_NOTEON; ev.data.control.channel = channel; mididata = offset[l1] + (int)(1000.0 + mixer_gain[l1] * inData[l1][l3][l2] * 12.0) - 1000; if (mididata < 0) mididata = 0; else if (mididata > 127) mididata = 127; ev.data.note.note = mididata; ev.data.note.velocity = 127; triggeredNote[l1][l3] = mididata; snd_seq_ev_set_source(&ev, synthdata->midi_out_port[l1]); snd_seq_event_output_direct(synthdata->seq_handle, &ev); } } } else { if (trigger[l3] && (triggerData[l3][l2] < triggerLevel)) { trigger[l3] = false; for (l1 = 0; l1 < 2; l1++) { if (mixer_gain[l1] > 0.01) { snd_seq_ev_clear(&ev); snd_seq_ev_set_subs(&ev); snd_seq_ev_set_direct(&ev); ev.type = SND_SEQ_EVENT_NOTEOFF; ev.data.control.channel = channel; ev.data.note.velocity = 0; ev.data.note.note = triggeredNote[l1][l3]; snd_seq_ev_set_source(&ev, synthdata->midi_out_port[l1]); snd_seq_event_output_direct(synthdata->seq_handle, &ev); } } } } } } } else { for (l1 = 0; l1 < 2; l1++) { if (mixer_gain[l1] > 0.01) { for (l3 = 0; l3 < synthdata->poly; l3++) { for (l2 = 0; l2 < synthdata->cyclesize; l2++) { mididata = offset[l1] + (int)(1000.0 + mixer_gain[l1] * inData[l1][l3][l2] * 12.0) - 1000; if (mididata < 0) mididata = 0; else if (mididata > 127) mididata = 127; if (mididata != lastmididata[l1][l3]) { snd_seq_ev_clear(&ev); snd_seq_ev_set_subs(&ev); snd_seq_ev_set_direct(&ev); ev.type = SND_SEQ_EVENT_NOTEOFF; ev.data.control.channel = channel; ev.data.note.note = triggeredNote[l1][l3]; ev.data.note.velocity = 0; snd_seq_ev_set_source(&ev, synthdata->midi_out_port[l1]); snd_seq_event_output_direct(synthdata->seq_handle, &ev); snd_seq_ev_clear(&ev); snd_seq_ev_set_subs(&ev); snd_seq_ev_set_direct(&ev); ev.type = SND_SEQ_EVENT_NOTEON; ev.data.control.channel = channel; ev.data.note.note = mididata; ev.data.note.velocity = 127; triggeredNote[l1][l3] = mididata; lastmididata[l1][l3] = mididata; snd_seq_ev_set_source(&ev, synthdata->midi_out_port[l1]); snd_seq_event_output_direct(synthdata->seq_handle, &ev); } } } } } } break; case 3: if (triggerData != synthdata->zeroModuleData ) { for (l3 = 0; l3 < synthdata->poly; l3++) { for (l2 = 0; l2 < synthdata->cyclesize; l2++) { if (!trigger[l3] && (triggerData[l3][l2] > triggerLevel)) { trigger[l3] = true; if (mixer_gain[0] > 0.01) { snd_seq_ev_clear(&ev); snd_seq_ev_set_subs(&ev); snd_seq_ev_set_direct(&ev); ev.type = SND_SEQ_EVENT_NOTEON; ev.data.control.channel = channel; mididata = offset[0] + (int)(1000.0 + mixer_gain[0] * inData[0][l3][l2] * 12.0) - 1000; velocitydata = offset[1] + (int)(1000.0 + mixer_gain[1] * inData[1][l3][l2] * 12.8) - 1000; if (mididata < 0) mididata = 0; else if (mididata > 127) mididata = 127; if (velocitydata < 0) velocitydata = 0; else if (velocitydata > 127) velocitydata = 127; ev.data.note.note = mididata; ev.data.note.velocity = velocitydata; triggeredNote[0][l3] = mididata; snd_seq_ev_set_source(&ev, synthdata->midi_out_port[0]); snd_seq_event_output_direct(synthdata->seq_handle, &ev); } } else { if (trigger[l3] && (triggerData[l3][l2] < triggerLevel)) { trigger[l3] = false; if (mixer_gain[0] > 0.01) { snd_seq_ev_clear(&ev); snd_seq_ev_set_subs(&ev); snd_seq_ev_set_direct(&ev); ev.type = SND_SEQ_EVENT_NOTEOFF; ev.data.control.channel = channel; ev.data.note.velocity = 0; ev.data.note.note = triggeredNote[0][l3]; snd_seq_ev_set_source(&ev, synthdata->midi_out_port[0]); snd_seq_event_output_direct(synthdata->seq_handle, &ev); } } } } } } else { if (mixer_gain[0] > 0.01) { for (l3 = 0; l3 < synthdata->poly; l3++) { for (l2 = 0; l2 < synthdata->cyclesize; l2++) { mididata = offset[0] + (int)(1000.0 + mixer_gain[0] * inData[0][l3][l2] * 12.0) - 1000; if (mididata < 0) mididata = 0; else if (mididata > 127) mididata = 127; if (mididata != lastmididata[0][l3]) { snd_seq_ev_clear(&ev); snd_seq_ev_set_subs(&ev); snd_seq_ev_set_direct(&ev); ev.type = SND_SEQ_EVENT_NOTEOFF; ev.data.control.channel = channel; ev.data.note.note = triggeredNote[0][l3]; ev.data.note.velocity = 0; snd_seq_ev_set_source(&ev, synthdata->midi_out_port[0]); snd_seq_event_output_direct(synthdata->seq_handle, &ev); snd_seq_ev_clear(&ev); snd_seq_ev_set_subs(&ev); snd_seq_ev_set_direct(&ev); ev.type = SND_SEQ_EVENT_NOTEON; ev.data.control.channel = channel; velocitydata = offset[1] + (int)(1000.0 + mixer_gain[1] * inData[1][l3][l2] * 12.8) - 1000; if (velocitydata < 0) velocitydata = 0; else if (velocitydata > 127) velocitydata = 127; ev.data.note.note = mididata; ev.data.note.velocity = velocitydata; triggeredNote[0][l3] = mididata; lastmididata[0][l3] = mididata; lastmididata[1][l3] = velocitydata; snd_seq_ev_set_source(&ev, synthdata->midi_out_port[0]); snd_seq_event_output_direct(synthdata->seq_handle, &ev); } } } } } break; } } ams-2.0.1/src/scopescreen.h0000664000076400007640000000317711051103233012473 00000000000000#ifndef KSCOPESCREEN_H #define KSCOPESCREEN_H #include #include #include #include #include #include #include #include #include #include #include #include #include "mced.h" #include "synthdata.h" #define MINIMUM_WIDTH 100 #define MINIMUM_HEIGHT 50 #define TRIGGER_RANGE 16384 #define SCOPE_BUFSIZE 128000 enum modeType { MODE_NORMAL, MODE_SUM, MODE_DIFF }; enum edgeType { EDGE_RISING, EDGE_FALLING }; enum triggerModeType { TRIGGERMODE_CONTINUOUS, TRIGGERMODE_TRIGGERED, TRIGGERMODE_SINGLE, TRIGGERMODE_MIDI }; class ScopeScreen : public QGLWidget, public MCedThing { Q_OBJECT int ch1, ch2; bool triggered; float &timeScale; int &mode; int &edge; int &triggerMode; float &triggerThrs; float &zoom; float *scopebuf; int scopebufValidFrames; float xscale, yscale; int x1, x2, y1ch1, y1ch2, y2ch1, y2ch2; float s1, s2; public: int timeScaleFrames() { return (int )((float )synthdata->rate * timeScale * 0.001); } float *scopedata; int readofs, writeofs; protected: virtual void paintEvent(QPaintEvent *); void calcY(int offset); public: ScopeScreen(float &timeScale, int &mode, int &edge, int &triggerMode, float &, float &); ~ScopeScreen(); void mcAbleChanged(); virtual QSize sizeHint() const; virtual QSizePolicy sizePolicy() const; int setCh1(int p_ch1); int setCh2(int p_ch2); public slots: void refreshScope(); void singleShot(); }; #endif ams-2.0.1/src/multi_envelope.h0000664000076400007640000000167311051103227013213 00000000000000#ifndef MULTI_ENVELOPE_H #define MULTI_ENVELOPE_H #include #include #include #include #include #include #include #include #include #include #include #include "synthdata.h" #include "mced.h" #define MULTI_ENVELOPE_MINIMUM_WIDTH 100 #define MULTI_ENVELOPE_MINIMUM_HEIGHT 50 #define SUSTAIN_LEN 0.5 class MultiEnvelope : public QWidget, public MCedThing { Q_OBJECT int envCount; float *timeScaleRef, *attackRef, *sustainRef, *releaseRef; QColor colorTable[8]; protected: virtual void paintEvent(QPaintEvent *); public: MultiEnvelope(int p_envCount, float *timeScaleRef, float *attackRef, float *sustainRef, float *releaseRef); virtual QSize sizeHint() const; virtual QSizePolicy sizePolicy() const; void mcAbleChanged(); }; #endif ams-2.0.1/src/envelope.h0000664000076400007640000000160711051103034011772 00000000000000#ifndef ENVELOPE_H #define ENVELOPE_H #include #include #include #include #include "synthdata.h" #include "mced.h" #define ENVELOPE_MINIMUM_WIDTH 100 #define ENVELOPE_MINIMUM_HEIGHT 50 #define SUSTAIN_LEN 0.5 class Envelope : public QWidget, public MCed { class MidiControllableFloat &delayRef, &attackRef, &holdRef, &decayRef, &sustainRef, &releaseRef; protected: virtual void paintEvent(QPaintEvent *); public: Envelope(MidiControllableFloat &p_delayRef, MidiControllableFloat &p_attackRef, MidiControllableFloat &p_holdRef, MidiControllableFloat &p_decayRef, MidiControllableFloat &p_sustainRef, MidiControllableFloat &p_releaseRef); ~Envelope(); virtual QSize sizeHint() const; virtual QSizePolicy sizePolicy() const; int setDelay(float p_delay); void mcAbleChanged(); }; #endif ams-2.0.1/src/ringbuffer.h0000664000076400007640000000156211051103232012306 00000000000000#ifndef RINGBUFFER_H #define RINGBUFFER_H #if QT_VERSION >= 0x040400 #include #endif template class RingBuffer { public: static const int size = 1 << potSize; RingBuffer() : _writeAt(0) , _readAt(0) , _count(0) {} int writeAt() { return _writeAt; } void put(const T &e) { d[_writeAt] = e; _writeAt = (_writeAt + 1) & (size - 1); #if QT_VERSION >= 0x040400 _count.ref(); #else q_atomic_increment(&_count); #endif } T &get() { #if QT_VERSION >= 0x040400 _count.deref(); #else q_atomic_decrement(&_count); #endif T &r = d[_readAt]; _readAt = (_readAt + 1) & (size - 1); return r; } int count() { return _count; } protected: T d[size]; int _writeAt; int _readAt; #if QT_VERSION >= 0x040400 QAtomicInt _count; #else int _count; #endif }; #endif ams-2.0.1/src/midicheckbox.h0000664000076400007640000000100011051103100012563 00000000000000#ifndef MIDICHECKBOX_H #define MIDICHECKBOX_H #include #include #include "synthdata.h" #include "midiguicomponent.h" #include "midicontrollable.h" /** *@author Matthias Nagorni */ class MidiCheckBox : public MidiGUIcomponent { Q_OBJECT private slots: void toggled(bool); private: QLabel *valueLabel; public: QCheckBox *checkBox; public: MidiCheckBox(MidiControllable &mcAble); virtual MidiGUIcomponent *createTwin(); void mcAbleChanged(); }; #endif ams-2.0.1/src/midiguicomponent.h0000644000076400007640000000164211152565023013540 00000000000000#ifndef MIDIGUICOMPONENT_H #define MIDIGUICOMPONENT_H #include #include #include #include "midicontroller.h" #include "mced.h" /** *@author Matthias Nagorni */ enum GUIcomponentType{ GUIcomponentType_slider, GUIcomponentType_intslider, GUIcomponentType_checkbox, GUIcomponentType_combobox, GUIcomponentType_pushbutton, GUIcomponentType_floatintslider }; class MidiGUIcomponent : public QWidget, public MCed { Q_OBJECT public: class MidiControllableBase &mcAble; GUIcomponentType componentType; bool controllerOK; QLabel nameLabel; public: MidiGUIcomponent(MidiControllableBase &mcAble); ~MidiGUIcomponent(); virtual MidiGUIcomponent *createTwin() = 0; void invalidateController(); virtual void updateMin() {} virtual void updateMax() {} signals: void sigResetController(); public slots: void resetControllerOK(); }; #endif ams-2.0.1/src/m_mphlfo.cpp0000664000076400007640000001554711051111565012331 00000000000000#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "synthdata.h" #include "m_mphlfo.h" #include "port.h" M_mphlfo::M_mphlfo(QWidget* parent) : Module(M_type_mphlfo, 16, parent, tr("Multiphase LFO")) { QString qs; int l1; setGeometry(MODULE_NEW_X, MODULE_NEW_Y, MODULE_MPHLFO_WIDTH, MODULE_MPHLFO_HEIGHT); for (l1 = 0; l1 < 16; l1++) { if (l1 < 8) { qs.sprintf("Saw Out %4d", l1 * 45); } else { qs.sprintf("Tri Out %4d", (l1-8) * 45); } port_out[l1] = new Port(qs, PORT_OUT, l1, this); } freq = 0.1; gain_saw = 1.0; gain_tri = 1.0; tri = 0; saw = 0; state = 0; mode = 0; d_tri = 4.0 * freq / (double)synthdata->rate; d_saw = 0.5 * d_tri; configDialog->addSlider(tr("Frequency (Hz)"), freq, 0.01, 20, true); configDialog->addSlider(tr("Gain Saw"), gain_saw, 0.01, 5, true); configDialog->addSlider(tr("Gain Triangle"), gain_tri, 0.01, 5, true); QStringList modeNames; modeNames << tr("Saw Up") << tr("Saw Down") << tr("Saw Up (0..135) / Saw Down (180..315)"); configDialog->addComboBox(tr("Saw Mode"), mode, modeNames); } void M_mphlfo::generateCycle() { int l1; unsigned int l2; double tri45, tri90, tri135, saw45, saw90, saw135, saw180, saw225, saw270, saw315; double sign_saw1, sign_saw2; d_saw = 0; d_tri = ((state > 1) && (state < 6)) ? -4.0 * freq / (double)synthdata->rate : 4.0 * freq / (double)synthdata->rate; d_saw = 0.5 * fabs(d_tri); switch(mode) { case 1: sign_saw1 = -1.0; sign_saw2 = -1.0; break; case 2: sign_saw1 = 1.0; sign_saw2 = -1.0; break; case 0: // fall through default: sign_saw1 = 1.0; sign_saw2 = 1.0; break; } for (l2 = 0; l2 < synthdata->cyclesize; l2++) { tri += d_tri; saw += d_saw; switch(state) { case 1: if (tri > 1.0) { state++; tri = 1.0; d_tri = -4.0 * freq / (double)synthdata->rate; d_saw = -0.5 * d_tri; } tri45 = 1.5 - tri; tri90 = 1.0 - tri; tri135 = 0.5 - tri; saw45 = 0.25 + saw; saw90 = 0.5 + saw; saw135 = -1.25 + saw; saw180 = -1.0 + saw; saw225 = -0.75 + saw; saw270 = -0.5 + saw; saw315 = -0.25 + saw; break; case 2: if (tri < 0.5) { state++; } tri45 = tri - 0.5; tri90 = tri - 1.0; tri135 = -1.5 + tri; saw45 = 0.25 + saw; saw90 = -1.5 + saw; saw135 = -1.25 + saw; saw180 = -1.0 + saw; saw225 = -0.75 + saw; saw270 = -0.5 + saw; saw315 = -0.25 + saw; break; case 3: tri45 = tri - 0.5; tri90 = tri - 1.0; tri135 = -0.5 - tri; saw45 = -1.75 + saw; saw90 = -1.5 + saw; saw135 = -1.25 + saw; saw180 = -1.0 + saw; saw225 = -0.75 + saw; saw270 = -0.5 + saw; saw315 = -0.25 + saw; if (tri < 0.0) { state++; saw = -1.0; } break; case 4: if (tri < -0.5) { state++; } tri45 = tri - 0.5; tri90 = -1.0 - tri; tri135 = -0.5 - tri; saw45 = 0.25 + saw; saw90 = 0.5 + saw; saw135 = 0.75 + saw; saw180 = 1.0 + saw; saw225 = 1.25 + saw; saw270 = 1.5 + saw; saw315 = 1.75 + saw; break; case 5: if (tri < -1.0) { tri = -1.0; d_tri = 4.0 * freq / (double)synthdata->rate; d_saw = 0.5 * d_tri; state++; } tri45 = - 1.5 - tri; tri90 = -1.0 - tri; tri135 = -0.5 - tri; saw45 = 0.25 + saw; saw90 = 0.5 + saw; saw135 = 0.75 + saw; saw180 = 1.0 + saw; saw225 = 1.25 + saw; saw270 = 1.5 + saw; saw315 = -0.25 + saw; break; case 6: if (tri > -0.5) { state++; } tri45 = 0.5 + tri; tri90 = 1.0 + tri; tri135 = 1.5 + tri; saw45 = 0.25 + saw; saw90 = 0.5 + saw; saw135 = 0.75 + saw; saw180 = 1.0 + saw; saw225 = 1.25 + saw; saw270 = -0.5 + saw; saw315 = -0.25 + saw; break; case 7: if (tri > 0.0) { state = 0; } tri45 = 0.5 + tri; tri90 = 1.0 + tri; tri135 = 0.5 - tri; saw45 = 0.25 + saw; saw90 = 0.5 + saw; saw135 = 0.75 + saw; saw180 = 1.0 + saw; saw225 = -0.75 + saw; saw270 = -0.5 + saw; saw315 = -0.25 + saw; break; case 0: // fall through default: if (tri > 0.5) { state++; } tri45 = 0.5 + tri; tri90 = 1.0 - tri; tri135 = 0.5 - tri; saw45 = 0.25 + saw; saw90 = 0.5 + saw; saw135 = 0.75 + saw; saw180 = -1.0 + saw; saw225 = -0.75 + saw; saw270 = -0.5 + saw; saw315 = -0.25 + saw; break; } o[0] = gain_saw * (1.0 + sign_saw1 * saw45); o[1] = gain_saw * (1.0 + sign_saw1 * saw); o[2] = gain_saw * (1.0 + sign_saw1 * saw315); o[3] = gain_saw * (1.0 + sign_saw1 * saw270); o[4] = gain_saw * (1.0 + sign_saw2 * saw225); o[5] = gain_saw * (1.0 + sign_saw2 * saw180); o[6] = gain_saw * (1.0 + sign_saw2 * saw135); o[7] = gain_saw * (1.0 + sign_saw2 * saw90); o[8] = gain_tri * (1.0 + tri135); o[9] = gain_tri * (1.0 + tri90); o[10] = gain_tri * (1.0 + tri45); o[11] = gain_tri * (1.0 + tri); o[12] = gain_tri * (1.0 - tri135); o[13] = gain_tri * (1.0 - tri90); o[14] = gain_tri * (1.0 - tri45); o[15] = gain_tri * (1.0 - tri); for (l1 = 0; l1 < synthdata->poly; l1++) { data[0][l1][l2] = o[0]; data[1][l1][l2] = o[1]; data[2][l1][l2] = o[2]; data[3][l1][l2] = o[3]; data[4][l1][l2] = o[4]; data[5][l1][l2] = o[5]; data[6][l1][l2] = o[6]; data[7][l1][l2] = o[7]; data[8][l1][l2] = o[8]; data[9][l1][l2] = o[9]; data[10][l1][l2] = o[10]; data[11][l1][l2] = o[11]; data[12][l1][l2] = o[12]; data[13][l1][l2] = o[13]; data[14][l1][l2] = o[14]; data[15][l1][l2] = o[15]; } } } ams-2.0.1/src/m_cvs.h0000664000076400007640000000066611051103046011273 00000000000000#ifndef M_CVS_H #define M_CVS_H #include "module.h" #define MODULE_CVS_WIDTH 90 #define MODULE_CVS_HEIGHT 120 #define MODULE_CVS_CV_COUNT 4 class M_cvs : public Module { Q_OBJECT Port *port_cv_out[MODULE_CVS_CV_COUNT]; float cv[MODULE_CVS_CV_COUNT], cv_fine[MODULE_CVS_CV_COUNT]; public: M_cvs(QWidget* parent=0); void generateCycle(); }; #endif ams-2.0.1/src/m_vquant.h0000664000076400007640000000063311051103076012013 00000000000000#ifndef M_VQUANT_H #define M_VQUANT_H #include "module.h" #define MODULE_VQUANT_WIDTH 100 #define MODULE_VQUANT_HEIGHT 80 class M_vquant : public Module { Q_OBJECT Port *port_M_in, *port_quant; public: float **inData; float gain; public: M_vquant(QWidget* parent=0); void generateCycle(); }; #endif ams-2.0.1/src/midislider.cpp0000664000076400007640000000063611051103426012643 00000000000000#include "midislider.h" #include "midicontrollable.h" MidiSlider::MidiSlider(MidiControllableFloat &mcAble, Qt::Orientation orientation) : MidiSliderBase(mcAble, orientation) { componentType = GUIcomponentType_slider; } MidiGUIcomponent *MidiSlider::createTwin() { return new MidiSlider(dynamic_cast(mcAble)); } void MidiSlider::minMaxChanged() { updateMin(); updateMax(); } ams-2.0.1/src/m_vcenv.h0000664000076400007640000000137511051103070011614 00000000000000#ifndef M_VCENV_H #define M_VCENV_H #include "module.h" #define MODULE_VCENV_WIDTH 110 #define MODULE_VCENV_HEIGHT 175 class M_vcenv : public Module { Q_OBJECT Port *port_M_gate, *port_M_retrigger, *port_M_attack, *port_M_decay, *port_M_sustain, *port_M_release, *port_out; public: float **gateData, **retriggerData, **attackData, **decayData, **sustainData, **releaseData; float a0, d0, s0, r0, aGain, dGain, sGain, rGain; float e[MAXPOLY], old_e[MAXPOLY]; int timeScale, state[MAXPOLY], decayReleaseMode; bool noteActive[MAXPOLY], gate[MAXPOLY], retrigger[MAXPOLY]; public: M_vcenv(QWidget* parent=0); void generateCycle(); }; #endif ams-2.0.1/src/midiwidget.cpp0000644000076400007640000006157511315234131012654 00000000000000#include #include #include #include #include #include "guiwidget.h" #include "intmidislider.h" #include "midicheckbox.h" #include "midicombobox.h" #include "midicontroller.h" #include "midiguicomponent.h" #include "midipushbutton.h" #include "midislider.h" #include "midiwidget.h" #include "module.h" #include "synthdata.h" MidiControllerModel::MidiControllerModel(QList &rMidiControllers, QObject *parent) : QAbstractItemModel(parent) , rMidiControllers(rMidiControllers) { } int MidiControllerModel::rowCount(const QModelIndex &parent) const { if (!parent.isValid()) return rMidiControllers.count(); const MidiController *c = (const MidiController *)parent.internalPointer(); if (c == NULL) return rMidiControllers.at(parent.row()).context->mcAbles.count(); return 0; } QVariant MidiControllerModel::data(const QModelIndex &index, int role) const { if (index.isValid() && role == Qt::DisplayRole) { const MidiController *c = (const MidiController *)index.internalPointer(); MidiControllableBase *mcAble = NULL; if ((c != NULL) && (c->context != NULL)) { //FIXME: crash if context not valid if (c->context->mcAbles.count() > 0) { if (index.row() < c->context->mcAbles.count()) { mcAble = c->context->mcAbles.at(index.row()); } } } if (mcAble != NULL) { if (index.column() > 0) return mcAble->module.configDialog->windowTitle(); else return mcAble->name; } else if ((c == NULL) && (index.column() == 0)) { QString qs; c = &rMidiControllers.at(index.row()); return qs = tr("Type: %1 Channel: %2 Param: %3") .arg(c->type()).arg(c->ch() + 1).arg(c->param()); } } return QVariant(); } QVariant MidiControllerModel::headerData(int section, Qt::Orientation orientation, int role) const { if (orientation == Qt::Horizontal && role == Qt::DisplayRole) return (section == 1) ? tr("Module") : tr("MIDI Controller / Parameter"); return QVariant(); } QModelIndex MidiControllerModel::index(int row, int column, const QModelIndex &parent) const { if (parent.isValid()) return createIndex(row, column, (void *)&rMidiControllers.at(parent.row())); else return createIndex(row, column); } QModelIndex MidiControllerModel::parent(const QModelIndex &child) const { if (child.isValid() && child.internalPointer()) { const MidiController *mc = (const MidiController *)child.internalPointer(); typeof(rMidiControllers.constEnd()) c = qBinaryFind(rMidiControllers.constBegin(), rMidiControllers.constEnd(), *mc); int row = c - rMidiControllers.begin(); return index(row, 0); } return QModelIndex(); } int MidiControllerModel::columnCount(const QModelIndex &/*parent*/) const { return 2; } void MidiControllerModel::insert(int row, MidiController &mc) { beginInsertRows(QModelIndex(), row, row); rMidiControllers.insert(row, mc); rMidiControllers[row].context = new MidiControllerContext(); endInsertRows(); } /*class ModuleModel*/ ModuleModel::ModuleModel(QObject* parent): QAbstractItemModel(parent) { } int ModuleModel::rowCount(const QModelIndex &parent) const { if (!parent.isValid()) return list.count(); if (!parent.internalPointer()) return list.at(parent.row())->midiControllables.count(); return 0; } QVariant ModuleModel::data(const QModelIndex &index, int role) const { if (index.isValid() && role == Qt::DisplayRole) { Module *m = (Module *)index.internalPointer(); if (m == NULL) { if (index.column() == 0 && index.row() < list.count()) return list.at(index.row())->configDialog->windowTitle(); } else { if (index.row() < m->midiControllables.count()) { MidiControllableBase *mcAble = m->midiControllables.at( index.row()); if (mcAble != NULL) { if (index.column()) return mcAble->midiSign ? "1" : "-1"; else return mcAble->name; } } } } return QVariant(); } QVariant ModuleModel::headerData(int section, Qt::Orientation orientation, int role) const { if (orientation == Qt::Horizontal && role == Qt::DisplayRole) return section ? tr("MIDI Sign") : tr("Module / Parameter"); return QVariant(); } QModelIndex ModuleModel::index(int row, int column, const QModelIndex &parent) const { if (parent.isValid()) return createIndex(row, column, list.at(parent.row())); else return createIndex(row, column, (void *)NULL); } QModelIndex ModuleModel::parent(const QModelIndex &child) const { if (child.isValid() && child.internalPointer()) return index(list.indexOf((Module *)child.internalPointer()), 0); return QModelIndex(); } int ModuleModel::columnCount(const QModelIndex &/*parent*/) const { return 2; } /* MidiWidget class*/ MidiWidget::MidiWidget(QWidget* parent, const char *name) : QWidget(parent) , mgc(NULL) , vbox(this) , midiControllerModel(midiControllers) , selectedMcAbleIndex(QModelIndex()) , midiControllable(NULL) { setObjectName(name); int l1; QString qs; vbox.setMargin(10); vbox.setSpacing(5); noteControllerEnabled = false; followConfig = false; followMidi = false; QSplitter *listViewBox = new QSplitter(); vbox.addWidget(listViewBox, 2); midiControllerView = new QTreeView(listViewBox); midiControllerView->setModel(&midiControllerModel); midiControllerView->setAllColumnsShowFocus(true); moduleListView = new QTreeView(listViewBox); moduleListView->setModel(&moduleModel); moduleListView->setAllColumnsShowFocus(true); QObject::connect(midiControllerView->selectionModel(), SIGNAL(selectionChanged(const QItemSelection &, const QItemSelection &)), this, SLOT(midiControlChanged(const QItemSelection &, const QItemSelection &))); QObject::connect(moduleListView->selectionModel(), SIGNAL(selectionChanged(const QItemSelection &, const QItemSelection &)), this, SLOT(guiControlChanged(const QItemSelection &, const QItemSelection &))); QVBoxLayout *controlFrame = new QVBoxLayout(); controlFrame->setSpacing(5); vbox.addLayout(controlFrame); QFrame* guiControlParent = new QFrame(); // QVBoxLayout controlFrame->addWidget(guiControlParent); guiControlParent->setFrameStyle(QFrame::Panel | QFrame::Sunken); currentGUIcontrol = new QVBoxLayout(guiControlParent); currentGUIcontrol->setMargin(5); QHBoxLayout* floatHelperLayout = new QHBoxLayout(); currentGUIcontrol->addLayout(floatHelperLayout); logCheck = new QCheckBox(tr("&Log")); floatHelperLayout->addWidget(logCheck); QObject::connect(logCheck, SIGNAL(toggled(bool)), this, SLOT(setLogMode(bool))); floatHelperLayout->addStretch(); newMinButton = new QPushButton(tr("Set Mi&n")); floatHelperLayout->addWidget(newMinButton); QObject::connect(newMinButton, SIGNAL(clicked()), this, SLOT(setNewMin())); floatHelperLayout->addStretch(); newMaxButton = new QPushButton(tr("Set Ma&x")); floatHelperLayout->addWidget(newMaxButton); QObject::connect(newMaxButton, SIGNAL(clicked()), this, SLOT(setNewMax())); floatHelperLayout->addStretch(); resetMinMaxButton = new QPushButton(tr("&Reset Min/Max")); floatHelperLayout->addWidget(resetMinMaxButton); QObject::connect(resetMinMaxButton, SIGNAL(clicked()), this, SLOT(setInitialMinMax())); showFloatHelpers(false); // currentGUIcontrol = NULL; QHBoxLayout *checkbuttonBox = new QHBoxLayout(); controlFrame->addLayout(checkbuttonBox); checkbuttonBox->setSpacing(10); checkbuttonBox->setMargin(5); QStringList channelNames; channelNames << tr("Omni"); //TODO: remove obsolete empty spaces for (l1 = 1; l1 < 17; l1++) { qs.sprintf("%4d", l1); channelNames << qs; } QHBoxLayout *midiChannelBox = new QHBoxLayout(); controlFrame->addLayout(midiChannelBox); QLabel *channelText = new QLabel(tr("MIDI C&hannel:")); midiChannelBox->addWidget(channelText); QComboBox *comboBox = new QComboBox(); channelText->setBuddy(comboBox); midiChannelBox->addWidget(comboBox); midiChannelBox->addStretch(); midiChannelBox->addStretch(); midiChannelBox->addStretch(); comboBox->addItems(channelNames); comboBox->setFixedSize(comboBox->sizeHint()); QObject::connect(comboBox, SIGNAL(highlighted(int)), this, SLOT(updateMidiChannel(int))); midiChannelBox->addStretch(); addGuiButton = new QPushButton(tr("Add to &Parameter View")); addGuiButton->setEnabled(false); midiChannelBox->addWidget(addGuiButton); QObject::connect(addGuiButton, SIGNAL(clicked()), this, SLOT(addToParameterViewClicked())); midiChannelBox->addStretch(); QHBoxLayout *buttonBox = new QHBoxLayout(); controlFrame->addLayout(buttonBox); buttonBox->setSpacing(5); buttonBox->setMargin(5); buttonBox->addStretch(); QCheckBox* noteCheck = new QCheckBox(tr("&Enable note events")); checkbuttonBox->addWidget(noteCheck); noteCheck->setChecked(noteControllerEnabled); QCheckBox* configCheck = new QCheckBox(tr("&Follow Configuration Dialog")); checkbuttonBox->addWidget(configCheck); configCheck->setChecked(followConfig); QCheckBox* midiCheck = new QCheckBox(tr("Follow &MIDI")); checkbuttonBox->addWidget(midiCheck); midiCheck->setChecked(followMidi); QObject::connect(noteCheck, SIGNAL(stateChanged(int)), this, SLOT(noteControllerCheckToggle(int))); QObject::connect(configCheck, SIGNAL(stateChanged(int)), this, SLOT(configCheckToggle(int))); QObject::connect(midiCheck, SIGNAL(stateChanged(int)), this, SLOT(midiCheckToggle(int))); buttonBox->addStretch(); bindButton = new QPushButton(tr("&Bind")); bindButton->setEnabled(false); buttonBox->addWidget(bindButton); buttonBox->addStretch(); clearButton = new QPushButton(tr("&Clear Binding")); buttonBox->addWidget(clearButton); clearButton->setEnabled(false); buttonBox->addStretch(); clearAllButton = new QPushButton(tr("Clear &All")); buttonBox->addWidget(clearAllButton); buttonBox->addStretch(); midiSignButton = new QPushButton(tr("&Toggle MIDI Sign")); buttonBox->addWidget(midiSignButton); midiSignButton->setEnabled(false); buttonBox->addStretch(); QObject::connect(bindButton, SIGNAL(clicked()), this, SLOT(bindClicked())); QObject::connect(clearButton, SIGNAL(clicked()), this, SLOT(clearClicked())); QObject::connect(clearAllButton, SIGNAL(clicked()), this, SLOT(clearAllClicked())); QObject::connect(midiSignButton, SIGNAL(clicked()), this, SLOT(toggleMidiSign())); } MidiWidget::~MidiWidget() { } void MidiWidget::clearAllClicked() { for (int l1 = 0; l1 < midiControllers.count(); l1++) { const MidiController &c = midiControllers.at(l1); while (c.context->mcAbles.count()) { MidiControllableBase *mcAble = c.context->mcAbles.at(0); mcAble->disconnectController(c); } } midiControllerModel.beginRemoveRows(QModelIndex(), 0, midiControllers.count() - 1); midiControllers.clear(); midiControllerModel.endRemoveRows(); } /* MIDI event arrived from modularsynth.cpp * this adds a controller to the controller list view or * update the selection, if it is already there */ void MidiWidget::addMidiController(MidiControllerKey mck) { MidiController mc(mck.getKey()); typeof(midiControllers.end()) c(midiControllers.end()); if (!midiControllers.empty()) { c = qLowerBound(midiControllers.begin(), midiControllers.end(), mck); if (c != midiControllers.end()) { if (*c == mc) { /* controller is found, now update selection */ if (followMidi) { int row = midiControllers.indexOf(mc); QModelIndex index = midiControllerModel.index(row, 0); midiControllerView->scrollTo(index); /* only update selection if not already selected*/ if (mck == selectedController) return; midiControllerView->selectionModel()-> select(index, QItemSelectionModel::ClearAndSelect); } return; } } } midiControllerModel.insert(c - midiControllers.begin(), mc); midiControllerView->resizeColumnToContents(0); } void MidiWidget::addMidiControllable(MidiControllerKey mck, MidiControllableBase *mcAble) { typeof(midiControllers.constEnd()) c = qBinaryFind(midiControllers.constBegin(), midiControllers.constEnd(), mck); if (c == midiControllers.end()) { StdErr << __PRETTY_FUNCTION__ << ":" << __LINE__ << endl; return; } int row = c - midiControllers.begin(); int childRow = c->context->mcAbles.count(); midiControllerModel.beginInsertRows(midiControllerModel.index(row, 0), childRow, childRow); c->context->mcAbles.append(mcAble); midiControllerModel.endInsertRows(); moduleListView->resizeColumnToContents(0); } void MidiWidget::removeMidiControllable(MidiControllerKey mck, MidiControllableBase *mcAble, bool *updateActiveMidiControllers) { typeof(midiControllers.constEnd()) c = qBinaryFind(midiControllers.constBegin(), midiControllers.constEnd(), mck); if (c == midiControllers.end()) { StdErr << __PRETTY_FUNCTION__ << ":" << __LINE__ << endl; return; } int row = c - midiControllers.begin(); int childRow = c->context->mcAbles.indexOf(mcAble); if (childRow != -1) { midiControllerModel.beginRemoveRows(midiControllerModel.index(row, 0), childRow, childRow); c->context->mcAbles.removeAll(mcAble); midiControllerModel.endRemoveRows(); } if (!updateActiveMidiControllers || *updateActiveMidiControllers) setActiveMidiControllers(); if (updateActiveMidiControllers) *updateActiveMidiControllers = false; } void MidiWidget::clearClicked() { if (selectedController.isValid() && selectedMcAbleIndex.isValid()) { typeof(midiControllers.constEnd()) c = qBinaryFind(midiControllers.constBegin(), midiControllers.constEnd(), selectedController); if (c == midiControllers.end()) { StdErr << __PRETTY_FUNCTION__ << ":" << __LINE__ << endl; return; } MidiControllableBase *mcAble = c->context->mcAbles.at(selectedMcAbleIndex.row()); if (mcAble != NULL) mcAble->disconnectController(selectedController); } } void MidiWidget::addToParameterViewClicked() { QString qs, qs2, qs3; bool ok, foundFrameName, foundTabName; int l1, frameIndex, tabIndex; if (midiControllable == NULL) return; if (synthdata->guiWidget->presetCount > 0) { QMessageBox questionContinue("AlsaModularSynth", tr("This will erase all presets for this configuration. " "Continue?"), QMessageBox::NoIcon, QMessageBox::Yes | QMessageBox::Default, QMessageBox::No | QMessageBox::Escape, QMessageBox::NoButton); if (questionContinue.exec() == QMessageBox::No) return; } qs = QInputDialog::getText(this, "AlsaModularSynth", tr("Add this parameter to frame:"), QLineEdit::Normal, currentFrameName, &ok); currentFrameName = qs; if (qs.isEmpty()) return; foundFrameName = false; frameIndex = 0; if ((l1 =synthdata->guiWidget->frameNameList.indexOf(qs.trimmed())) >= 0) { foundFrameName = true; frameIndex = l1; } if (!foundFrameName) { qs2 = tr("Frame '%1' does not exist. Create?").arg(qs); QMessageBox question("AlsaModularSynth", qs2, QMessageBox::NoIcon, QMessageBox::Yes | QMessageBox::Default, QMessageBox::No | QMessageBox::Escape, QMessageBox::NoButton); if (question.exec() == QMessageBox::Yes) { qs3 = QInputDialog::getText(this, "AlsaModularSynth", tr("Add frame to tab:"), QLineEdit::Normal, currentTabName, &ok); currentTabName = qs3; foundTabName = false; tabIndex = 0; if ((l1 =synthdata->guiWidget->tabNameList.indexOf( qs3.trimmed())) >= 0) { foundTabName = true; tabIndex = l1; synthdata->guiWidget->setTab(tabIndex); } else { qs2 = tr("Tab '%1' does not exist. Create?").arg(qs3); QMessageBox question("AlsaModularSynth", qs2, QMessageBox::NoIcon, QMessageBox::Yes | QMessageBox::Default, QMessageBox::No | QMessageBox::Escape, QMessageBox::NoButton); if (question.exec() == QMessageBox::Yes) synthdata->guiWidget->addTab(qs3.trimmed()); else return; } synthdata->guiWidget->addFrame(qs.trimmed()); } else return; } else synthdata->guiWidget->setFrame(frameIndex); qs2 = midiControllable->name + " ID " + QString().setNum(midiControllable->module.moduleID); qs = QInputDialog::getText(this, "AlsaModularSynth", tr("Parameter name:"), QLineEdit::Normal, qs2, &ok); synthdata->guiWidget->addParameter(midiControllable, qs); } void MidiWidget::bindClicked() { if (midiControllable && selectedController.isValid() && !selectedMcAbleIndex.isValid()) { int row = midiControllers.indexOf(selectedController.getKey()); midiControllerView->setExpanded( midiControllerModel.index(row, 0), true); midiControllable->connectToController(selectedController); setActiveMidiControllers(); } } void MidiWidget::noteControllerCheckToggle(int state) { noteControllerEnabled = state; } void MidiWidget::configCheckToggle(int state) { followConfig = state; } void MidiWidget::midiCheckToggle(int state) { followMidi = state; } void MidiWidget::addModule(Module *m) { if (!m->midiControllables.count()) return; int row = moduleModel.list.count(); moduleModel.beginInsertRows(QModelIndex(), row, row); moduleModel.list.append(m); moduleModel.endInsertRows(); } void MidiWidget::removeModule(Module *m) { synthdata->moduleList.removeAll(m); synthdata->decModuleCount(); int row = moduleModel.list.indexOf(m); if (row == -1) return; if (m->midiControllables.contains(midiControllable)) { delete mgc; mgc = NULL; midiControllable = NULL; } moduleModel.beginRemoveRows(QModelIndex(), row, row); moduleModel.list.removeAll(m); moduleModel.endRemoveRows(); } void MidiWidget::toggleMidiSign() { if (midiControllable == NULL) return; midiControllable->midiSign = !midiControllable->midiSign; Module *m = &midiControllable->module; QModelIndex mMi = moduleModel.index(moduleModel.list.indexOf(m), 0); QModelIndex mgcMi = moduleModel.index( m->midiControllables.indexOf(midiControllable), 1, mMi); emit moduleModel.dataChanged(mgcMi, mgcMi); } /* Module parameter selection changed, right list */ void MidiWidget::guiControlChanged(const QItemSelection &selected, const QItemSelection &/*deselected*/) { bool success = false; if (midiControllable) { delete mgc; mgc = NULL; midiControllable = NULL; } if (selected.indexes().count() > 0) { const QModelIndex mi = selected.indexes().at(0); Module *module = (Module *)mi.internalPointer(); if (module && mi.row() < module->midiControllables.count()) { midiControllable = module->midiControllables.at(mi.row()); success = true; } } midiSignButton->setEnabled(success); addGuiButton->setEnabled(success); if (!success) return; mgc = dynamic_cast(midiControllable->mcws.at(0))->createTwin(); currentGUIcontrol->insertWidget(0, mgc);//, 10, Qt::AlignHCenter); showFloatHelpers(dynamic_cast(midiControllable)); } /* MIDI controller selection changed , left list */ void MidiWidget::midiControlChanged(const QItemSelection &selected, const QItemSelection &/*deselected*/) { selectedController = MidiControllerKey(); bool bindEnable = false; bool clearEnable = false; selectedMcAbleIndex = QModelIndex(); if (selected.indexes().count() > 0) { const QModelIndex mi = selected.indexes().at(0); const MidiController *mc = (const MidiController *)mi.internalPointer(); if (mc) { selectedController = mc->getKey(); selectedMcAbleIndex = mi; clearEnable = true; } else { selectedController = midiControllers.at(mi.row()).getKey(); bindEnable = true; } } bindButton->setEnabled(bindEnable); clearButton->setEnabled(clearEnable); } void MidiWidget::setLogMode(bool on) { if (midiControllable != NULL) dynamic_cast(midiControllable)->setLog(on); } void MidiWidget::setNewMin() { if (midiControllable != NULL) dynamic_cast(midiControllable)->setNewMin(); } void MidiWidget::setNewMax() { if (midiControllable != NULL) dynamic_cast(midiControllable)->setNewMax(); } void MidiWidget::setInitialMinMax() { if (midiControllable != NULL) dynamic_cast(midiControllable)->resetMinMax(); } void MidiWidget::selectMcAble(MidiControllableBase &mcAble) { int row = moduleModel.list.indexOf(&mcAble.module); QModelIndex index = moduleModel.index(row, 0); row = mcAble.module.midiControllables.indexOf(&mcAble); index = moduleModel.index(row, 0, index); moduleListView->scrollTo(index); if (&mcAble == midiControllable) return; moduleListView->selectionModel()-> select(index, QItemSelectionModel::ClearAndSelect); } void MidiWidget::showFloatHelpers(bool show) { if (show) { logCheck->blockSignals(true); logCheck->setChecked(static_cast(midiControllable)->getLog()); logCheck->blockSignals(false); } logCheck->setVisible(show); newMinButton->setVisible(show); newMaxButton->setVisible(show); resetMinMaxButton->setVisible(show); } void MidiWidget::updateMidiChannel(int index) { synthdata->midiChannel = index - 1; } void MidiWidget::setActiveMidiControllers() { typeof(synthdata->activeMidiControllers) New = new typeof(*synthdata->activeMidiControllers); for (typeof(midiControllers.constBegin()) mc = midiControllers.constBegin(); mc != midiControllers.constEnd(); ++mc) { MidiControllerContext *amcc = NULL; for (typeof(mc->context->mcAbles.constBegin()) mca = mc->context->mcAbles.constBegin(); mca != mc->context->mcAbles.constEnd(); ++mca) if ((*mca)->module.isAlive()) { if (!amcc) { New->append(mc->getKey()); amcc = New->back().context = new MidiControllerContext(); } amcc->mcAbles.append(*mca); } } typeof(synthdata->activeMidiControllers) old = synthdata->activeMidiControllers; pthread_mutex_lock(&synthdata->rtMutex); synthdata->activeMidiControllers = New; pthread_mutex_unlock(&synthdata->rtMutex); delete old; } // const MidiController* MidiWidget::midiController(MidiControllerKey mck) // { // typeof(midiControllers.constEnd()) c = // qBinaryFind(midiControllers.constBegin(), // midiControllers.constEnd(), mck); // return c == midiControllers.constEnd() ? NULL : &*c; // } const MidiControllerKey MidiWidget::getSelectedController() { return selectedController; } void MidiWidget::guiComponentTouched(MidiControllableBase &mcAble) { if (followConfig) selectMcAble(mcAble); } /* MIDI event arrived from modularsynth.cpp; * this only updates the module view selection but does not update the * controller view selection */ void MidiWidget::midiTouched(MidiControllableBase &mcAble) { if (followMidi) selectMcAble(mcAble); } ams-2.0.1/src/envelope.cpp0000644000076400007640000000465111150721750012340 00000000000000#include #include #include #include #include "envelope.h" #include "midicontrollable.h" Envelope::Envelope(MidiControllableFloat &delayRef, MidiControllableFloat &attackRef, MidiControllableFloat &holdRef, MidiControllableFloat &decayRef, MidiControllableFloat &sustainRef, MidiControllableFloat &releaseRef) : delayRef(delayRef) , attackRef(attackRef) , holdRef(holdRef) , decayRef(decayRef) , sustainRef(sustainRef) , releaseRef(releaseRef) { delayRef.connectTo(this); attackRef.connectTo(this); holdRef.connectTo(this); decayRef.connectTo(this); sustainRef.connectTo(this); releaseRef.connectTo(this); setObjectName("Envelope"); setAutoFillBackground(true); setPalette(QPalette(QColor(0, 20, 100), QColor(10, 50, 10))); setMinimumHeight(140); } Envelope::~Envelope() { delayRef.disconnect(this); attackRef.disconnect(this); holdRef.disconnect(this); decayRef.disconnect(this); sustainRef.disconnect(this); releaseRef.disconnect(this); } void Envelope::paintEvent(QPaintEvent *) { QPainter p(this); QPolygon points(7); QPen pen; float len, x, y, xscale, yscale; p.setViewport(0, 0, width(), height()); p.setWindow(0, 0, width(), height()); len = delayRef + attackRef + holdRef + decayRef + SUSTAIN_LEN + releaseRef; xscale = (float)width() / len; yscale = (float)(height()-6); x = delayRef * xscale; points.setPoint(0, (int)x, height()); x += attackRef * xscale; points.setPoint(1, (int)x, 6); x += holdRef * xscale; points.setPoint(2, (int)x, 6); x += decayRef * xscale; y = sustainRef * yscale; points.setPoint(3, (int)x, height() - (int)y); x += SUSTAIN_LEN * xscale; points.setPoint(4, (int)x, height() - (int)y); x += releaseRef * xscale; points.setPoint(5, (int)x, height() - 1); x = delayRef * xscale; points.setPoint(6, (int)x, height() - 1); p.setBrush(QBrush(QColor(10, 80, 10))); p.drawPolygon(points); pen.setColor(QColor(10, 110, 10)); pen.setWidth(3); p.setPen(pen); p.drawPolyline(points); pen.setColor(QColor(20, 160, 20)); pen.setWidth(1); p.setPen(pen); p.drawPolyline(points); } void Envelope::mcAbleChanged() { update(); } QSize Envelope::sizeHint() const { return QSize(ENVELOPE_MINIMUM_WIDTH, ENVELOPE_MINIMUM_HEIGHT); } QSizePolicy Envelope::sizePolicy() const { return QSizePolicy( QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding); } ams-2.0.1/src/m_sh.cpp0000664000076400007640000000270011051111616011436 00000000000000#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "synthdata.h" #include "m_sh.h" #include "port.h" M_sh::M_sh(QWidget* parent) : Module(M_type_sh, 2, parent, tr("Sample & Hold")) { QString qs; setGeometry(MODULE_NEW_X, MODULE_NEW_Y, MODULE_SH_WIDTH, MODULE_SH_HEIGHT); port_M_in = new Port(tr("In"), PORT_IN, 0, this); port_M_trig = new Port(tr("Trigger"), PORT_IN, 1, this); port_out = new Port(tr("Out"), PORT_OUT, 0, this); port_gate = new Port(tr("Gate"), PORT_OUT, 1, this); triggerLevel = 0.5; configDialog->addSlider(tr("Trigger Level"), triggerLevel, 0, 10); sample = 0; gate = false; } void M_sh::generateCycle() { int l1; unsigned int l2; inData = port_M_in->getinputdata (); trigData = port_M_trig->getinputdata (); for (l1 = 0; l1 < synthdata->poly; l1++) { for (l2 = 0; l2 < synthdata->cyclesize; l2++) { if ( !gate && (trigData[l1][l2] > triggerLevel)) { sample = inData[l1][l2]; gate = true; } else { gate = trigData[l1][l2] > triggerLevel; } data[0][l1][l2] = sample; data[1][l1][l2] = (gate) ? 1 : 0; } } } ams-2.0.1/src/m_vca.h0000664000076400007640000000071611051103067011250 00000000000000#ifndef M_VCA_H #define M_VCA_H #include "module.h" #define MODULE_VCA_WIDTH 85 #define MODULE_VCA_HEIGHT 140 class M_vca : public Module { Q_OBJECT float gain1, gain2, in1, in2, out; Port *port_M_gain1, *port_M_in1, *port_M_gain2, *port_M_in2, *port_out; public: bool expMode; public: M_vca(bool p_expMode, QWidget* parent=0); void generateCycle(); }; #endif ams-2.0.1/src/modularsynth.cpp0000664000076400007640000016133211214541635013261 00000000000000#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "midislider.h" #include "intmidislider.h" #include "midicombobox.h" #include "midicheckbox.h" #include "modularsynth.h" #include "port.h" #include "midiwidget.h" #include "guiwidget.h" #include "midicontroller.h" #include "ladspadialog.h" #include "textedit.h" #include "m_spectrum.h" #include "m_vco.h" #include "m_vco2.h" #include "m_vca.h" #include "m_delay.h" #include "m_seq.h" #include "m_env.h" #include "m_vcenv.h" #include "m_vcenv2.h" #include "m_advenv.h" #include "m_mcv.h" #include "m_advmcv.h" #include "m_scmcv.h" #include "m_ringmod.h" #include "m_mix.h" #include "m_stereomix.h" #include "m_pcmout.h" #include "m_pcmin.h" #include "m_wavout.h" #include "m_lfo.h" #include "m_noise.h" #include "m_noise2.h" #include "m_ladspa.h" #include "m_vcf.h" #include "m_inv.h" #include "m_amp.h" #include "m_ad.h" #include "m_vquant.h" #include "m_conv.h" #include "m_cvs.h" #include "m_vcswitch.h" #include "m_slew.h" #include "m_sh.h" #include "m_vcpanning.h" #include "m_midiout.h" #include "m_scope.h" #include "m_vcorgan.h" #include "m_dynamicwaves.h" #include "m_quantizer.h" #include "m_scquantizer.h" #include "m_function.h" #include "m_vcdoubledecay.h" #include "m_mphlfo.h" #include "prefwidget.h" #include "config.h" static const char COLOREXT[] = ".acs"; SynthData *synthdata; ModularSynth::ModularSynth(QWidget* parent, const ModularSynthOptions& mso) : QWidget(parent) , pcmname(mso.pcmname) , fsamp(mso.fsamp) , frsize(mso.frsize) , nfrags(mso.nfrags) , ncapt(mso.ncapt) , nplay(mso.nplay) , verbose(mso.verbose) , paintFastly(false) , _zoomFactor(1.0) { modified = false; dragWidget = NULL; selectedPort = NULL; connectorStyle = CONNECTOR_BEZIER; portPopup = new PopupMenu(this); aboutWidget = new QMessageBox(parent); synthdata = new SynthData(mso.synthName, mso.poly, mso.edge); midiWidget = new MidiWidget(NULL); midiWidget->setWindowTitle(tr("AlsaModularSynth Control Center")); synthdata->midiWidget = midiWidget; guiWidget = new GuiWidget(NULL); guiWidget->setWindowTitle(tr("AlsaModularSynth Parameter View")); synthdata->guiWidget = guiWidget; prefWidget = new PrefWidget(); prefWidget->setWindowTitle(tr("AlsaModularSynth Preferences")); QObject::connect(prefWidget, SIGNAL(prefChanged()), this, SLOT(refreshColors())); ladspaDialog = new LadspaDialog(); QObject::connect(static_cast(ladspaDialog), SIGNAL(createLadspaModule(int, int, bool, bool)), this, SLOT(newM_ladspa(int, int, bool, bool))); setPalette(QPalette(QColor(240, 240, 255), QColor(240, 240, 255))); loadingPatch = false; } ModularSynth::~ModularSynth() { synthdata->stopPCM(); synthdata->midiWidget->clearAllClicked(); guiWidget->close(); prefWidget->close(); midiWidget->close(); delete synthdata; } QSize ModularSynth::sizeHint() const { return QSize(std::max(childrenRect().right(), ((QWidget*)parent())->width()), std::max(childrenRect().bottom(), ((QWidget*)parent())->height())); } void ModularSynth::paintEvent(QPaintEvent *) { QPainter p(this); if (!paintFastly) p.setRenderHint(QPainter::Antialiasing); for (int l1 = 0; l1 < listModule.count(); ++l1) { Module* m = listModule.at(l1); if (m == NULL) continue; m->paintCablesToConnectedPorts(p); } } void ModularSynth::mousePressEvent(QMouseEvent *ev) { switch (ev->button()) { case Qt::LeftButton: { QWidget *pw = childAt(ev->pos()); if (pw != NULL) { Box* mb = qobject_cast(pw); if (mb != 0) { lastMousePos = ev->globalPos(); dragWidget = mb; mb->raise(); setPaintFastly(true); } } ev->accept(); break; } case Qt::RightButton: { /* there are three different context actions: * 1) show port property menu * 2) show module property dialog * 3) show module list menu **/ QWidget *pw = childAt(ev->pos()); if (pw) { Port *pp = qobject_cast(pw); if (pp) { if (pp->isInPort()) { // show port popup menu pp->popupMenuClicked(portPopup->runAt(ev->globalPos())); update(); } } else { Module *mb = qobject_cast(pw); if (mb) { // show module property window mb->showConfigDialog(ev->globalPos()); } } } else { // show module list menu newBoxPos = ev->pos(); contextMenu->popup(ev->globalPos()); } ev->accept(); } break; default: ev->ignore(); break; } } void ModularSynth::mouseMoveEvent(QMouseEvent *ev) { if (!dragWidget) return; bool crossTopLeft = synthdata->editingFlags.crossTopLeft(); QPoint delta = ev->globalPos() - lastMousePos; lastMousePos = ev->globalPos(); QPoint newPos = dragWidget->pos() + delta; if (!crossTopLeft) { /*top and left limit for movement*/ if (newPos.x() < 0) newPos.setX(0); if (newPos.y() < 0) newPos.setY(0); } dragWidget->move(newPos); if (crossTopLeft) { QPoint moveAll; if (newPos.x() < 0) moveAll.rx() = - newPos.x(); if (newPos.y() < 0) moveAll.ry() = - newPos.y(); QRect chR = childrenRect(); if (delta.x() > 0 && chR.topLeft().x() > 60) { int x = std::min(delta.x(), chR.topLeft().x() - 60); moveAll.rx() -= x; } if (delta.y() > 0 && chR.topLeft().y() > 30) { int y = std::min(delta.y(), chR.topLeft().y() - 30); moveAll.ry() -= y; } moveAllBoxes(moveAll); } adjustSize(); update(); modified = true; } void ModularSynth::mouseReleaseEvent(QMouseEvent *ev) { switch (ev->button()) { case Qt::LeftButton: if (dragWidget != NULL) dragWidget = NULL; setPaintFastly(false); update(); ev->accept(); break; default: ev->ignore(); break; } } int ModularSynth::go(bool forceJack, bool forceAlsa) { if ((synthdata->seq_handle = open_seq())) initSeqNotifier(); else qWarning(QObject::tr("Alsa MIDI wont work!").toUtf8()); midiWidget->setActiveMidiControllers(); int err = forceAlsa ? -1 : synthdata->initJack(ncapt, nplay); if (err < 0 && !forceJack) err = synthdata->initAlsa(pcmname.toLocal8Bit(), fsamp, frsize, nfrags, ncapt, nplay); if (err < 0) exit(err); startSynth(); return 0; } void ModularSynth::displayAbout() { aboutWidget->about(this, tr("About ") + AMS_LONGNAME, AMS_LONGNAME " " VERSION "\nby Matthias Nagorni and Fons Adriaensen\n" "(c)2002-2003 SuSE AG Nuremberg\n" "(c)2003 Fons Adriaensen\n" "(c)2007 Malte Steiner\n" "(c)2007-2009 Karsten Wiese\n" "(c)2008-2009 Guido Scholz\n\n" "Documentation and examples can be found in\n" "/usr/share/ams\n\n" "More presets and updates are available from\n" "http://alsamodular.sourceforge.net/" "\n\nAcknowledgements\n" "----------------------\n\n" "The VCF Module uses the resonant low-pass filter by Paul Kellett and\n" "the Cookbook formulae for audio EQ biquad filter coefficients by\n" "Robert Bristow-Johnson. The experimental 24 dB Lowpass filters have\n" "been taken from http://musicdsp.org/. They are based on the CSound source\n" "code, the paper by Stilson/Smith and modifications by Paul Kellett\n" "and Timo Tossavainen. The pink noise conversion formula is by Paul\n" "Kellett and has been taken from http://musicdsp.org/ as well.\n\n" "The author is grateful to Takashi Iwai for instructions about ALSA.\n" "Klaas Freitag, Helmut Herold, Stefan Hundhammer and Arvin Schnell\n" "answered many questions about Qt. Thanks to Jörg Arndt for valuable\n" "hints regarding speed optimization. Torsten Rahn has helped to\n" "improve the color scheme of the program. Thanks to Bernhard Kaindl\n" "for helpful discussion.\n"); aboutWidget->raise(); } void ModularSynth::displayMidiController() { if (!midiWidget->isVisible()) midiWidget->show(); else { midiWidget->raise(); midiWidget->activateWindow(); } } void ModularSynth::displayParameterView() { guiWidget->show(); guiWidget->raise(); } void ModularSynth::displayPreferences() { prefWidget->show(); prefWidget->raise(); } void ModularSynth::displayLadspaPlugins() { ladspaDialog->show(); ladspaDialog->raise(); } int ModularSynth::getSynthDataPoly() { return synthdata->poly; } snd_seq_t *ModularSynth::open_seq() { snd_seq_t *seq_handle; QString qs; if (snd_seq_open(&seq_handle, "hw", SND_SEQ_OPEN_DUPLEX, SND_SEQ_NONBLOCK) < 0) { qWarning(QObject::tr("Error opening ALSA sequencer.").toUtf8()); return NULL; } snd_seq_set_client_name(seq_handle, (synthdata->name + " Midi").toLatin1().constData()); if (snd_seq_create_simple_port(seq_handle, "ams in", SND_SEQ_PORT_CAP_WRITE | SND_SEQ_PORT_CAP_SUBS_WRITE, SND_SEQ_PORT_TYPE_APPLICATION) < 0) { qWarning(QObject::tr("Error creating sequencer write port.").toUtf8()); snd_seq_close(seq_handle); return NULL; } for (int l1 = 0; l1 < 2; ++l1) if ((synthdata->midi_out_port[l1] = snd_seq_create_simple_port(seq_handle, "ams out", SND_SEQ_PORT_CAP_READ | SND_SEQ_PORT_CAP_SUBS_READ, SND_SEQ_PORT_TYPE_APPLICATION)) < 0) { qWarning(QObject::tr("Error creating sequencer read port.").toUtf8()); snd_seq_close(seq_handle); return NULL; } return seq_handle; } int ModularSynth::initSeqNotifier() { seqNotifier = new QSocketNotifier(synthdata->pipeFd[0], QSocketNotifier::Read, this); QObject::connect(seqNotifier, SIGNAL(activated(int)), this, SLOT(midiAction(int))); return(0); } void ModularSynth::midiAction(int fd) { char pipeIn[16]; ssize_t pipeRed = read(fd, pipeIn, sizeof(pipeIn)); if (pipeRed < 0) { StdErr << __PRETTY_FUNCTION__ << ": read() " << endl; perror(NULL); exit(-1); } if (pipeRed < 1 || pipeRed >= (ssize_t)sizeof(pipeIn)) StdErr << __PRETTY_FUNCTION__ << ": read() " << pipeRed << " bytes" << endl; if (pipeRed == 0) return; while (pipeRed > 1) pipeIn[0] |= pipeIn[--pipeRed]; MidiControllableBase *mcAble = NULL; for (int mCs = synthdata->mcSet.count(); mCs; --mCs) { mcAble = synthdata->mcSet.get(); mcAble->updateMGCs(NULL); } if (mcAble) midiWidget->midiTouched(*mcAble); for (int mcKs = synthdata->mckRead.count(); mcKs; --mcKs) { MidiControllerKey mcK = synthdata->mckRead.get(); if (midiWidget->isVisible()) { if (mcK.type() == SND_SEQ_EVENT_CONTROLLER || mcK.type() == SND_SEQ_EVENT_CONTROL14 || mcK.type() == SND_SEQ_EVENT_PITCHBEND || (midiWidget->noteControllerEnabled && (mcK.type() == SND_SEQ_EVENT_NOTEON || mcK.type() == SND_SEQ_EVENT_NOTEOFF))) midiWidget->addMidiController(mcK); } } for (int mcKs = synthdata->mckDump.count(); mcKs; --mcKs) { MidiControllerKey mcK = synthdata->mckDump.get(); switch (mcK.type()) { case SND_SEQ_EVENT_SYSEX: StdErr << "SYSEX MIDI events are not supported" << endl; break; default: StdErr << "Unsupported MIDI event received (type = " << mcK.type() << ")" << endl; break; } } if (pipeIn[0] & 4) guiWidget->setCurrentPresetText(); } /* redraws complete module area when a module connection is changed*/ void ModularSynth::redrawPortConnections() { update(); modified = true; } void ModularSynth::initNewModule(Module *m) { m->move(newBoxPos); m->show(); QObject::connect(m, SIGNAL(removeModule()), this, SLOT(deleteModule())); QObject::connect(m, SIGNAL(portSelected(Port*)), this, SLOT(portSelected(Port*))); QObject::connect(m, SIGNAL(portDisconnected()), this, SLOT(redrawPortConnections())); listModule.append(m); if (!loadingPatch) { midiWidget->addModule(m); } modified = true; } void ModularSynth::new_textEdit() { TextEdit *te = new TextEdit(this, "textEdit"); te->move(newBoxPos); te->show(); QObject::connect(te, SIGNAL(sizeDragged(const QPoint&)), this, SLOT(resizeTextEdit(const QPoint&))); QObject::connect(te, SIGNAL(removeTextEdit()), this, SLOT(deleteTextEdit())); listTextEdit.append(te); modified = true; } void ModularSynth::new_textEdit(int w, int h) { TextEdit *te = new TextEdit(this, "textEdit"); te->setFixedSize(w, h); te->move(newBoxPos); te->show(); QObject::connect(te, SIGNAL(sizeDragged(const QPoint&)), this, SLOT(resizeTextEdit(const QPoint&))); QObject::connect(te, SIGNAL(removeTextEdit()), this, SLOT(deleteTextEdit())); listTextEdit.append(te); } void ModularSynth::startSynth() { pthread_mutex_lock(&synthdata->rtMutex); synthdata->doSynthesis = true; pthread_mutex_unlock(&synthdata->rtMutex); } void ModularSynth::stopSynth() { pthread_mutex_lock(&synthdata->rtMutex); synthdata->doSynthesis = false; pthread_mutex_unlock(&synthdata->rtMutex); } //################################################ start add new modules void ModularSynth::newM_seq(int seqLen) { M_seq *m = new M_seq(seqLen, this); if (m != NULL) initNewModule(m); } void ModularSynth::newM_seq_8() { newM_seq(8); } void ModularSynth::newM_seq_12() { newM_seq(12); } void ModularSynth::newM_seq_16() { newM_seq(16); } void ModularSynth::newM_seq_24() { newM_seq(24); } void ModularSynth::newM_seq_32() { newM_seq(32); } void ModularSynth::newM_vcorgan(int oscCount) { M_vcorgan *m = new M_vcorgan(oscCount, this); if (m != NULL) initNewModule(m); } void ModularSynth::newM_vcorgan_4() { newM_vcorgan(4); } void ModularSynth::newM_vcorgan_6() { newM_vcorgan(6); } void ModularSynth::newM_vcorgan_8() { newM_vcorgan(8); } void ModularSynth::newM_dynamicwaves(int oscCount) { M_dynamicwaves *m = new M_dynamicwaves(oscCount, this); if (m != NULL) initNewModule(m); } void ModularSynth::newM_dynamicwaves_4() { newM_dynamicwaves(4); } void ModularSynth::newM_dynamicwaves_6() { newM_dynamicwaves(6); } void ModularSynth::newM_dynamicwaves_8() { newM_dynamicwaves(8); } void ModularSynth::newM_mcv() { M_mcv *m = new M_mcv(this); if (m != NULL) initNewModule(m); } void ModularSynth::newM_advmcv() { M_advmcv *m = new M_advmcv(this); if (m != NULL) { synthdata->listM_advmcv.append(m); initNewModule(m); } } void ModularSynth::newM_scmcv() { M_scmcv *m = new M_scmcv(this); if (m != NULL) initNewModule(m); } void ModularSynth::newM_scmcv(QString *p_scalaName) { M_scmcv *m = new M_scmcv(this, p_scalaName); if (m != NULL) initNewModule(m); } void ModularSynth::newM_env() { M_env *m = new M_env(this); if (m != NULL) initNewModule(m); } void ModularSynth::newM_vcenv() { M_vcenv *m = new M_vcenv(this); if (m != NULL) initNewModule(m); } void ModularSynth::newM_vcenv2() { M_vcenv2 *m = new M_vcenv2(this); if (m != NULL) initNewModule(m); } void ModularSynth::newM_vcdoubledecay() { M_vcdoubledecay *m = new M_vcdoubledecay(this); if (m != NULL) initNewModule(m); } void ModularSynth::newM_vcpanning() { M_vcpanning *m = new M_vcpanning(this); if (m != NULL) initNewModule(m); } void ModularSynth::newM_advenv() { M_advenv *m = new M_advenv(this); if (m != NULL) initNewModule(m); } void ModularSynth::newM_vco() { M_vco *m = new M_vco(this); if (m != NULL) initNewModule(m); } void ModularSynth::newM_vco2() { M_vco2 *m = new M_vco2(this); if (m != NULL) initNewModule(m); } void ModularSynth::newM_vca_lin() { M_vca *m = new M_vca(false, this); if (m != NULL) initNewModule(m); } void ModularSynth::newM_vca_exp() { M_vca *m = new M_vca(true, this); if (m != NULL) initNewModule(m); } void ModularSynth::newM_lfo() { M_lfo *m = new M_lfo(this); if (m != NULL) initNewModule(m); } void ModularSynth::newM_mphlfo() { M_mphlfo *m = new M_mphlfo(this); if (m != NULL) initNewModule(m); } void ModularSynth::newM_noise() { M_noise *m = new M_noise(this); if (m != NULL) initNewModule(m); } void ModularSynth::newM_noise2() { M_noise2 *m = new M_noise2(this); if (m != NULL) initNewModule(m); } void ModularSynth::newM_ringmod() { M_ringmod *m = new M_ringmod(this); if (m != NULL) initNewModule(m); } void ModularSynth::newM_inv() { M_inv *m = new M_inv(this); if (m != NULL) initNewModule(m); } void ModularSynth::newM_amp() { M_amp *m = new M_amp(this); if (m != NULL) initNewModule(m); } void ModularSynth::newM_ad(int outCount) { M_ad *m = new M_ad(outCount, this); if (m != NULL) initNewModule(m); } void ModularSynth::newM_ad_2() { newM_ad(2); } void ModularSynth::newM_ad_4() { newM_ad(4); } void ModularSynth::newM_ad_6() { newM_ad(6); } void ModularSynth::newM_vquant() { M_vquant *m = new M_vquant(this); if (m != NULL) initNewModule(m); } void ModularSynth::newM_conv() { M_conv *m = new M_conv(this); if (m != NULL) initNewModule(m); } void ModularSynth::newM_cvs() { M_cvs *m = new M_cvs(this); if (m != NULL) initNewModule(m); } void ModularSynth::newM_sh() { M_sh *m = new M_sh(this); if (m != NULL) initNewModule(m); } void ModularSynth::newM_vcswitch() { M_vcswitch *m = new M_vcswitch(this); if (m != NULL) initNewModule(m); } void ModularSynth::newM_slew() { M_slew *m = new M_slew(this); if (m != NULL) initNewModule(m); } void ModularSynth::newM_quantizer() { M_quantizer *m = new M_quantizer(this); if (m != NULL) initNewModule(m); } void ModularSynth::newM_scquantizer(QString *p_scalaName) { M_scquantizer *m = new M_scquantizer(this, p_scalaName); if (m != NULL) initNewModule(m); } void ModularSynth::newM_scquantizer() { M_scquantizer *m = new M_scquantizer(this); if (m != NULL) initNewModule(m); } void ModularSynth::newM_delay() { M_delay *m = new M_delay(this); if (m != NULL) initNewModule(m); } void ModularSynth::newM_mix(int in_channels) { M_mix *m = new M_mix(in_channels, this); if (m != NULL) initNewModule(m); } void ModularSynth::newM_function(int functionCount) { M_function *m = new M_function(functionCount, this); if (m != NULL) initNewModule(m); } void ModularSynth::newM_function_1() { newM_function(1); } void ModularSynth::newM_function_2() { newM_function(2); } void ModularSynth::newM_function_4() { newM_function(4); } void ModularSynth::newM_stereomix(int in_channels) { M_stereomix *m = new M_stereomix(in_channels, this); if (m != NULL) initNewModule(m); } void ModularSynth::newM_mix_2() { newM_mix(2); } void ModularSynth::newM_mix_4() { newM_mix(4); } void ModularSynth::newM_mix_8() { newM_mix(8); } void ModularSynth::newM_stereomix_2() { newM_stereomix(2); } void ModularSynth::newM_stereomix_4() { newM_stereomix(4); } void ModularSynth::newM_stereomix_8() { newM_stereomix(8); } void ModularSynth::newM_ladspa(int p_ladspaDesFuncIndex, int n, bool p_newLadspaPoly, bool p_extCtrlPorts) { QString qs; qs = synthdata->ladspaLib.at(p_ladspaDesFuncIndex).desc.at(n)->Name; M_ladspa *m = new M_ladspa(this, p_ladspaDesFuncIndex, n, p_newLadspaPoly, p_extCtrlPorts); if (m != NULL) initNewModule(m); } void ModularSynth::newM_wavout() { M_wavout *m = new M_wavout(this); if (m != NULL) { synthdata->wavoutModuleList.append(m); initNewModule(m); } } void ModularSynth::newM_midiout() { M_midiout *m = new M_midiout(this); if (m != NULL) { synthdata->midioutModuleList.append(m); initNewModule(m); } } void ModularSynth::newM_pcmout() { int k; M_pcmout *m; k = synthdata->find_play_mod (0); if (k >= 0) { m = new M_pcmout (this, 2 * k); if (m != NULL) { initNewModule(m); synthdata->set_play_mod (k, m); } } else qWarning(QObject::tr("All available output ports are in use").toUtf8()); } void ModularSynth::newM_pcmin() { int k; M_pcmin *m; k = synthdata->find_capt_mod (0); if (k >= 0) { m = new M_pcmin(this, 2 * k); if (m != NULL) { initNewModule(m); synthdata->set_capt_mod (k, m); } } else qWarning(QObject::tr("All available input ports are in use").toUtf8()); } void ModularSynth::newM_scope() { M_scope *m = new M_scope(this); if (m != NULL) { synthdata->scopeModuleList.append(m); initNewModule(m); } } void ModularSynth::newM_spectrum() { M_spectrum *m = new M_spectrum(this); if (m != NULL) { #ifdef OUTDATED_CODE synthdata->spectrumModuleList.append(m); #endif initNewModule(m); } } void ModularSynth::newM_vcf() { M_vcf *m = new M_vcf(this); if (m != NULL) initNewModule(m); } //========================================== End of adding module functions void ModularSynth::resizeTextEdit(const QPoint& pos) { int l1; TextEdit *te; int cx, cy; for (l1 = 0; l1 < listTextEdit.count(); ++l1) { if ((te = listTextEdit.at(l1)) == sender()) { cx = pos.x(); cy = pos.y(); if ((cx > 200) && (cy > 170)) { te->setFixedSize(cx + 3, cy + 3); } } } } // selecting and connecting ports: void ModularSynth::portSelected(Port* p) { if (p == NULL) return; if (p->isInPort() && p->hasConnectedPort()) { qApp->beep(); } else if (selectedPort == NULL) { selectedPort = p; p->setHighlighted(true); } else if (selectedPort == p) { p->setHighlighted(false); selectedPort = NULL; } else if (selectedPort->module == p->module) { qApp->beep(); } else if (((selectedPort->isInPort()) && (!p->isInPort())) || ((p->isInPort()) && (!selectedPort->isInPort()))) { selectedPort->connectTo(p); p->connectTo(selectedPort); p->setHighlighted(false); selectedPort->setHighlighted(false); selectedPort = NULL; redrawPortConnections(); } else qApp->beep(); } void ModularSynth::deleteModule() { Module *m; m = (Module *)sender(); listModule.removeAll(m); m->Delete(); modified = true; } void ModularSynth::deleteTextEdit() { TextEdit *t = dynamic_cast(sender()); listTextEdit.removeAll(t); t->deleteLater(); } void ModularSynth::deleteTextEdit(TextEdit *te) { delete(te); } bool ModularSynth::clearConfig(bool restart) { int l1; bool restartSynth = synthdata->doSynthesis; stopSynth(); for (l1 = 0; l1 < listModule.count(); ++l1) listModule.at(l1)->Delete(); listModule.clear(); guiWidget->clearGui(); for (l1 = 0; l1 < listTextEdit.count(); ++l1) { deleteTextEdit(listTextEdit.at(l1)); } listTextEdit.clear(); synthdata->moduleID = 0; synthdata->moduleCount = 0; if (restartSynth && restart) startSynth(); synthdata->initVoices(); update(); return restartSynth; } //#################################################### Start persistence static int Fscanf(FILE *f, const char *format, ...) { va_list argList; va_start(argList, format); return vfscanf(f, format, argList); } static void setColor(FILE *f, QColor &c) { int r, g, b; Fscanf(f, "%d", &r); Fscanf(f, "%d", &g); Fscanf(f, "%d", &b); c = QColor(r, g, b); } void ModularSynth::loadColors() { QString config_fn, qs; FILE *f; char sc[2048]; config_fn = QFileDialog::getOpenFileName(this, tr("Load Colors"), synthdata->loadPath, tr("AlsaModularSynth Color files") + " (*" + COLOREXT + ")"); if (config_fn.isEmpty()) return; if (!(f = fopen(config_fn.toLatin1().constData(), "r"))) { QMessageBox::information( this, "AlsaModularSynth", tr("Could not open file.")); } else { while (Fscanf(f, "%s", sc) != EOF) { qs = QString(sc); if (qs.contains("ColorBackground", Qt::CaseInsensitive)) { setColor(f, synthdata->colorBackground); } else if (qs.contains("ColorModuleBackground", Qt::CaseInsensitive)) { setColor(f, synthdata->colorModuleBackground); } else if (qs.contains("ColorModuleBorder", Qt::CaseInsensitive)) { setColor(f, synthdata->colorModuleBorder); } else if (qs.contains("ColorModuleFont", Qt::CaseInsensitive)) { setColor(f, synthdata->colorModuleFont); } else if (qs.contains("ColorJack", Qt::CaseInsensitive)) { setColor(f, synthdata->colorJack); } else if (qs.contains("ColorCable", Qt::CaseInsensitive)) { setColor(f, synthdata->colorCable); } } updateColors(); fclose(f); } } void ModularSynth::saveColors() { FILE *f; QString config_fn, qs; config_fn = QFileDialog::getSaveFileName(this, tr("Save Colors"), synthdata->savePath, tr("AlsaModularSynth Color files") + " (*" + COLOREXT + ")"); if (config_fn.isEmpty()) return; /*check for file extension*/ if (!config_fn.endsWith(COLOREXT)) config_fn.append(COLOREXT); if (!(f = fopen(config_fn.toLatin1().constData(), "w"))) { QMessageBox::information( this, "AlsaModularSynth", tr("Could not save file.")); } else { fprintf(f, "ColorBackground %d %d %d\n", synthdata->colorBackground.red(), synthdata->colorBackground.green(), synthdata->colorBackground.blue()); fprintf(f, "ColorModuleBackground %d %d %d\n", synthdata->colorModuleBackground.red(), synthdata->colorModuleBackground.green(), synthdata->colorModuleBackground.blue()); fprintf(f, "ColorModuleBorder %d %d %d\n", synthdata->colorModuleBorder.red(), synthdata->colorModuleBorder.green(), synthdata->colorModuleBorder.blue()); fprintf(f, "ColorModuleFont %d %d %d\n", synthdata->colorModuleFont.red(), synthdata->colorModuleFont.green(), synthdata->colorModuleFont.blue()); fprintf(f, "ColorJack %d %d %d\n", synthdata->colorJack.red(), synthdata->colorJack.green(), synthdata->colorJack.blue()); fprintf(f, "ColorCable %d %d %d\n", synthdata->colorCable.red(), synthdata->colorCable.green(), synthdata->colorCable.blue()); fclose(f); } } void ModularSynth::load(QTextStream& ts) { int moduleID = 0; int index = 0; int midiSign = 1; M_typeEnum M_type; int value, x, y, w, h, subID1, subID2; int index1, index2, moduleID1, moduleID2; int type, ch, param, sliderMin, sliderMax; int red1, green1, blue1, red2, green2, blue2; QString qs, qs2, ladspaLibName, pluginName, para, scalaName; bool isLog, ladspaLoadErr, commentFlag, followConfig; int newLadspaPolyFlag = 0; int textEditID; Module *m; int currentProgram; QStringList tokens; followConfig = midiWidget->followConfig; midiWidget->followConfig = false; currentProgram = -1; bool restartSynth = clearConfig(false); ladspaLoadErr = false; commentFlag = false; loadingPatch = true; while (!ts.atEnd()) { qs = ts.readLine(); if (qs.startsWith("#PARA#", Qt::CaseInsensitive)) commentFlag = true; else if (qs.startsWith("#ARAP#", Qt::CaseInsensitive)) commentFlag = false; // Module // Module <-> // Module // 0 1 2 3 4 5 6 7 else if (qs.startsWith("Module", Qt::CaseInsensitive) && !commentFlag) { tokens = qs.split(' '); M_type = (M_typeEnum)tokens[1].toInt(); moduleID = tokens[2].toInt(); newBoxPos.setX(tokens[3].toInt()); newBoxPos.setY(tokens[4].toInt()); switch (M_type) { case M_type_ladspa: newLadspaPolyFlag = tokens[5].toInt(); ladspaLibName = tokens[6]; pluginName = qs.section(' ', 7); qWarning(tr("Loading LADSPA plugin \"%1\" from library \"%2\".") .arg(pluginName).arg(ladspaLibName).toUtf8().constData()); if (!synthdata->getLadspaIDs(ladspaLibName, pluginName, &subID1, &subID2)) { QMessageBox::information(this, "AlsaModularSynth", tr("Could not find LADSPA plugin " "\"%1\" from library \"%2\".") .arg(pluginName).arg(ladspaLibName)); ladspaLoadErr = true; } break; case M_type_scquantizer: case M_type_scmcv: scalaName = tokens[5]; break; default: subID1 = tokens[5].toInt(); subID2 = tokens[6].toInt(); break; } switch(M_type) { case M_type_custom: break; case M_type_vco: newM_vco(); break; case M_type_vco2: newM_vco2(); break; case M_type_vca: if (subID1) newM_vca_exp(); else newM_vca_lin(); break; case M_type_vcf: newM_vcf(); break; case M_type_lfo: newM_lfo(); break; case M_type_mphlfo: newM_mphlfo(); break; case M_type_noise: newM_noise(); break; case M_type_noise2: newM_noise2(); break; case M_type_delay: newM_delay(); break; case M_type_seq: newM_seq(subID1); break; case M_type_env: newM_env(); break; case M_type_vcenv: newM_vcenv(); break; case M_type_vcenv2: newM_vcenv2(); break; case M_type_vcdoubledecay: newM_vcdoubledecay(); break; case M_type_vcpanning: newM_vcpanning(); break; case M_type_advenv: newM_advenv(); break; case M_type_mcv: newM_mcv(); break; case M_type_advmcv: newM_advmcv(); break; case M_type_scmcv: newM_scmcv(&scalaName); break; case M_type_ringmod: newM_ringmod(); break; case M_type_inv: newM_inv(); break; case M_type_amp: newM_amp(); break; case M_type_vquant: newM_vquant(); break; case M_type_conv: newM_conv(); break; case M_type_sh: newM_sh(); break; case M_type_vcswitch: newM_vcswitch(); break; case M_type_cvs: newM_cvs(); break; case M_type_slew: newM_slew(); break; case M_type_quantizer: newM_quantizer(); break; case M_type_scquantizer: newM_scquantizer(&scalaName); break; case M_type_ad: newM_ad(subID1); break; case M_type_mix: newM_mix(subID1); break; case M_type_function: newM_function(subID1); break; case M_type_stereomix: newM_stereomix(subID1); break; case M_type_vcorgan: newM_vcorgan(subID1); break; case M_type_dynamicwaves: newM_dynamicwaves(subID1); break; case M_type_ladspa: if (!ladspaLoadErr) { newM_ladspa(subID1, subID2, newLadspaPolyFlag & 2, newLadspaPolyFlag & 1); } break; case M_type_pcmout: case M_type_jackout: newM_pcmout(); break; case M_type_pcmin: case M_type_jackin: newM_pcmin(); break; case M_type_wavout: newM_wavout(); break; case M_type_midiout: newM_midiout(); break; case M_type_scope: newM_scope(); break; case M_type_spectrum: newM_spectrum(); break; } if (listModule.count() > 0) { m = listModule.last(); if (m != NULL) { m->setModuleId(moduleID); midiWidget->addModule(m); } } if (synthdata->moduleID <= moduleID) { synthdata->moduleID = moduleID + 1; } } // Comment <..> else if (qs.startsWith("Comment", Qt::CaseInsensitive) && !commentFlag) { tokens = qs.split(' '); textEditID = tokens[1].toInt(); //textEditID = tokens[2].toInt(); newBoxPos.setX(tokens[3].toInt()); newBoxPos.setY(tokens[4].toInt()); w = tokens[5].toInt(); h = tokens[6].toInt(); new_textEdit(w, h); } } // end of file reached, we start again looking for other tags ts.seek(0); while (!ts.atEnd()) { qs = ts.readLine(); tokens = qs.split(' '); // Port if (qs.startsWith("Port", Qt::CaseInsensitive)) { index1 = tokens[1].toInt(); index2 = tokens[2].toInt(); moduleID1 = tokens[3].toInt(); moduleID2 = tokens[4].toInt(); Module* mod1 = NULL; Module* mod2 = NULL; Port* inport = NULL; Port* outport = NULL; mod1 = getModuleWithId(moduleID1); if (mod1 == NULL) continue; mod2 = getModuleWithId(moduleID2); if (mod2 == NULL) continue; inport = mod1->getInPortWithIndex(index1); if (inport == NULL) continue; if (inport->hasConnectedPort()) { qWarning(tr("Input port %1 of module %2 is already connected. " "New connection to module %3 ignored.") .arg(index1).arg(moduleID1).arg(moduleID2).toUtf8()); continue; } outport = mod2->getOutPortWithIndex(index2); if (outport == NULL) continue; inport->connectTo(outport); outport->connectTo(inport); } // ColorP else if (qs.startsWith("ColorP", Qt::CaseInsensitive)) { index1 = tokens[1].toInt(); index2 = tokens[2].toInt(); moduleID1 = tokens[3].toInt(); moduleID2 = tokens[4].toInt(); red1 = tokens[5].toInt(); green1 = tokens[6].toInt(); blue1 = tokens[7].toInt(); red2 = tokens[8].toInt(); green2 = tokens[9].toInt(); blue2 = tokens[10].toInt(); Module* mod1 = NULL; Module* mod2 = NULL; Port* inport = NULL; Port* outport = NULL; mod1 = getModuleWithId(moduleID1); if (mod1 == NULL) continue; mod2 = getModuleWithId(moduleID2); if (mod2 == NULL) continue; inport = mod1->getInPortWithIndex(index1); if (inport == NULL) continue; outport = mod2->getOutPortWithIndex(index2); if (outport == NULL) continue; inport->connectTo(outport); outport->connectTo(inport); inport->jackColor = QColor(red1, green1, blue1); inport->cableColor = QColor(red2, green2, blue2); } // FSlider // 0 1 2 3 4 5 6 7 else if (qs.startsWith("FSlider", Qt::CaseInsensitive)) { moduleID = tokens[1].toInt(); index = tokens[2].toInt(); value = tokens[3].toInt(); isLog = (tokens[4].toInt() == 1); sliderMin = tokens[5].toInt(); sliderMax = tokens[6].toInt(); if (tokens.count() > 6) midiSign = tokens[7].toInt(); m = getModuleWithId(moduleID); if (m != NULL) { MidiSlider* ms = m->configDialog->getMidiSlider(index); if (ms != NULL) { MidiControllableFloat &mcAbleF = dynamic_cast (ms->mcAble); mcAbleF.setLog(isLog); mcAbleF.setVal(value, NULL); mcAbleF.setNewMin(sliderMin); mcAbleF.setNewMax(sliderMax); mcAbleF.midiSign = midiSign; /*listModule.at(l1)->configDialog->midiSliderList.at(index)->setLogMode(isLog); listModule.at(l1)->configDialog->midiSliderList.at(index)->updateValue(value); listModule.at(l1)->configDialog->midiSliderList.at(index)->setLogMode(isLog); listModule.at(l1)->configDialog->midiSliderList.at(index)->setNewMin(sliderMin); listModule.at(l1)->configDialog->midiSliderList.at(index)->setNewMax(sliderMax); listModule.at(l1)->configDialog->midiSliderList.at(index)->midiSign = midiSign;*/ } } } // integer slider // ISlider else if (qs.startsWith("ISlider", Qt::CaseInsensitive)) { moduleID = tokens[1].toInt(); index = tokens[2].toInt(); value = tokens[3].toInt(); midiSign = tokens[4].toInt(); m = getModuleWithId(moduleID); if (m != NULL) { IntMidiSlider* ims = m->configDialog->getIntMidiSlider(index); if (ims != NULL) { MidiControllableBase &mcAble = ims->mcAble; mcAble.midiSign = midiSign; mcAble.setVal(value, NULL); /* listModule.at(l1)->configDialog->intMidiSliderList.at(index)->midiSign = midiSign; listModule.at(l1)->configDialog->intMidiSliderList.at(index)->updateValue((int)value); listModule.at(l1)->configDialog->intMidiSliderList.at(index)->slider->setValue((int)value);*/ } } } // float slider // LSlider else if (qs.startsWith("LSlider", Qt::CaseInsensitive)) { moduleID = tokens[1].toInt(); index = tokens[2].toInt(); value = tokens[3].toInt(); midiSign = tokens[4].toInt(); m = getModuleWithId(moduleID); if (m != NULL) { IntMidiSlider* ims = m->configDialog->getFloatIntMidiSlider(index); if (ims != NULL) { MidiControllableBase &mcAble = ims->mcAble; mcAble.midiSign = midiSign; mcAble.setVal(value, NULL); /*listModule.at(l1)->configDialog->floatIntMidiSliderList.at(index)->midiSign = midiSign; listModule.at(l1)->configDialog->floatIntMidiSliderList.at(index)->updateValue((int)value); listModule.at(l1)->configDialog->floatIntMidiSliderList.at(index)->slider->setValue((int)value);*/ } } } else if (qs.startsWith("ComboBox", Qt::CaseInsensitive)) { moduleID = tokens[1].toInt(); index = tokens[2].toInt(); value = tokens[3].toInt(); midiSign = tokens[4].toInt(); m = getModuleWithId(moduleID); if (m != NULL) { MidiComboBox* mcb = m->configDialog->getMidiComboBox(index); if (mcb != NULL) { MidiControllableNames &mcAble = dynamic_cast(mcb->mcAble); mcAble.midiSign = midiSign; mcAble.setVal(value, NULL); } } } else if (qs.startsWith("CheckBox", Qt::CaseInsensitive)) { moduleID = tokens[1].toInt(); index = tokens[2].toInt(); value = tokens[3].toInt(); midiSign = tokens[4].toInt(); m = getModuleWithId(moduleID); if (m != NULL) { MidiCheckBox* mcb = m->configDialog->getMidiCheckBox(index); if (mcb != NULL) { mcb->checkBox->setChecked(value == 1); mcb->mcAble.midiSign = midiSign; } } } else if (qs.startsWith("Function", Qt::CaseInsensitive)) { moduleID = tokens[1].toInt(); index = tokens[2].toInt(); subID1 = tokens[3].toInt(); subID2 = tokens[4].toInt(); m = getModuleWithId(moduleID); if (m != NULL) { Function* fnc = m->configDialog->getFunction(index); if (fnc != NULL) fnc->setPointCount(subID2); } } else if (qs.startsWith("Point", Qt::CaseInsensitive)) { moduleID = tokens[1].toInt(); index = tokens[2].toInt(); subID1 = tokens[3].toInt(); subID2 = tokens[4].toInt(); x = tokens[5].toInt(); y = tokens[6].toInt(); m = getModuleWithId(moduleID); if (m != NULL) { Function* fnc = m->configDialog->getFunction(index); if (fnc != NULL) fnc->setPoint(subID1, subID2, x, y); } } else if (qs.contains("MIDI", Qt::CaseInsensitive)) { moduleID = tokens[1].toInt(); index = tokens[2].toInt(); type = tokens[3].toInt(); ch = tokens[4].toInt(); param = tokens[5].toInt(); MidiControllerKey mck(type, ch, param); midiWidget->addMidiController(mck); // MidiControllerKey const midiController = // new MidiController(type, ch, param); // if (!midiWidget->midiControllerList.contains(midiController)) { // *midiWidget->midiController(MidiController(type, ch, param)); // } else { // QList::iterator midiIndex = // midiWidget->midiControllerList.find(midiController); // delete(midiController); // midiController = *midiIndex; // } if (qs.startsWith("FSMIDI", Qt::CaseInsensitive)) { m = getModuleWithId(moduleID); if (m != NULL) { MidiSlider* ms = m->configDialog->getMidiSlider(index); if (ms != NULL) ms->mcAble.connectToController(mck); } } else if (qs.startsWith("ISMIDI", Qt::CaseInsensitive)) { m = getModuleWithId(moduleID); if (m != NULL) { IntMidiSlider* ims = m->configDialog->getIntMidiSlider(index); if (ims != NULL) ims->mcAble.connectToController(mck); } } else if (qs.startsWith("LSMIDI", Qt::CaseInsensitive)) { m = getModuleWithId(moduleID); if (m != NULL) { IntMidiSlider* ims = m->configDialog->getFloatIntMidiSlider(index); if (ims != NULL) ims->mcAble.connectToController(mck); } } else if (qs.startsWith("CMIDI", Qt::CaseInsensitive)) { m = getModuleWithId(moduleID); if (m != NULL) { MidiComboBox* mcb = m->configDialog->getMidiComboBox(index); if (mcb != NULL) mcb->mcAble.connectToController(mck); } } else if (qs.startsWith("TMIDI", Qt::CaseInsensitive)) { m = getModuleWithId(moduleID); if (m != NULL) { MidiCheckBox* mcb = m->configDialog->getMidiCheckBox(index); if (mcb != NULL) mcb->mcAble.connectToController(mck); } } else qWarning(tr("Unknown MIDI controller tag found: %1") .arg(qs).toUtf8()); } // #PARA# <..> else if (qs.startsWith("#PARA#", Qt::CaseInsensitive)) { textEditID = tokens[1].toInt(); //textEditID = tokens[2].toInt(); index = tokens[3].toInt(); qs = ts.readLine(); if (!qs.startsWith("#ARAP#", Qt::CaseInsensitive)) { para = qs + ' '; } else { para = " "; } while (!qs.startsWith("#ARAP#", Qt::CaseInsensitive)) { qs = ts.readLine(); if (!qs.startsWith("#ARAP#", Qt::CaseInsensitive)) { para.append(qs + " "); } } TextEdit* te = getTextEditAt(textEditID); if (te != NULL) te->textEdit->append(para); } // Instrument tags // Tab "TabName" else if (qs.startsWith("Tab", Qt::CaseInsensitive)) { QRegExp rx("\"([^\"]+)\""); int pos = rx.indexIn(qs); if (pos != -1) guiWidget->addTab(rx.cap(1)); else qWarning(QObject::tr("No title for tab '%1' found.") .arg(qs).toUtf8()); } // Frame <"FrameName"> else if (qs.startsWith("Frame", Qt::CaseInsensitive)) { QRegExp rx("\"([^\"]+)\""); int pos = rx.indexIn(qs); if (pos != -1) { pos += rx.matchedLength(); QString number = qs.mid(pos); number = number.trimmed(); guiWidget->setTab(number.toInt()); guiWidget->addFrame(rx.cap(1)); } else qWarning(QObject::tr("No data for frame '%1' found.") .arg(qs).toUtf8()); } // Parameter <"ParamName"> // Parameter <"ParamName"> else if (qs.startsWith("Parameter", Qt::CaseInsensitive)) { QRegExp rx("\"([^\"]+)\""); int pos = rx.indexIn(qs); if (pos != -1) { pos += rx.matchedLength(); QString numbers = qs.mid(pos); numbers = numbers.trimmed(); tokens = numbers.split(' '); if (tokens.isEmpty()) { qWarning(QObject::tr("No parameter values found.").toUtf8()); continue; } qs = rx.cap(1); moduleID = tokens[0].toInt(); index = tokens[1].toInt(); } else { qWarning(QObject::tr("No parameter name '%1' found.") .arg(qs).toUtf8()); continue; } m = getModuleWithId(moduleID); if (m != NULL) { MidiControllableBase* mcb = m->getMidiControlableBase(index); if (mcb != NULL) { guiWidget->addParameter(mcb, qs); // check for additional parameters of float sliders if (tokens.count() == 5) { MidiControllableFloat *mcAbleF = dynamic_cast(mcb); if (mcAbleF != NULL) { sliderMin = tokens[2].toInt(); sliderMax = tokens[3].toInt(); isLog = (tokens[4].toInt() == 1); mcAbleF->setNewMin(sliderMin); mcAbleF->setNewMax(sliderMax); mcAbleF->setLog(isLog); /*listModule.at(l1)->configDialog->midiGUIcomponentList.at(index)->componentType == GUIcomponentType_slider)*/ //!! ((MidiSlider *)guiWidget->parameterList.last())->setNewMin(sliderMin); // ((MidiSlider *)guiWidget->parameterList.last())->setNewMax(sliderMax); // ((MidiSlider *)guiWidget->parameterList.last())->setLogMode(isLog); } else qWarning("MIDI controllable at index %d for " "parameter '%s' is no float parameter.", index, qs.toUtf8().constData()); } else qWarning("Parameter list too short for '%s' (index = %d).", qs.toUtf8().constData(), index); } else qWarning("No MIDI controllable at index %d found.", index); } else qWarning("No module with ID %d for parameter %s found.", moduleID, qs.toUtf8().constData()); } else if (qs.startsWith("Program", Qt::CaseInsensitive)) { index = tokens[1].toInt(); value = tokens[2].toInt(); if (index != currentProgram) { currentProgram = index; guiWidget->setPresetCount(currentProgram + 1); } guiWidget->presetList[currentProgram].append(value); } else if (qs.startsWith("PresetName", Qt::CaseInsensitive)) { QRegExp rx("\"([^\"]+)\""); int pos = rx.indexIn(qs); if (pos != -1) qs = rx.cap(1); else { qWarning(QObject::tr("No name for preset '%1' found.") .arg(qs).toUtf8()); continue; } qs2.sprintf("%3d", guiWidget->presetNameList.count()); guiWidget->presetNameList.append(qs2+qs); } /*For debugging only, 'Module' and 'Comment' will also apear else qWarning(tr("Unknown tag found: %1").arg(qs).toUtf8()); */ } // end while loop if (guiWidget->presetCount) guiWidget->setCurrentPreset(0); loadingPatch = false; adjustSize(); update(); midiWidget->setActiveMidiControllers(); if (restartSynth) startSynth(); if (verbose) { StdOut << "synthdata->periodsize = " << synthdata->periodsize << endl; StdOut << "synthdata->cyclesize = " << synthdata->cyclesize << endl; StdOut << "Module::portmemAllocated = " << Module::portmemAllocated << endl; } midiWidget->followConfig = followConfig; guiWidget->refreshGui(); modified = false; } void ModularSynth::save(QTextStream& ts) { int l1, l2; int offX = 0, offY = 0; QString qs; // adjust modules x position if (childrenRect().left() > 100) offX = childrenRect().left() - 100; // adjust modules y position if (childrenRect().top() > 66) offY = childrenRect().top() - 66; // save module parameters for (l1 = 0; l1 < listModule.count(); ++l1) { ts << "Module " << (int)listModule.at(l1)->M_type << ' ' << listModule.at(l1)->moduleID << ' ' << listModule.at(l1)->x() - offX << ' ' << listModule.at(l1)->y() - offY << ' '; switch(listModule.at(l1)->M_type) { case M_type_custom: break; case M_type_vca: ts << (int)((M_vca *)listModule.at(l1))->expMode << " 0" << endl; break; case M_type_ad: case M_type_function: ts << listModule.at(l1)->outPortCount << " 0" << endl; break; case M_type_mix: ts << ((M_mix *)listModule.at(l1))->in_channels << " 0" << endl; break; case M_type_stereomix: ts << ((M_stereomix *)listModule.at(l1))->in_channels << " 0" << endl; break; case M_type_vcorgan: ts << ((M_vcorgan *)listModule.at(l1))->oscCount << " 0" << endl; break; case M_type_dynamicwaves: ts << ((M_dynamicwaves *)listModule.at(l1))->oscCount << " 0" << endl; break; case M_type_seq: ts << ((M_seq *)listModule.at(l1))->seqLen << " 0" << endl; break; case M_type_ladspa: ts << 2 * (int)((M_ladspa *)listModule.at(l1))->isPoly + (int)((M_ladspa *)listModule.at(l1))->hasExtCtrlPorts << ' ' << synthdata->ladspaLib.at(((M_ladspa *)listModule.at(l1)) ->ladspaDesFuncIndex).name << ' ' << ((M_ladspa *)listModule.at(l1))->pluginName << endl; break; case M_type_scquantizer: qs = ((M_scquantizer *)listModule.at(l1))->sclname; if (qs.contains('/')) { qs = qs.mid(qs.lastIndexOf('/') + 1); } ts << qs << endl; break; case M_type_scmcv: qs = ((M_scmcv *)listModule.at(l1))->sclname; if (qs.contains('/')) { qs = qs.mid(qs.lastIndexOf('/') + 1); } ts << qs << endl; break; default: ts << "0 0" << endl; break; } listModule.at(l1)->save(ts); } // save comment window content for (l1 = 0; l1 < listTextEdit.count(); ++l1) { TextEdit *te = listTextEdit.at(l1); if (te != NULL) { ts << "Comment " << te->textEditID << ' ' << l1 << ' ' << te->x() - offX << ' ' << te->y() - offY << ' ' << te->width() << ' ' << te->height() << endl; QTextDocument *tD = te->textEdit->document(); QTextBlock tB = tD->begin(); for (l2 = 0; l2 < tD->blockCount(); ++l2, tB = tB.next()) { ts << "#PARA# " << te->textEditID << ' ' << l1 << ' ' << l2 << endl; ts << tB.text() << endl; ts << "#ARAP#" << endl; } } } // save MIDI controller window configuration guiWidget->save(ts); modified = false; } //====================================================== End persistence void ModularSynth::allVoicesOff() { synthdata->allNotesOff(); } void ModularSynth::loadPreferences(QString& line) { prefWidget->loadPref(line); refreshColors(); } void ModularSynth::savePreferences(QTextStream& ts) { prefWidget->savePref(ts); } void ModularSynth::showContextMenu(const QPoint& pos) { contextMenu->popup(mapToGlobal(pos)); } void ModularSynth::refreshColors() { for (int l1 = 0; l1 < listModule.count(); ++l1) { Module* m = listModule[l1]; if (m != NULL) m->getColors(); } prefWidget->refreshColors(); QPalette p = palette(); p.setColor(backgroundRole(), synthdata->colorBackground); setAutoFillBackground(true); setPalette(p); update(); } void ModularSynth::updateColors() { synthdata->colorPortFont1 = synthdata->colorModuleFont; synthdata->colorPortFont2 = QColor(255, 240, 140); prefWidget->recallColors(); refreshColors(); } void ModularSynth::moveAllBoxes(const QPoint &delta) { modified = true; if (delta.isNull()) return; int i; for (i = 0; i < listModule.count(); ++i) { Box *b = listModule[i]; b->move(b->pos() + delta); } for (i = 0; i < listTextEdit.count(); ++i) { Box *b = listTextEdit[i]; b->move(b->pos() + delta); } } bool ModularSynth::isModified() { return modified; } QString ModularSynth::getLoadPath() { return synthdata->loadPath; } void ModularSynth::setLoadPath(const QString& sp) { synthdata->loadPath = sp; } QString ModularSynth::getSavePath() { return synthdata->savePath; } void ModularSynth::setSavePath(const QString& sp) { synthdata->savePath = sp; } Module* ModularSynth::getModuleWithId(int id) { Module* m = NULL; for (int i = 0; i < listModule.count(); ++i) { m = listModule.at(i); if (m != NULL && m->hasModuleId(id)) { break; } } if (m == NULL) qWarning("No module with id %d found.", id); return m; } TextEdit* ModularSynth::getTextEditAt(int idx) { TextEdit* te = NULL; if ((idx + 1) > listTextEdit.count()) qWarning("TextEdit index out of range (value = %d)", idx); else te = listTextEdit.at(idx); return te; }