{"version":1,"patch":{"id":"ee7db7ce-c577-4500-84b9-d721c46ea975","pan":{"x":60.76627,"y":-158.82559},"zoom":1.733,"nodes":[{"type":"Phasor","id":"9697ae60-b9c5-41e1-a990-01068c2d2f32","position":{"x":-334.03357,"y":166.74127}},{"type":"Expr","id":"137cf5ca-9c2b-49f4-83c5-3f3b4d7b2c9a","position":{"x":-226.00591,"y":-182.89349},"expr":"cos(w+p*2*pi)"},{"type":"Text","id":"2369d276-5096-4471-9853-02b53995282f","position":{"x":-322.02335,"y":337.83377},"text":"This is the heart of the uPop DX. The phasor node generates a 0 - 2*pi ramp. Why 2*pi? 2*pi is the number of radians in a complete circle. Feeding this ramp into a sine or cosine expression results in one cycle of a repeating wave we call a sine wave.","width":256.0},{"type":"Expr","id":"702aa437-d95e-4244-b33a-995da94d71ce","position":{"x":-464.03357,"y":166.74127},"expr":"0.5"},{"type":"Expr","id":"e93b5fee-cc79-4afd-84ef-4ccea984a4ae","position":{"x":-150.4805,"y":191.66513},"expr":"x/(2*pi)"},{"type":"Waveform","id":"7a88e914-492f-48c3-94c2-ac37ca2d3d6f","position":{"x":3.26035,"y":136.47562}},{"type":"Expr","id":"3d66e23a-d4b7-4c21-b5d9-3eead1563ea3","position":{"x":-137.44772,"y":31.54914},"expr":"cos(x)"},{"type":"Waveform","id":"9cf6588f-5eb6-4a1e-81a4-177b9204cd9d","position":{"x":4.59247,"y":-22.41047}},{"type":"Text","id":"4f2f1149-495f-4c3f-9795-93e53ae07785","position":{"x":-480.19489,"y":7.27416},"text":"If we modify our expreassaion slightly, we can introduce a phase shift into the resulting wave. That is we can change when the high and low points of the wave occur.","width":256.0},{"type":"Waveform","id":"b93377a8-95bb-4a6c-bdf1-fef6e87167d8","position":{"x":6.93477,"y":-175.481}},{"type":"Knob","id":"502eeb82-54f8-46b4-8e4d-d1091f64d991","position":{"x":-391.45648,"y":-135.16949},"name":"Turn Me!","knob":{"value":0.48866,"min":0.0,"max":1.0},"exposedPosition":{"x":0.0,"y":0.0}},{"type":"Text","id":"52e602c6-9008-4491-b529-f6cf1df24ba4","position":{"x":-483.16461,"y":-40.79564},"text":"We multiply the phase input by 2*pi so that the input to shift a complete cycle goes from 0 to 1 which is the standard for Audulus modulation signals.","width":256.0},{"type":"Patch","id":"008c9410-a1bc-451f-804a-e7bc19a11f87","position":{"x":-516.58478,"y":-333.02957},"subPatch":{"id":"9de9252d-af85-43ca-813f-6a36e87bfc20","pan":{"x":-117.38028,"y":-370.19971},"zoom":0.77053,"nodes":[{"type":"Output","id":"f4355f25-de76-44ed-b270-39502a0babb4","position":{"x":630.41199,"y":208.4299},"name":"","exposedPosition":{"x":20.0,"y":0.0}},{"type":"Knob","id":"54eec27f-013a-4d9f-971f-60ce88a85843","position":{"x":-440.65112,"y":187.59511},"name":"","knob":{"value":0.26711,"min":0.0,"max":1.0},"exposedPosition":{"x":5.0,"y":-40.0}},{"type":"Input","id":"c2b42950-5e38-4089-80b1-67379eeb544e","position":{"x":-277.14383,"y":212.35187},"name":"","exposedPosition":{"x":-10.0,"y":0.0}},{"type":"Light","id":"2d780ea8-fb6c-46cf-9dd9-3da2e6df95a0","position":{"x":-275.16202,"y":257.8761},"exposedPosition":{"x":-10.0,"y":0.0}},{"type":"Phasor","id":"c4b7544e-2d71-4e6f-bf30-ccf0f8a44119","position":{"x":-173.25314,"y":182.15372}},{"type":"RGBLight","id":"641ddcf2-8ff6-4446-a02f-89723a1ddd01","position":{"x":630.11084,"y":251.06871},"exposedPosition":{"x":20.0,"y":0.0}},{"type":"Expr","id":"6a95c549-cb3a-4fe0-9b7a-ccc829c9c053","position":{"x":-356.73459,"y":166.74174},"expr":"x*x*x*x*20"},{"type":"Expr","id":"68d73808-70ad-48b2-a6a2-4f642a695f79","position":{"x":440.19626,"y":206.94565},"expr":"clamp(x,0,1)"},{"type":"Add","id":"d85e847d-cece-4dec-9836-d4cc523756f6","position":{"x":381.78833,"y":225.53616}},{"type":"Knob","id":"debae59c-259c-4e62-9fad-ad0ff6788fff","position":{"x":379.68787,"y":323.31796},"name":"","knob":{"value":0.0,"min":0.0,"max":1.0},"exposedPosition":{"x":5.0,"y":-120.0}},{"type":"Mult","id":"4c8fb8b3-5312-4dd8-b792-1b551b110509","position":{"x":269.90158,"y":224.57993}},{"type":"Knob","id":"4f1497b7-0ae9-4188-bd00-0d7babb4b5d3","position":{"x":255.52176,"y":322.2738},"name":"","knob":{"value":1.0,"min":0.0,"max":1.0},"exposedPosition":{"x":5.0,"y":-80.0}},{"type":"SVG","id":"b9c0b71e-cd42-4558-a37c-65bf397e31bb","position":{"x":-412.61209,"y":248.47746},"exposedPosition":{"x":5.0,"y":-40.0},"svg":""},{"type":"Expr","id":"3365bde7-e417-45e6-97ff-3847126b56b7","position":{"x":-19.27414,"y":182.08987},"expr":"2*abs((x/(2*pi)-0.5))"},{"type":"SVG","id":"39aa4b59-67fd-4bc0-86c1-850a4f4ed4b4","position":{"x":389.51404,"y":391.50934},"exposedPosition":{"x":5.0,"y":-120.0},"svg":""},{"type":"SVG","id":"a6c7bd71-7553-4083-9f29-3eb8e8e72366","position":{"x":263.38968,"y":390.27072},"exposedPosition":{"x":5.0,"y":-80.0},"svg":""},{"type":"Text","id":"21d35366-c65d-480f-931e-b5f3943f76e9","position":{"x":72.69706,"y":576.83044},"text":"Basic Triangle LFO","width":256.0},{"type":"Text","id":"5dd762bc-cba7-49ee-8bce-f00d8acf7ab0","position":{"x":-3.30686,"y":546.63068},"text":"A triangle LFO with controls for speed (0 to 20Hz), and a built-in attenuate-offset control to adjust the range of modulation. The gate input resets the LFO from the start of its period.\n","width":265.73355}],"wires":[{"from":"68d73808-70ad-48b2-a6a2-4f642a695f79","output":0,"to":"f4355f25-de76-44ed-b270-39502a0babb4","input":0},{"from":"c2b42950-5e38-4089-80b1-67379eeb544e","output":0,"to":"2d780ea8-fb6c-46cf-9dd9-3da2e6df95a0","input":0},{"from":"6a95c549-cb3a-4fe0-9b7a-ccc829c9c053","output":0,"to":"c4b7544e-2d71-4e6f-bf30-ccf0f8a44119","input":0},{"from":"c2b42950-5e38-4089-80b1-67379eeb544e","output":0,"to":"c4b7544e-2d71-4e6f-bf30-ccf0f8a44119","input":1},{"from":"68d73808-70ad-48b2-a6a2-4f642a695f79","output":0,"to":"641ddcf2-8ff6-4446-a02f-89723a1ddd01","input":0},{"from":"54eec27f-013a-4d9f-971f-60ce88a85843","output":0,"to":"6a95c549-cb3a-4fe0-9b7a-ccc829c9c053","input":0},{"from":"d85e847d-cece-4dec-9836-d4cc523756f6","output":0,"to":"68d73808-70ad-48b2-a6a2-4f642a695f79","input":0},{"from":"debae59c-259c-4e62-9fad-ad0ff6788fff","output":0,"to":"d85e847d-cece-4dec-9836-d4cc523756f6","input":0},{"from":"4c8fb8b3-5312-4dd8-b792-1b551b110509","output":0,"to":"d85e847d-cece-4dec-9836-d4cc523756f6","input":1},{"from":"4f1497b7-0ae9-4188-bd00-0d7babb4b5d3","output":0,"to":"4c8fb8b3-5312-4dd8-b792-1b551b110509","input":0},{"from":"3365bde7-e417-45e6-97ff-3847126b56b7","output":0,"to":"4c8fb8b3-5312-4dd8-b792-1b551b110509","input":1},{"from":"c4b7544e-2d71-4e6f-bf30-ccf0f8a44119","output":0,"to":"3365bde7-e417-45e6-97ff-3847126b56b7","input":0}]}},{"type":"Waveform","id":"dd5b4108-2f13-44ff-bbc0-ad6e573c7728","position":{"x":12.47199,"y":-373.62741}},{"type":"Expr","id":"9aa5564d-88fa-4ec4-87cc-82eee8996dce","position":{"x":-226.03308,"y":-378.74438},"expr":"cos(w+p*2*pi)"},{"type":"Knob","id":"8132573d-7d7d-4c72-808d-d06c0c664b05","position":{"x":-377.12585,"y":-335.06329},"name":"Turn Me!","knob":{"value":0.48866,"min":0.0,"max":1.0},"exposedPosition":{"x":0.0,"y":0.0}},{"type":"Text","id":"6f697d36-0981-4ff1-a2e9-a67d275e6a18","position":{"x":-499.33783,"y":-272.91934},"text":"Using an LFO we can have Audulus turn the knob for us!","width":256.0},{"type":"Knob","id":"3639fd36-95e8-41e2-9e57-a22366cf90d6","position":{"x":-384.63089,"y":-691.67053},"name":"Turn Me!","knob":{"value":0.48866,"min":0.0,"max":1.0},"exposedPosition":{"x":0.0,"y":0.0}},{"type":"Expr","id":"17cbb5d3-0c4e-4716-b20f-71902aa1bff1","position":{"x":-220.75163,"y":-698.15808},"expr":"cos(w+p*2*pi)"},{"type":"Patch","id":"8d9ad4f4-043a-4606-b2cb-900ee0babb59","position":{"x":-524.08984,"y":-689.63678},"subPatch":{"id":"014264ac-4965-45bc-b6d2-070ffa34e68c","pan":{"x":-117.38028,"y":-370.19971},"zoom":0.77053,"nodes":[{"type":"Output","id":"be380b8c-42fe-4a19-88f3-9c9eba2655ad","position":{"x":630.41199,"y":208.4299},"name":"","exposedPosition":{"x":20.0,"y":0.0}},{"type":"Knob","id":"43d41196-df33-4bd5-acc7-6443bb11167b","position":{"x":-440.65112,"y":187.59511},"name":"","knob":{"value":1.0,"min":0.0,"max":1.0},"exposedPosition":{"x":5.0,"y":-40.0}},{"type":"Input","id":"8d3569d0-126a-4061-a66d-3807364d0534","position":{"x":-277.14383,"y":212.35187},"name":"","exposedPosition":{"x":-10.0,"y":0.0}},{"type":"Light","id":"f7345826-ebe7-4e4f-ad9a-b63b194d4eba","position":{"x":-275.16202,"y":257.8761},"exposedPosition":{"x":-10.0,"y":0.0}},{"type":"Phasor","id":"88114c23-0954-4636-9e01-3c9804226c11","position":{"x":-173.25314,"y":182.15372}},{"type":"RGBLight","id":"908c5a2f-47fa-4559-bc57-3ab8acaffa5f","position":{"x":630.11084,"y":251.06871},"exposedPosition":{"x":20.0,"y":0.0}},{"type":"Expr","id":"62b4e0ee-6851-4d8f-bcbb-3a6630bca978","position":{"x":-356.73459,"y":166.74174},"expr":"x*x*x*x*20"},{"type":"Expr","id":"2f283efc-f6ab-48ad-8593-fe442caf03ff","position":{"x":440.19626,"y":206.94565},"expr":"clamp(x,0,1)"},{"type":"Add","id":"27f1b78a-841e-4d6d-9dd0-2197160eb0f3","position":{"x":381.78833,"y":225.53616}},{"type":"Knob","id":"7cf9df77-d018-41a4-ba93-6bf3087eeda7","position":{"x":379.68787,"y":323.31796},"name":"","knob":{"value":0.0,"min":0.0,"max":1.0},"exposedPosition":{"x":5.0,"y":-120.0}},{"type":"Mult","id":"56eab9c1-0759-4950-b44b-2a5d9003cf38","position":{"x":269.90158,"y":224.57993}},{"type":"Knob","id":"664e84f1-7497-4cfc-af4e-8ec452d73fa8","position":{"x":255.52176,"y":322.2738},"name":"","knob":{"value":1.0,"min":0.0,"max":1.0},"exposedPosition":{"x":5.0,"y":-80.0}},{"type":"SVG","id":"dd77ad9a-4933-449e-a2a1-51e857c25309","position":{"x":-412.61209,"y":248.47746},"exposedPosition":{"x":5.0,"y":-40.0},"svg":""},{"type":"Expr","id":"ae4bd9a0-7330-4626-b05c-d5b858669c30","position":{"x":-19.27414,"y":182.08987},"expr":"2*abs((x/(2*pi)-0.5))"},{"type":"SVG","id":"59b2629b-ed38-479d-8dc7-beeb7118be2b","position":{"x":389.51404,"y":391.50934},"exposedPosition":{"x":5.0,"y":-120.0},"svg":""},{"type":"SVG","id":"0cadd0d6-7844-4af5-9438-7cf412c02331","position":{"x":263.38968,"y":390.27072},"exposedPosition":{"x":5.0,"y":-80.0},"svg":""},{"type":"Text","id":"d993e61a-1273-4422-a6ef-5f42c763426c","position":{"x":72.69706,"y":576.83044},"text":"Basic Triangle LFO","width":256.0},{"type":"Text","id":"fec2d6af-c525-4c20-ab57-084a839dee9b","position":{"x":-3.30686,"y":546.63068},"text":"A triangle LFO with controls for speed (0 to 20Hz), and a built-in attenuate-offset control to adjust the range of modulation. The gate input resets the LFO from the start of its period.\n","width":265.73355}],"wires":[{"from":"2f283efc-f6ab-48ad-8593-fe442caf03ff","output":0,"to":"be380b8c-42fe-4a19-88f3-9c9eba2655ad","input":0},{"from":"8d3569d0-126a-4061-a66d-3807364d0534","output":0,"to":"f7345826-ebe7-4e4f-ad9a-b63b194d4eba","input":0},{"from":"62b4e0ee-6851-4d8f-bcbb-3a6630bca978","output":0,"to":"88114c23-0954-4636-9e01-3c9804226c11","input":0},{"from":"8d3569d0-126a-4061-a66d-3807364d0534","output":0,"to":"88114c23-0954-4636-9e01-3c9804226c11","input":1},{"from":"2f283efc-f6ab-48ad-8593-fe442caf03ff","output":0,"to":"908c5a2f-47fa-4559-bc57-3ab8acaffa5f","input":0},{"from":"43d41196-df33-4bd5-acc7-6443bb11167b","output":0,"to":"62b4e0ee-6851-4d8f-bcbb-3a6630bca978","input":0},{"from":"27f1b78a-841e-4d6d-9dd0-2197160eb0f3","output":0,"to":"2f283efc-f6ab-48ad-8593-fe442caf03ff","input":0},{"from":"7cf9df77-d018-41a4-ba93-6bf3087eeda7","output":0,"to":"27f1b78a-841e-4d6d-9dd0-2197160eb0f3","input":0},{"from":"56eab9c1-0759-4950-b44b-2a5d9003cf38","output":0,"to":"27f1b78a-841e-4d6d-9dd0-2197160eb0f3","input":1},{"from":"664e84f1-7497-4cfc-af4e-8ec452d73fa8","output":0,"to":"56eab9c1-0759-4950-b44b-2a5d9003cf38","input":0},{"from":"ae4bd9a0-7330-4626-b05c-d5b858669c30","output":0,"to":"56eab9c1-0759-4950-b44b-2a5d9003cf38","input":1},{"from":"88114c23-0954-4636-9e01-3c9804226c11","output":0,"to":"ae4bd9a0-7330-4626-b05c-d5b858669c30","input":0}]}},{"type":"Waveform","id":"3276f5ca-aba7-44d9-bcbb-13ac6361af93","position":{"x":12.18906,"y":-690.74561}},{"type":"Text","id":"36c2198b-fd0a-4922-9003-acb524df5334","position":{"x":-473.73221,"y":-599.16321},"text":"If we do this fast enough (at audio rates) we have phase modulation!","width":256.0},{"type":"Text","id":"2ce832a6-50e0-4a73-9353-194e4a8fc1ee","position":{"x":-254.78333,"y":-909.0531},"text":"See part 2!","width":82.06181},{"type":"Text","id":"c6912808-f8ab-49d6-9355-cec0c5e52a0c","position":{"x":-277.17041,"y":414.18607},"text":"Phase Modulation and the uPop DX","width":256.0},{"type":"Text","id":"455d2531-588d-41e7-946d-36bc14f9ae5a","position":{"x":-219.66936,"y":387.95862},"text":"Part 1","width":256.0},{"type":"Text","id":"b936f0ea-a958-4bc0-8dfa-2919b67114a8","position":{"x":-334.90442,"y":-803.22778},"text":"Depending on the ratio of the modulation frequency to the oscillator frequency, and the level of the modulation, this modulation will produce a number of harmonics","width":256.0}],"wires":[{"from":"702aa437-d95e-4244-b33a-995da94d71ce","output":0,"to":"9697ae60-b9c5-41e1-a990-01068c2d2f32","input":0},{"from":"9697ae60-b9c5-41e1-a990-01068c2d2f32","output":0,"to":"137cf5ca-9c2b-49f4-83c5-3f3b4d7b2c9a","input":0},{"from":"502eeb82-54f8-46b4-8e4d-d1091f64d991","output":0,"to":"137cf5ca-9c2b-49f4-83c5-3f3b4d7b2c9a","input":1},{"from":"9697ae60-b9c5-41e1-a990-01068c2d2f32","output":0,"to":"e93b5fee-cc79-4afd-84ef-4ccea984a4ae","input":0},{"from":"e93b5fee-cc79-4afd-84ef-4ccea984a4ae","output":0,"to":"7a88e914-492f-48c3-94c2-ac37ca2d3d6f","input":0},{"from":"9697ae60-b9c5-41e1-a990-01068c2d2f32","output":0,"to":"3d66e23a-d4b7-4c21-b5d9-3eead1563ea3","input":0},{"from":"3d66e23a-d4b7-4c21-b5d9-3eead1563ea3","output":0,"to":"9cf6588f-5eb6-4a1e-81a4-177b9204cd9d","input":0},{"from":"137cf5ca-9c2b-49f4-83c5-3f3b4d7b2c9a","output":0,"to":"b93377a8-95bb-4a6c-bdf1-fef6e87167d8","input":0},{"from":"9aa5564d-88fa-4ec4-87cc-82eee8996dce","output":0,"to":"dd5b4108-2f13-44ff-bbc0-ad6e573c7728","input":0},{"from":"9697ae60-b9c5-41e1-a990-01068c2d2f32","output":0,"to":"9aa5564d-88fa-4ec4-87cc-82eee8996dce","input":0},{"from":"8132573d-7d7d-4c72-808d-d06c0c664b05","output":0,"to":"9aa5564d-88fa-4ec4-87cc-82eee8996dce","input":1},{"from":"008c9410-a1bc-451f-804a-e7bc19a11f87","output":0,"to":"8132573d-7d7d-4c72-808d-d06c0c664b05","input":0},{"from":"8d9ad4f4-043a-4606-b2cb-900ee0babb59","output":0,"to":"3639fd36-95e8-41e2-9e57-a22366cf90d6","input":0},{"from":"9697ae60-b9c5-41e1-a990-01068c2d2f32","output":0,"to":"17cbb5d3-0c4e-4716-b20f-71902aa1bff1","input":0},{"from":"3639fd36-95e8-41e2-9e57-a22366cf90d6","output":0,"to":"17cbb5d3-0c4e-4716-b20f-71902aa1bff1","input":1},{"from":"17cbb5d3-0c4e-4716-b20f-71902aa1bff1","output":0,"to":"3276f5ca-aba7-44d9-bcbb-13ac6361af93","input":0}]}}