computerscare-vcv-modules

computerscare modules for VCV Rack
Log | Files | Refs

commit 40219f9d8154132113ac0277d72e6b421b24cc62
parent 4451ae77e089c4e3aa0fcd3ac637ae0d592cbe97
Author: Adam M <aemalone@gmail.com>
Date:   Wed, 10 Jul 2019 20:44:04 -0500

Pequencer panel, pools CV for numChannels and rotation

Diffstat:
Mres/ComputerscareSolyPequencerPanel.svg | 167++++++++++++++++++++++++++++++++++++++++++++-----------------------------------
Msrc/ComputerscareSolyPequencer.cpp | 66++++++++++++++++++++++++++++++++++++++++++------------------------
Msrc/ComputerscareTolyPools.cpp | 23++++++++++++++++-------
3 files changed, 151 insertions(+), 105 deletions(-)

diff --git a/res/ComputerscareSolyPequencerPanel.svg b/res/ComputerscareSolyPequencerPanel.svg @@ -15,7 +15,7 @@ version="1.1" id="svg8" inkscape:version="0.92.2 5c3e80d, 2017-08-06" - sodipodi:docname="TolyPoolsPanel.svg" + sodipodi:docname="ComputerscareSolyPequencerPanel.svg" style="enable-background:new"> <defs id="defs2" /> @@ -26,9 +26,9 @@ borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:zoom="1" - inkscape:cx="63.135577" - inkscape:cy="239.92956" + inkscape:zoom="5.6568542" + inkscape:cx="45.272139" + inkscape:cy="347.36359" inkscape:document-units="mm" inkscape:current-layer="g1669" showgrid="false" @@ -43,7 +43,7 @@ inkscape:window-y="0" inkscape:window-maximized="0" inkscape:snap-global="false" - showguides="false" + showguides="true" inkscape:lockguides="false" /> <metadata id="metadata5"> @@ -53,7 +53,7 @@ <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title></dc:title> + <dc:title /> </cc:Work> </rdf:RDF> </metadata> @@ -142,12 +142,12 @@ <path inkscape:connector-curvature="0" id="path1647" - d="m 0,198.04581 h 14.364523 l -0.738749,15.65303 0.93662,65.71451 0.765887,10.38104 -0.496036,7.11206 L 0,296.99999 Z" - style="opacity:1;vector-effect:none;fill:#d5d9d5;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.26300001;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" - sodipodi:nodetypes="cccccccc" /> + d="m 8.8786219,205.72349 -7.3856972,-7.67753 0.738749,15.65303 -0.93662,65.71451 -0.76588703,10.38104 0.308947,5.56858 1.45447203,1.27054 13.5938013,0.37061 0.0077,-89.15204 z" + style="opacity:1;vector-effect:none;fill:#ececec;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.26300001;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" + sodipodi:nodetypes="cccccccccc" /> <g aria-label="computerscare" - transform="matrix(0.579664,-0.0209809,0.12827949,1.4870391,-42.202497,-142.90507)" + transform="matrix(0.579664,-0.0209809,0.12827949,1.4870391,-39.63278,-143.10683)" style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" id="text1651"> <path @@ -202,162 +202,181 @@ inkscape:connector-curvature="0" sodipodi:nodetypes="cccccccccccccccccc" /> <path - d="m 24.81823,294.75924 c -0.297765,0.0229 -0.512808,0.0705 -0.64513,0.14291 -0.132332,0.0724 -0.219561,0.18524 -0.261686,0.33845 -0.03363,0.12213 -0.01763,0.21604 0.04798,0.28174 0.06728,0.0643 0.175023,0.0907 0.323232,0.0794 0.204311,-0.0157 0.386389,-0.0956 0.546234,-0.23957 0.161537,-0.14536 0.273146,-0.33019 0.334829,-0.55448 l 0.02101,-0.0766 z m 0.774145,-0.19853 -0.328455,1.19434 -0.368516,0.0282 0.08737,-0.31774 c -0.119089,0.13356 -0.249784,0.2357 -0.392086,0.30641 -0.141957,0.0694 -0.303742,0.11113 -0.485354,0.12512 -0.229693,0.0177 -0.39618,-0.0281 -0.499459,-0.13726 -0.101626,-0.1105 -0.124676,-0.26669 -0.06915,-0.46856 0.06476,-0.2355 0.197713,-0.41952 0.398859,-0.55206 0.202482,-0.13265 0.471302,-0.21186 0.806461,-0.23762 l 0.516775,-0.0398 0.0092,-0.0335 c 0.04352,-0.15825 0.02102,-0.27605 -0.0675,-0.35341 -0.08684,-0.0787 -0.231074,-0.11031 -0.4327,-0.0948 -0.128187,0.01 -0.256984,0.0338 -0.386391,0.0718 -0.129384,0.038 -0.22788,0.0181 -0.35582,0.0841 l 0.0572,-0.24589 c 0.148221,-0.0589 0.289013,-0.10504 0.422378,-0.13852 0.133697,-0.0347 0.260649,-0.0566 0.380855,-0.0659 0.324493,-0.025 0.54526,0.0349 0.662301,0.17963 0.117059,0.14469 0.131725,0.37653 0.044,0.69552 z" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.36754596" + d="m 25.665212,295.10899 c -0.1941,0.054 -0.312257,0.10596 -0.354462,0.15585 -0.04207,0.05 -0.02372,0.11001 0.05509,0.18011 0.06276,0.0559 0.140714,0.0927 0.233657,0.11026 0.09311,0.0168 0.18799,0.0117 0.284636,-0.0152 0.133445,-0.0369 0.205259,-0.0975 0.21601,-0.18141 0.01103,-0.0847 -0.04114,-0.17838 -0.156584,-0.28106 l -0.03944,-0.035 z m 0.406057,-0.19835 0.614749,0.54678 -0.240351,0.0668 -0.163556,-0.14546 c 0.01051,0.0734 -0.0093,0.13552 -0.05974,0.18624 -0.05105,0.0501 -0.135772,0.0917 -0.254165,0.1246 -0.149858,0.0416 -0.299712,0.0475 -0.450085,0.0174 -0.150056,-0.0308 -0.277153,-0.0925 -0.381061,-0.18495 -0.121229,-0.10781 -0.157762,-0.20435 -0.109641,-0.28962 0.04893,-0.0856 0.182741,-0.15865 0.401246,-0.21942 l 0.336894,-0.0937 -0.01733,-0.0154 c -0.08144,-0.0724 -0.180861,-0.11817 -0.298242,-0.1372 -0.117126,-0.0198 -0.241477,-0.0115 -0.372793,0.0251 -0.08293,0.0236 -0.157582,0.0524 -0.221976,0.0876 -0.06451,0.0351 -0.14856,0.0413 -0.191765,0.0881 l -0.133931,-0.11101 c 0.06296,-0.0467 0.129627,-0.087 0.200137,-0.12081 0.06977,-0.0345 0.143999,-0.0625 0.222273,-0.0844 0.21158,-0.0588 0.409919,-0.0669 0.595275,-0.024 0.185233,0.0428 0.360001,0.13725 0.52419,0.28329 z" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.23253006" id="path1721" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccccccccccccccccccccccccccccc" /> <path - d="m 27.811045,294.03187 q -0.04765,-0.0359 -0.114148,-0.0521 -0.06379,-0.0182 -0.149723,-0.0183 -0.304614,-6.2e-4 -0.541819,0.20246 -0.234523,0.20105 -0.370837,0.57993 l -0.423324,1.17649 -0.361236,-7.4e-4 0.803473,-2.23334 0.361237,7.5e-4 -0.124848,0.34694 q 0.186434,-0.20316 0.403183,-0.30051 0.217505,-0.0995 0.47719,-0.0989 0.0371,8e-5 0.07992,0.006 0.04318,0.005 0.09438,0.0146 z" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.37900135" + d="m 27.514831,294.15303 q -0.07262,-0.008 -0.14589,-0.003 -0.07244,0.003 -0.149744,0.0196 -0.273897,0.0573 -0.318248,0.19812 -0.04345,0.13941 0.149185,0.34445 l 0.598123,0.63668 -0.325616,0.0675 -1.135528,-1.20858 0.325618,-0.0675 0.176372,0.18775 q -0.0015,-0.13134 0.112216,-0.21833 0.112555,-0.0882 0.346309,-0.13692 0.03338,-0.007 0.07681,-0.0122 0.04272,-0.006 0.09681,-0.011 z" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.28914016" id="path1723" inkscape:connector-curvature="0" /> <path - d="m 29.712571,294.7854 -0.06094,0.16877 -1.603439,0.13193 c -0.07023,0.23754 -0.110719,0.28611 -0.02315,0.41121 0.08941,0.12391 0.253311,0.18583 0.491653,0.18595 0.138059,6e-5 0.277401,-0.016 0.418108,-0.0485 0.14201,-0.0325 0.508333,-0.14208 0.659478,-0.20707 l -0.117939,0.32633 c -0.147934,0.0525 -0.514377,0.15339 -0.659762,0.18081 -0.145379,0.0275 -0.287764,0.0411 -0.427099,0.041 -0.349049,-1.8e-4 -0.590562,-0.0978 -0.724584,-0.29298 -0.132697,-0.19514 -0.138963,-0.459 -0.01879,-0.79157 0.12432,-0.34382 0.319099,-0.61634 0.584612,-0.81755 0.267249,-0.20244 0.56498,-0.30358 0.893191,-0.30341 0.29435,1.4e-4 0.493835,0.0916 0.598514,0.27415 0.106411,0.18138 0.103144,0.42835 -0.0098,0.74092 z m -0.322894,-0.1014 c 0.06552,-0.18878 0.06466,-0.33947 -0.0028,-0.45204 -0.06612,-0.1126 -0.187772,-0.16891 -0.364898,-0.16901 -0.200575,-10e-5 -0.381115,0.0543 -0.541512,0.16293 -0.159132,0.1087 -0.116464,0.24257 -0.206093,0.4401 z" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.36754596" + d="m 29.829991,294.7366 -0.03251,0.15157 -1.417574,0.51715 c -0.03183,0.20931 -0.06171,0.2588 0.03299,0.33709 0.09614,0.0769 0.250962,0.0847 0.4644,0.0235 0.123539,-0.0353 0.246115,-0.0844 0.367797,-0.14616 0.122862,-0.0626 0.436317,-0.24472 0.563082,-0.33579 l -0.06292,0.29303 c -0.125473,0.08 -0.440245,0.25527 -0.566758,0.31469 -0.126529,0.0595 -0.252137,0.10689 -0.376829,0.14248 -0.312299,0.0895 -0.541189,0.0726 -0.68673,-0.05 -0.144224,-0.12314 -0.184296,-0.33401 -0.120205,-0.63263 0.06633,-0.30874 0.205047,-0.57813 0.416353,-0.80822 0.2127,-0.23151 0.465908,-0.38927 0.759628,-0.47325 0.263361,-0.075 0.453823,-0.0528 0.571414,0.0673 0.118947,0.11873 0.148245,0.31851 0.088,0.59916 z m -0.302126,9.4e-4 c 0.03399,-0.16883 0.01353,-0.28996 -0.06155,-0.36331 -0.07392,-0.0737 -0.190046,-0.0879 -0.348571,-0.0426 -0.179422,0.0516 -0.333913,0.14131 -0.463289,0.26992 -0.12818,0.12834 -0.07254,0.22521 -0.12693,0.40723 z" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.31916848" id="path1725" inkscape:connector-curvature="0" - sodipodi:nodetypes="ccccscccsscscscccccsccc" /> + sodipodi:nodetypes="ccccscccsscscscccccsccc" + inkscape:transform-center-x="0.23386084" + inkscape:transform-center-y="0.14031651" /> </g> <g id="g9547" - transform="matrix(0.21334155,-0.05917659,0,0.23311691,-1.9826542,289.22115)"> + transform="matrix(0.08836158,-0.05917659,0,0.23311691,0.11674111,292.05958)"> <g style="display:inline" inkscape:label="Layer 1" id="layer4" /> <path id="rect5872" - d="m 11.987289,9.3234482 h 7.991524 v 3.9957608 h -7.991524 z" + d="M 10.9608,0.03415352 26.864657,2.0426947 V 6.0384555 L 10.9608,4.0299144 Z" style="opacity:1;fill:#0f0f00;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" inkscape:connector-curvature="0" /> <path id="rect5874" - d="m 14.667374,10.662096 h 3.995763 v 1.331921 h -3.995763 z" + d="m 16.294412,2.0463977 7.95193,1.0042708 v 1.331921 l -7.95193,-1.0042708 z" style="opacity:1;fill:#ffffff;fill-opacity:0.98571424;stroke:#000000;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" inkscape:connector-curvature="0" /> <path id="rect5878" - d="m -29.323654,9.3234482 h 7.989551 v 3.9957608 h -7.989551 z" + d="M 45.461738,4.3913703 29.561807,2.383325 v 3.9957609 l 15.899931,2.0080452 z" style="opacity:1;fill:#0c0c00;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - transform="scale(-1,1)" inkscape:connector-curvature="0" /> <path id="rect5880" - d="m 26.64423,10.662096 -3.171232,0.209056 v 1.331921 l 3.171232,-0.209056 z" + d="M 40.129441,5.056588 33.818402,4.4686058 v 1.331921 l 6.311039,0.5879822 z" style="opacity:1;fill:#ffffff;fill-opacity:0.98571424;stroke:#000000;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" inkscape:connector-curvature="0" /> <path id="rect5882" - d="m 19.995058,14.667374 h 1.331921 v 3.995762 h -1.331921 z" + d="m 26.896986,7.3907034 2.650644,0.334757 v 3.9957616 l -2.650644,-0.334757 z" style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" inkscape:connector-curvature="0" /> <path id="rect5884" - d="m 20.888507,17.21991 2.579094,0.32072 v 1.33192 l -2.579094,-0.32072 z" + d="m 28.67503,10.167793 5.132631,0.968934 v 1.33192 L 28.67503,11.499713 Z" style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" inkscape:connector-curvature="0" /> <path id="rect5886" - d="m 11.954803,20.011301 h 2.696328 v 2.663842 h -2.696328 z" + d="m 10.896149,10.713841 5.365938,0.677679 v 2.663842 l -5.365938,-0.677679 z" style="opacity:1;fill:#000200;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" inkscape:connector-curvature="0" /> <path id="rect5888" - d="m 27.970341,20.011301 h 2.696327 v 2.663842 h -2.696327 z" + d="m 42.768522,14.739089 5.365935,0.677679 v 2.663842 l -5.365935,-0.677679 z" style="opacity:1;fill:#000200;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" inkscape:connector-curvature="0" /> <path id="rect5890" - d="m 14.651131,20.011301 h 13.351695 v 1.33192 H 14.651131 Z" + d="m 16.262087,11.39152 26.571083,3.355734 v 1.33192 L 16.262087,12.72344 Z" style="opacity:1;fill:#000200;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" inkscape:connector-curvature="0" /> </g> <path - style="fill:#232224;fill-opacity:1;stroke:none;stroke-width:0.36093959;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="m 2.0866913,196.46789 -2.08978901,1.62471 0.00767616,5.15807 1.12248295,-0.6518 1.0170942,-0.0902 z" + style="fill:#232224;fill-opacity:1;stroke:none;stroke-width:0.45396167;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 15.86846,207.82352 -2.133724,-2.61788 0.05706,5.65713 1.081142,1.37551 1.016091,0.20535 z" id="path890" inkscape:connector-curvature="0" sodipodi:nodetypes="cccccc" /> <path - style="fill:#626262;fill-opacity:1;stroke:none;stroke-width:0.42375344;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="m 8.8485033,211.06154 0.4694463,-0.89346 6.5597684,1.73952 -2.265989,1.80938 -5.6843273,-1.65343 z" + style="fill:#626262;fill-opacity:1;stroke:none;stroke-width:0.53296405;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 2.2225712,212.93295 -2.23118397,-2.11202 13.83580977,0.0312 2.067982,1.59753 c -4.541363,0.0382 -9.1311339,0.46226 -13.6726078,0.48329 z" id="path892" inkscape:connector-curvature="0" - sodipodi:nodetypes="cccccc" /> + sodipodi:nodetypes="ccccc" /> <path sodipodi:nodetypes="cccccc" inkscape:connector-curvature="0" id="path873" - d="m 1.1094411,202.5618 1.0068811,-0.0501 4.8564349,0.42743 -1.3820584,1.19971 -5.58532408,-0.89921 z" - style="fill:#626262;fill-opacity:1;stroke:none;stroke-width:0.42375344;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + d="m 1.1094411,206.11319 1.0068811,-0.0793 4.8564349,0.67614 -1.3820584,1.89778 -5.58532408,-1.42243 z" + style="fill:#626262;fill-opacity:1;stroke:none;stroke-width:0.53296405;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> <path sodipodi:nodetypes="cccccc" inkscape:connector-curvature="0" id="path875" - d="m 6.9903212,202.91281 -1.4200624,1.22577 2.3552867,7.92602 0.9075091,-0.91638 0.578878,-0.85915 z" - style="fill:#232224;fill-opacity:1;stroke:none;stroke-width:0.36093959;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + d="m 12.21722,200.01556 -1.378965,-2.08751 2.256069,12.63711 0.90751,-1.44959 -1.20706,-1.83862 z" + style="fill:#232224;fill-opacity:1;stroke:none;stroke-width:0.45396167;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> <path - style="fill:#c6c6c6;fill-opacity:1;stroke:none;stroke-width:0.37162125;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 2.0835936,196.45833 H 15.874998 v 15.46004 l -6.4737929,-1.63703 -2.4065342,-7.33738 -4.8643051,-0.42375 z" + style="fill:#fafafa;fill-opacity:1;stroke:none;stroke-width:0.35857278;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 13.793636,210.85176 H 0.00223215 v -14.39343 l 10.87037685,1.5241 1.226368,6.92469 1.647887,0.30098 z" id="rect888" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccccc" /> <path - style="fill:none;stroke:#25251f;stroke-width:0.50004226;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="m 2.9364797,199.87242 c -0.2401887,-2.85385 -0.096076,-2.95114 -0.096076,-2.95114 l 2.4018873,0.0972 c 0,0 1.5372082,0.77833 0,0.90804 -1.5372081,0.12973 -2.0656235,0.38917 -2.0656235,0.38917 L 5.05014,199.6129" - id="path1604" + style="fill:none;stroke:#000000;stroke-width:0.60415155;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 2.8116181,197.81318 c -0.8455277,0.54568 -2.15847778,1.86463 -2.00648426,3.45767 0.65450846,-0.004 2.46770036,-1.78722 2.24591896,0.20337 -0.666147,1.02785 -1.43313,1.92052 -1.9286598,3.21733" + id="path1627" + inkscape:connector-curvature="0" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.60415155;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 5.1344262,199.93749 c -1.1759835,-0.58652 -1.3074991,3.46943 -0.3776831,4.1823 1.1475244,0.95584 1.6993175,-1.34544 1.3585994,-2.87017 0.00623,-1.06059 -1.3249033,-2.8149 -1.3730611,-0.90638" + id="path1629" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccc" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.60415155;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 7.0496386,197.86547 c 0,2.12694 0,4.25386 0,6.38081" + id="path1631" inkscape:connector-curvature="0" /> <path - style="fill:none;stroke:#25251f;stroke-width:0.50004226;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="m 7.6441795,198.28334 c 0,0 -1.9215102,-0.32429 -0.9127173,0.51888 1.0087928,0.84319 2.7861899,1.32964 2.5940388,0.58374 -0.1921511,-0.74589 -1.6813215,-1.10262 -1.6813215,-1.10262 z" - id="path1608" + style="fill:none;stroke:#000000;stroke-width:0.6756435;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 8.7163688,198.98001 c -0.7974259,1.80914 1.6179202,3.67489 1.5707702,1.10609 -0.04253,-1.17889 -0.29068,-1.55006 -0.08831,-0.20433 0.226936,1.45165 0.487174,3.68658 -0.7643191,4.3504 -0.4498329,0.23654 -1.020826,0.2271 -1.3812147,-0.27926" + id="path1633" inkscape:connector-curvature="0" /> <path - style="fill:none;stroke:#25251f;stroke-width:0.50004226;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="m 11.391124,197.14829 c -0.144113,2.17282 -0.240188,2.59442 0,2.46468 0.240189,-0.12971 0.240189,-0.12971 0.240189,-0.12971 v 0" - id="path1610" + style="fill:none;stroke:#000000;stroke-width:0.28265628px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 0.77497724,206.17393 c -0.21079704,1.31704 0.31832126,2.57987 0.36898096,3.87465 l -0.042097,0.11458 -0.083381,0.0608" + id="path1635" inkscape:connector-curvature="0" /> <path - style="fill:none;stroke:#25251f;stroke-width:0.44197017;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="m 2.8315015,202.1713 c 0,-1.74669 0.1477153,-1.77964 0.1477153,-1.77964 0,0 1.4032958,-0.42843 1.1447939,0.033 -0.2585019,0.4614 0.3323595,0.4614 -0.2585019,0.4614 -0.5908615,0 -1.0709361,0.0659 -1.0709361,0.0659" - id="path1614" + style="fill:none;stroke:#000000;stroke-width:0.28265628px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 0.72627707,205.74819 c 0.99512053,-0.4537 1.60593333,1.02281 0.59836493,1.48704 -0.1244108,0.0663 -0.2793367,0.0703 -0.40354445,5e-5" + id="path1637" inkscape:connector-curvature="0" /> <path - style="fill:none;stroke:#25251f;stroke-width:0.44197017;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="m 5.7488798,200.98487 c -0.097202,0.22409 -0.5885681,0.0412 -0.7097979,0.18422 -0.4314566,0.50876 -0.4828927,0.91461 0.2666517,0.83742 0.5539326,-0.1318 1.5879403,0.65913 0.4431462,-1.02164 z" - id="path1616" + style="fill:none;stroke:#000000;stroke-width:0.33277225px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 2.1895779,208.43752 c 1.155794,0.6895 0.702551,-2.24024 -0.02302,-1.21371 -0.200691,0.64205 0.41255,2.89089 0.99322,2.45778" + id="path1639" inkscape:connector-curvature="0" - sodipodi:nodetypes="cscc" /> + sodipodi:nodetypes="ccc" /> <path - style="fill:none;stroke:#25251f;stroke-width:0.44197017;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="m 7.2998912,201.21556 c -0.1846443,1.18643 -1.2925096,1.48304 -0.1846443,1.18643 1.1078653,-0.29661 1.181723,0.56026 1.1078653,-0.32956 -0.073858,-0.88982 -0.1107868,-0.88982 -0.1107868,-0.88982 v 0 0 0 0" - id="path1618" - inkscape:connector-curvature="0" /> + style="fill:none;stroke:#000000;stroke-width:0.33277225px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 3.8820896,205.82544 c -0.826469,0.69564 -0.149961,3.24171 0.456413,1.6421 0.381007,-0.87559 -1.066161,-2.44843 -0.193667,-1.08204 0.357469,0.91404 0.358927,3.10915 0.625949,3.38408 0.159718,-0.42731 0.180628,-0.9558 0.374105,-1.35458" + id="path1641" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccc" /> <path - style="fill:none;stroke:#25251f;stroke-width:0.44197017;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="m 9.3679063,200.39166 c 0,2.24102 0,2.27398 0,2.27398" - id="path1620" + style="fill:none;stroke:#000000;stroke-width:0.25685027;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 5.2537713,205.95542 c -0.2940821,2.56689 1.2401421,3.41123 0.7649684,0.28878 l -0.014692,-0.31661 -0.00637,-0.31493" + id="path1643" inkscape:connector-curvature="0" /> <path - style="fill:none;stroke:#25251f;stroke-width:0.44197017;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="m 8.6293295,201.34739 c 1.329438,-0.0659 1.2925092,-0.0659 1.2925092,-0.0659 v 0 0 l 0.073858,0.033" - id="path1622" + style="fill:none;stroke:#000000;stroke-width:0.28133062;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 6.7256583,207.41227 c 1.4939649,0.001 -0.2027078,-4.34876 -0.1209045,-0.79246 -7.63e-5,1.41379 0.1632224,3.56506 0.7756224,3.04645" + id="path1645" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccc" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.2962372;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 8.0097387,205.59601 c 0.042729,1.18707 -0.054676,5.37041 -0.00833,2.22833 0.179647,-2.65929 1.2399712,-1.72224 0.9781552,0.98487 -0.00601,0.40209 0.036219,1.30448 -0.1541278,1.30053" + id="path1648" inkscape:connector-curvature="0" /> <path - style="fill:none;stroke:#25251f;stroke-width:0.44197017;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="m 10.918917,201.9406 c 1.329439,-0.19774 1.329439,-0.26364 1.329439,-0.32956 0,-0.066 0,-0.033 0,-0.033 0,0 -0.33236,-2.27398 -0.923221,-0.98869 -0.590862,1.28529 -0.33236,1.94441 -0.33236,1.94441 l 1.366368,-0.26364" - id="path1624" + style="fill:none;stroke:#000000;stroke-width:0.33577365;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 10.729728,206.00221 c -1.4925921,-0.61676 -1.627078,3.60382 -0.01589,2.99222 l 0.259195,-0.0906" + id="path1650" inkscape:connector-curvature="0" /> <path - style="fill:none;stroke:#25251f;stroke-width:0.44197017;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="m 13.910153,202.4679 c -0.332359,-2.4058 -0.332359,-2.4058 -0.332359,-2.4058 v 0.79094 c 0,0 0.369288,-1.31824 0.923221,-0.52729 0.553933,0.79095 0.553933,0.8239 0.553933,0.8239" - id="path1626" + style="fill:none;stroke:#000000;stroke-width:0.39676842px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 11.252094,206.83762 c 0.576519,0.91086 1.176054,-1.33663 0.355682,-1.49446 -0.683905,0.56373 -0.251284,3.80213 0.475209,3.06977" + id="path1654" inkscape:connector-curvature="0" /> <path - style="fill:none;stroke:#25251f;stroke-width:0.57488364;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="m 12.906517,197.26471 c 1.172749,1.18514 1.125839,1.18514 1.125839,1.18514 l 1.03202,-1.27293 -2.017129,2.63368" - id="path1628" + style="fill:none;stroke:#000000;stroke-width:0.275;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 12.495165,206.62702 c 0.08155,1.77706 0.217194,5.94542 0.27671,1.85978 -0.03845,-1.23262 0.665576,-2.46324 0.644736,-0.70153" + id="path1656" inkscape:connector-curvature="0" /> </g> </svg> diff --git a/src/ComputerscareSolyPequencer.cpp b/src/ComputerscareSolyPequencer.cpp @@ -3,8 +3,8 @@ struct ComputerscareSolyPequencer; struct ComputerscareSolyPequencer : Module { - int currentStep[16] = { -1}; - int numSteps[16] = {16}; + int currentStep[16] = {0}; + int numSteps[16] = {16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16}; bool autoNumSteps = true; rack::dsp::SchmittTrigger clockTriggers[16]; rack::dsp::SchmittTrigger resetTriggers[16]; @@ -42,31 +42,43 @@ struct ComputerscareSolyPequencer : Module { ComputerscareSolyPequencer() { config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); - + configParam(MANUAL_CLOCK_BUTTON, 0.f, 1.f, 0.f); + configParam(MANUAL_RESET_BUTTON, 0.f, 1.f, 0.f); // configParam(KNOB + i, 1.f, 16.f, (i + 1), "output ch:" + std::to_string(i + 1) + " = input ch"); } + void resetAll() { + for (int i = 0; i < 16; i++) { + currentStep[i] = 0; + } + } void process(const ProcessArgs &args) override { - int numInput = inputs[POLY_INPUT].getChannels(); + int numInputChannels = inputs[POLY_INPUT].getChannels(); int numReset = inputs[RESET_INPUT].getChannels(); int numClock = inputs[CLOCK_INPUT].getChannels(); int numNumSteps = inputs[NUM_STEPS_INPUT].getChannels(); int numOutputChannels = numClock > 0 ? numClock : 1; - if (numClock > 0) { - outputs[POLY_OUTPUT].setChannels(numClock); - for (int j = 0; j < numClock; j++) { - if(clockTriggers[j].process(inputs[CLOCK_INPUT].getVoltage(j))) { - - - currentStep[j]++; - currentStep[j] = currentStep[j] % numSteps[j]; - printf("channel %d\n",j); - } + bool globalClocked = globalManualClockTrigger.process(params[MANUAL_CLOCK_BUTTON].getValue()); + outputs[POLY_OUTPUT].setChannels(numOutputChannels); + for (int j = 0; j < numOutputChannels; j++) { + if (globalClocked || clockTriggers[j].process(inputs[CLOCK_INPUT].getVoltage(j))) { + currentStep[j]++; + if (autoNumSteps) { + currentStep[j] = currentStep[j] % numInputChannels; } + else { + currentStep[j] = currentStep[j] % numSteps[j]; + } + + } - for(int c = 0; c < numOutputChannels; c++) { - outputs[POLY_OUTPUT].setVoltage(inputs[POLY_INPUT].getVoltage(currentStep[c]),c); - } + } + for (int c = 0; c < numOutputChannels; c++) { + outputs[POLY_OUTPUT].setVoltage(inputs[POLY_INPUT].getVoltage(currentStep[c]), c); + } + if (globalManualResetTrigger.process(params[MANUAL_RESET_BUTTON].getValue())) { + resetAll(); + } //} // Run /* @@ -167,18 +179,24 @@ struct ComputerscareSolyPequencerWidget : ModuleWidget { addChild(panel); } - - addLabeledKnob("Steps", 10, 50, module, 0, 0, 0); - + addLabeledKnob("Steps", 10, 124, module, 0, 0, 0); + + + + addInput(createInput<InPort>(Vec(14, 84), module, ComputerscareSolyPequencer::POLY_INPUT)); + + + addParam(createParam<ComputerscareClockButton>(Vec(14, 150), module, ComputerscareSolyPequencer::MANUAL_CLOCK_BUTTON)); + addInput(createInput<InPort>(Vec(14, 164), module, ComputerscareSolyPequencer::CLOCK_INPUT)); + + addParam(createParam<ComputerscareResetButton>(Vec(14, 210), module, ComputerscareSolyPequencer::MANUAL_RESET_BUTTON)); + addInput(createInput<InPort>(Vec(14, 224), module, ComputerscareSolyPequencer::RESET_INPUT)); - addInput(createInput<InPort>(Vec(4, 24), module, ComputerscareSolyPequencer::POLY_INPUT)); - addInput(createInput<InPort>(Vec(4, 44), module, ComputerscareSolyPequencer::CLOCK_INPUT)); - addInput(createInput<InPort>(Vec(4, 64), module, ComputerscareSolyPequencer::RESET_INPUT)); - addOutput(createOutput<PointingUpPentagonPort>(Vec(30, 24), module, ComputerscareSolyPequencer::POLY_OUTPUT)); + addOutput(createOutput<PointingUpPentagonPort>(Vec(21, 304), module, ComputerscareSolyPequencer::POLY_OUTPUT)); } void addLabeledKnob(std::string label, int x, int y, ComputerscareSolyPequencer *module, int index, float labelDx, float labelDy) { diff --git a/src/ComputerscareTolyPools.cpp b/src/ComputerscareTolyPools.cpp @@ -24,6 +24,9 @@ rotate 4,clip 4 float mapChannelCountToVoltage(int ch) { return ( (float) ch ) / 1.6f; } +int mapVoltageToChannelCount(float voltage) { + return (int) round(voltage * 1.6f); +} struct ComputerscareTolyPools : Module { int counter = 83910; @@ -71,7 +74,12 @@ struct ComputerscareTolyPools : Module { rotation = params[ROTATE_KNOB].getValue(); numInputChannels = inputs[POLY_INPUT].getChannels(); } - + if(inputs[NUM_CHANNELS_CV].isConnected()) { + numChannels = mapVoltageToChannelCount(inputs[NUM_CHANNELS_CV].getVoltage()); + } + if(inputs[ROTATE_CV].isConnected()) { + rotation = mapVoltageToChannelCount(inputs[ROTATE_CV].getVoltage()); + } outputs[POLY_OUTPUT].setChannels(numChannels); outputs[NUM_CHANNELS_OUTPUT].setVoltage(mapChannelCountToVoltage(numInputChannels)); @@ -138,14 +146,15 @@ struct ComputerscareTolyPoolsWidget : ModuleWidget { addInput(createInput<InPort>(Vec(4, 24), module, ComputerscareTolyPools::POLY_INPUT)); - addInput(createInput<InPort>(Vec(4, 84), module, ComputerscareTolyPools::NUM_CHANNELS_CV)); - addLabeledKnob("Num Output Channels", 2, 86, module, ComputerscareTolyPools::NUM_CHANNELS_KNOB, -5, -30, 0); - - addInput(createInput<InPort>(Vec(4, 144), module, ComputerscareTolyPools::ROTATION_CV)); - addLabeledKnob("Rotation", 2, 156, module, ComputerscareTolyPools::ROTATE_KNOB, -5, -10, 1); + addLabeledKnob("Num Output Channels", 2, 106, module, ComputerscareTolyPools::NUM_CHANNELS_KNOB, -5, -30, 0); + addInput(createInput<InPort>(Vec(4, 136), module, ComputerscareTolyPools::NUM_CHANNELS_CV)); + + addLabeledKnob("Rotation", 2, 206, module, ComputerscareTolyPools::ROTATE_KNOB, -5, -10, 1); + addInput(createInput<InPort>(Vec(4,236), module, ComputerscareTolyPools::ROTATE_CV)); + addOutput(createOutput<PointingUpPentagonPort>(Vec(30, 24), module, ComputerscareTolyPools::NUM_CHANNELS_OUTPUT)); - addOutput(createOutput<PointingUpPentagonPort>(Vec(30, 124), module, ComputerscareTolyPools::POLY_OUTPUT)); + addOutput(createOutput<PointingUpPentagonPort>(Vec(20, 324), module, ComputerscareTolyPools::POLY_OUTPUT)); } void addLabeledKnob(std::string label, int x, int y, ComputerscareTolyPools *module, int index, float labelDx, float labelDy, int type) {