{ "patcher" : { "fileversion" : 1, "appversion" : { "major" : 7, "minor" : 3, "revision" : 4, "architecture" : "x64", "modernui" : 1 } , "rect" : [ 201.0, 149.0, 1139.0, 737.0 ], "bglocked" : 0, "openinpresentation" : 0, "default_fontsize" : 12.0, "default_fontface" : 0, "default_fontname" : "Arial", "gridonopen" : 1, "gridsize" : [ 15.0, 15.0 ], "gridsnaponopen" : 1, "objectsnaponopen" : 1, "statusbarvisible" : 2, "toolbarvisible" : 1, "lefttoolbarpinned" : 0, "toptoolbarpinned" : 0, "righttoolbarpinned" : 0, "bottomtoolbarpinned" : 0, "toolbars_unpinned_last_save" : 0, "tallnewobj" : 0, "boxanimatetime" : 200, "enablehscroll" : 1, "enablevscroll" : 1, "devicewidth" : 0.0, "description" : "", "digest" : "", "tags" : "", "style" : "", "subpatcher_template" : "", "boxes" : [ { "box" : { "id" : "obj-14", "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 660.0, 8.04541, 407.0, 20.0 ], "style" : "", "text" : "(essentially the same as 04yVibratoAndFM from MSP Synthesis Tutorial 4)" } } , { "box" : { "id" : "obj-8", "maxclass" : "message", "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 125.0, 547.0, 33.0, 22.0 ], "style" : "", "text" : "stop" } } , { "box" : { "id" : "obj-10", "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 838.0, 688.0, 106.0, 20.0 ], "style" : "", "text" : "frequency domain" } } , { "box" : { "id" : "obj-7", "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 831.0, 425.0, 76.0, 20.0 ], "style" : "", "text" : "time domain" } } , { "box" : { "fontname" : "Arial", "fontsize" : 18.0, "id" : "obj-3", "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 68.727295, 36.54541, 530.0, 27.0 ], "style" : "", "text" : "NOTE: This patch is only for learning about FM, not to do Lab 4! " } } , { "box" : { "id" : "obj-4", "maxclass" : "message", "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 41.5, 547.0, 74.0, 22.0 ], "style" : "", "text" : "startwindow" } } , { "box" : { "id" : "obj-1", "maxclass" : "newobj", "numinlets" : 2, "numoutlets" : 0, "patching_rect" : [ 224.72728, 572.200012, 37.0, 22.0 ], "style" : "", "text" : "dac~" } } , { "box" : { "id" : "obj-65", "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 346.727295, 306.818176, 61.0, 20.0 ], "style" : "", "text" : "-n < x < n" } } , { "box" : { "id" : "obj-64", "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 424.227295, 136.818176, 65.0, 20.0 ], "style" : "", "text" : "-1 < x < 1 " } } , { "box" : { "id" : "obj-62", "maxclass" : "message", "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 446.0, 268.0, 29.5, 22.0 ], "style" : "", "text" : "2" } } , { "box" : { "id" : "obj-60", "maxclass" : "message", "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 805.0, 268.0, 31.0, 22.0 ], "style" : "", "text" : "256" } } , { "box" : { "id" : "obj-57", "maxclass" : "number", "numinlets" : 1, "numoutlets" : 2, "outlettype" : [ "", "bang" ], "parameter_enable" : 0, "patching_rect" : [ 446.0, 292.0, 50.0, 22.0 ], "style" : "" } } , { "box" : { "id" : "obj-55", "maxclass" : "number", "numinlets" : 1, "numoutlets" : 2, "outlettype" : [ "", "bang" ], "parameter_enable" : 0, "patching_rect" : [ 805.0, 292.0, 50.0, 22.0 ], "style" : "" } } , { "box" : { "domain" : [ 0.0, 12000.0 ], "id" : "obj-53", "maxclass" : "spectroscope~", "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 453.0, 547.0, 371.0, 192.0 ], "style" : "" } } , { "box" : { "bufsize" : 256, "calccount" : 2, "id" : "obj-52", "maxclass" : "scope~", "numinlets" : 2, "numoutlets" : 0, "patching_rect" : [ 446.0, 316.0, 378.0, 220.0 ], "style" : "" } } , { "box" : { "fontface" : 0, "fontname" : "Arial", "fontsize" : 12.0, "id" : "obj-51", "maxclass" : "number~", "mode" : 2, "numinlets" : 2, "numoutlets" : 2, "outlettype" : [ "signal", "float" ], "patching_rect" : [ 277.727295, 306.818176, 70.0, 22.0 ], "sig" : 0.0, "style" : "" } } , { "box" : { "fontsize" : 18.0, "format" : 6, "id" : "obj-50", "maxclass" : "flonum", "numinlets" : 1, "numoutlets" : 2, "outlettype" : [ "", "bang" ], "parameter_enable" : 0, "patching_rect" : [ 293.727295, 236.0, 66.0, 29.0 ], "style" : "" } } , { "box" : { "fontname" : "Arial", "fontsize" : 11.595187, "id" : "obj-48", "maxclass" : "newobj", "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "signal" ], "patching_rect" : [ 258.727295, 272.818176, 54.0, 21.0 ], "style" : "", "text" : "*~ 1." } } , { "box" : { "fontname" : "Arial", "fontsize" : 18.0, "id" : "obj-47", "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 367.727295, 236.0, 503.0, 27.0 ], "style" : "", "text" : "Modulator amplitude (DEPTH: derived from Modulation index)", "textcolor" : [ 0.965682, 0.072983, 0.12799, 1.0 ] } } , { "box" : { "fontface" : 0, "fontname" : "Arial", "fontsize" : 12.0, "id" : "obj-46", "maxclass" : "number~", "mode" : 2, "numinlets" : 2, "numoutlets" : 2, "outlettype" : [ "signal", "float" ], "patching_rect" : [ 271.227295, 175.818176, 70.0, 22.0 ], "sig" : 0.0, "style" : "" } } , { "box" : { "fontname" : "Arial", "fontsize" : 18.0, "id" : "obj-43", "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 341.727264, 75.0, 488.0, 27.0 ], "style" : "", "text" : "Modulator frequency (RATE: derived from Harmonicity ratio)", "textcolor" : [ 0.965682, 0.072983, 0.12799, 1.0 ] } } , { "box" : { "fontsize" : 18.0, "format" : 6, "id" : "obj-40", "maxclass" : "flonum", "numinlets" : 1, "numoutlets" : 2, "outlettype" : [ "", "bang" ], "parameter_enable" : 0, "patching_rect" : [ 258.727295, 75.0, 76.0, 29.0 ], "style" : "" } } , { "box" : { "id" : "obj-42", "maxclass" : "newobj", "numinlets" : 1, "numoutlets" : 1, "outlettype" : [ "signal" ], "patching_rect" : [ 258.727295, 105.818176, 33.0, 22.0 ], "style" : "", "text" : "sig~" } } , { "box" : { "fontsize" : 18.0, "format" : 6, "id" : "obj-38", "maxclass" : "flonum", "numinlets" : 1, "numoutlets" : 2, "outlettype" : [ "", "bang" ], "parameter_enable" : 0, "patching_rect" : [ 176.5, 76.0, 65.0, 29.0 ], "style" : "" } } , { "box" : { "id" : "obj-36", "maxclass" : "newobj", "numinlets" : 1, "numoutlets" : 1, "outlettype" : [ "signal" ], "patching_rect" : [ 176.5, 105.818176, 33.0, 22.0 ], "style" : "", "text" : "sig~" } } , { "box" : { "id" : "obj-33", "maxclass" : "gain~", "numinlets" : 1, "numoutlets" : 2, "outlettype" : [ "signal", "int" ], "parameter_enable" : 0, "patching_rect" : [ 224.72728, 451.0, 45.0, 74.0 ], "style" : "" } } , { "box" : { "id" : "obj-44", "linecount" : 2, "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 357.25, 198.318176, 343.0, 33.0 ], "style" : "", "text" : "An oscillator only goes from -1 to +1\nso we need to muliply the output of the modulator to scale it up" } } , { "box" : { "fontsize" : 14.0, "id" : "obj-59", "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 293.727295, 410.318176, 75.0, 22.0 ], "style" : "", "text" : "CARRIER" } } , { "box" : { "fontname" : "Arial", "fontsize" : 18.0, "id" : "obj-26", "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 61.727295, 4.54541, 592.0, 27.0 ], "style" : "", "text" : "THIS PATCH IS AN (over)-SIMPLIFIED ONE-VOICE FM SYNTHESIZER" } } , { "box" : { "fontname" : "Arial", "fontsize" : 12.0, "id" : "obj-20", "linecount" : 2, "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 26.0, 418.818176, 171.0, 33.0 ], "style" : "", "text" : "resulting oscillating frequency\n input to carrier" } } , { "box" : { "fontface" : 0, "fontname" : "Arial", "fontsize" : 12.0, "id" : "obj-24", "maxclass" : "number~", "mode" : 2, "numinlets" : 2, "numoutlets" : 2, "outlettype" : [ "signal", "float" ], "patching_rect" : [ 148.0, 394.818176, 70.0, 22.0 ], "sig" : 0.0, "style" : "" } } , { "box" : { "fontname" : "Arial", "fontsize" : 14.0, "id" : "obj-2", "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 326.227295, 136.818176, 100.0, 22.0 ], "style" : "", "text" : "MODULATOR" } } , { "box" : { "fontname" : "Arial", "fontsize" : 18.0, "id" : "obj-6", "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 21.227295, 77.0, 148.0, 27.0 ], "style" : "", "text" : "Carrier frequency", "textcolor" : [ 0.965682, 0.072983, 0.12799, 1.0 ] } } , { "box" : { "fontname" : "Arial", "fontsize" : 11.595187, "id" : "obj-9", "maxclass" : "newobj", "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "signal" ], "patching_rect" : [ 224.72728, 349.818176, 52.0, 21.0 ], "style" : "", "text" : "+~" } } , { "box" : { "fontname" : "Arial", "fontsize" : 18.0, "id" : "obj-12", "maxclass" : "newobj", "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "signal" ], "patching_rect" : [ 258.727295, 136.818176, 60.0, 29.0 ], "style" : "", "text" : "cycle~", "textcolor" : [ 0.96639, 0.285971, 0.999818, 1.0 ] } } , { "box" : { "fontname" : "Arial", "fontsize" : 18.0, "id" : "obj-13", "maxclass" : "newobj", "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "signal" ], "patching_rect" : [ 225.72728, 406.818176, 60.0, 29.0 ], "style" : "", "text" : "cycle~", "textcolor" : [ 0.936161, 0.23025, 0.999818, 1.0 ] } } , { "box" : { "fontname" : "Arial", "fontsize" : 11.595187, "id" : "obj-17", "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 163.5, 478.5, 59.0, 19.0 ], "style" : "", "text" : "FM signal" } } ], "lines" : [ { "patchline" : { "destination" : [ "obj-46", 0 ], "order" : 0, "source" : [ "obj-12", 0 ] } } , { "patchline" : { "destination" : [ "obj-48", 0 ], "order" : 1, "source" : [ "obj-12", 0 ] } } , { "patchline" : { "destination" : [ "obj-33", 0 ], "order" : 2, "source" : [ "obj-13", 0 ] } } , { "patchline" : { "destination" : [ "obj-52", 0 ], "hidden" : 1, "order" : 1, "source" : [ "obj-13", 0 ] } } , { "patchline" : { "destination" : [ "obj-53", 0 ], "hidden" : 1, "order" : 0, "source" : [ "obj-13", 0 ] } } , { "patchline" : { "destination" : [ "obj-1", 1 ], "order" : 0, "source" : [ "obj-33", 0 ] } } , { "patchline" : { "destination" : [ "obj-1", 0 ], "order" : 1, "source" : [ "obj-33", 0 ] } } , { "patchline" : { "destination" : [ "obj-9", 0 ], "source" : [ "obj-36", 0 ] } } , { "patchline" : { "destination" : [ "obj-36", 0 ], "source" : [ "obj-38", 0 ] } } , { "patchline" : { "destination" : [ "obj-1", 0 ], "source" : [ "obj-4", 0 ] } } , { "patchline" : { "destination" : [ "obj-42", 0 ], "source" : [ "obj-40", 0 ] } } , { "patchline" : { "destination" : [ "obj-12", 0 ], "source" : [ "obj-42", 0 ] } } , { "patchline" : { "destination" : [ "obj-51", 0 ], "order" : 0, "source" : [ "obj-48", 0 ] } } , { "patchline" : { "destination" : [ "obj-9", 1 ], "order" : 1, "source" : [ "obj-48", 0 ] } } , { "patchline" : { "destination" : [ "obj-48", 1 ], "source" : [ "obj-50", 0 ] } } , { "patchline" : { "destination" : [ "obj-52", 1 ], "source" : [ "obj-55", 0 ] } } , { "patchline" : { "destination" : [ "obj-52", 0 ], "source" : [ "obj-57", 0 ] } } , { "patchline" : { "destination" : [ "obj-55", 0 ], "source" : [ "obj-60", 0 ] } } , { "patchline" : { "destination" : [ "obj-57", 0 ], "source" : [ "obj-62", 0 ] } } , { "patchline" : { "destination" : [ "obj-1", 0 ], "source" : [ "obj-8", 0 ] } } , { "patchline" : { "color" : [ 0.0, 0.0, 0.0, 1.0 ], "destination" : [ "obj-13", 0 ], "order" : 0, "source" : [ "obj-9", 0 ] } } , { "patchline" : { "destination" : [ "obj-24", 0 ], "order" : 1, "source" : [ "obj-9", 0 ] } } ], "dependency_cache" : [ ], "autosave" : 0 } }