Recording Into Buffer (Without Specifying Buffer Size)


    Jan 15 2014 | 3:05 pm
    Hey everybody.
    The topic title says it all really! I'm writing a patch that allows users to record into a buffer, starting with a toggle on, and ending with a toggle off. This all works fine when specifying the buffer size (buffer myrec~ 10000) but this only allows a limited duration to be recorded.
    Initiating the buffer with no duration means that when I record, there is no audio that actually gets recorded into the buffer.
    Can anybody help?
    ----------begin_max5_patcher---------- { "boxes" : [ { "box" : { "maxclass" : "newobj", "text" : "loadbang", "id" : "obj-23", "fontname" : "Arial", "outlettype" : [ "bang" ], "fontsize" : 12.0, "numinlets" : 1, "patching_rect" : [ 868.0, 169.5, 60.0, 20.0 ], "numoutlets" : 1 }
    } , { "box" : { "maxclass" : "toggle", "id" : "obj-19", "parameter_enable" : 0, "outlettype" : [ "int" ], "numinlets" : 1, "patching_rect" : [ 718.0, 111.0, 20.0, 20.0 ], "numoutlets" : 1 }
    } , { "box" : { "maxclass" : "meter~", "id" : "obj-17", "outlettype" : [ "float" ], "numinlets" : 1, "patching_rect" : [ 568.0, 169.5, 30.0, 105.0 ], "numoutlets" : 1 }
    } , { "box" : { "maxclass" : "ezadc~", "id" : "obj-15", "outlettype" : [ "signal", "signal" ], "numinlets" : 1, "patching_rect" : [ 643.0, 81.0, 45.0, 45.0 ], "numoutlets" : 2 }
    } , { "box" : { "maxclass" : "newobj", "text" : "buffer~ recme", "id" : "obj-28", "fontname" : "Arial", "outlettype" : [ "float", "bang" ], "fontsize" : 12.0, "numinlets" : 1, "patching_rect" : [ 868.0, 201.0, 85.0, 20.0 ], "numoutlets" : 2 }
    } , { "box" : { "maxclass" : "newobj", "text" : "record~ recme", "id" : "obj-13", "fontname" : "Arial", "outlettype" : [ "signal" ], "fontsize" : 12.0, "numinlets" : 3, "patching_rect" : [ 718.0, 201.0, 88.0, 20.0 ], "numoutlets" : 1 }
    } , { "box" : { "maxclass" : "waveform~", "id" : "obj-2", "outlettype" : [ "float", "float", "float", "float", "list", "" ], "bgcolor" : [ 0.94902, 0.94902, 0.94902, 1.0 ], "buffername" : "recme", "numinlets" : 5, "waveformcolor" : [ 0.14902, 0.078431, 0.317647, 1.0 ], "patching_rect" : [ 598.0, 356.0, 400.0, 110.0 ], "numoutlets" : 6 }
    } ], "lines" : [ { "patchline" : { "source" : [ "obj-15", 0 ], "destination" : [ "obj-17", 0 ], "hidden" : 0, "disabled" : 0 }
    } , { "patchline" : { "source" : [ "obj-15", 1 ], "destination" : [ "obj-17", 0 ], "hidden" : 0, "disabled" : 0 }
    } , { "patchline" : { "source" : [ "obj-19", 0 ], "destination" : [ "obj-13", 0 ], "hidden" : 0, "disabled" : 0 }
    } , { "patchline" : { "source" : [ "obj-15", 0 ], "destination" : [ "obj-13", 0 ], "hidden" : 0, "disabled" : 0 }
    } , { "patchline" : { "source" : [ "obj-15", 1 ], "destination" : [ "obj-13", 0 ], "hidden" : 0, "disabled" : 0 }
    } , { "patchline" : { "source" : [ "obj-23", 0 ], "destination" : [ "obj-28", 0 ], "hidden" : 0, "disabled" : 0 }
    } ], "appversion" : { "major" : 6, "minor" : 0, "revision" : 4 }
    } -----------end_max5_patcher-----------

    • Jan 15 2014 | 4:10 pm
    • Jan 15 2014 | 4:13 pm
      Hmm
      seems your pasted patch is empty too. Can you verify that you can open the patch above? If it doesn't, try re-copying.
      A common strategy is to initialise your buffer with a maximum size at the start of each recording, and then crop it as you need.
      This demonstrates the concept, but was a rush job so caveat emptor and all that!
      Brendan
    • Jan 15 2014 | 4:18 pm
      Perfect work around, the crop message is exactly what I needed. Thankyou both!