def METHOD_NAME(raw_file, dsp_file, json_file, buffer_len=8,group='', jout=True):
    lh5_store = lh5.Store()
    lh5_in = lh5_store.read_object('g000/raw',raw_file)
    with open(json_file) as f:
        config = json.load(f)
    paths = config["paths"]
    options = config["options"]
    channel = 'g000'
    wf_in = lh5_in["waveform"]["values"].nda
    dt = lh5_in['waveform']['dt'].nda[0] * unit_parser.parse_unit(lh5_in['waveform']['dt'].attrs['units'])
    proc = ProcessingChain(block_width=buffer_len, clock_unit=dt, verbosity=1)
    print("Now processing")
    if jout:
       proc.add_input_buffer("wf", wf_in, dtype='float32')
       proc.set_processor_list(json_file)
       lh5_out = lh5.Table(size=proc._buffer_len)
       for output in config["outputs"]:
          lh5_out.add_field(output, lh5.Array(proc.get_output_buffer(output)))
    else:
       proc.add_input_buffer("wf", wf_in, dtype='float32')
       proc.add_processor(mean_stdev, "wf[0:1000]", "bl", "bl_sig")
       proc.add_processor(np.subtract, "wf", "bl", "wf_blsub")
       proc.add_processor(pole_zero, "wf_blsub", 70*us, "wf_pz")
       proc.add_processor(trap_norm, "wf_pz", 10*us, 5*us, "wf_trap")
       proc.add_processor(asymTrapFilter, "wf_pz", 0.05*us, 2*us, 4*us, "wf_atrap")
       lh5_out = lh5.Table(size=proc._buffer_len)
       if jout:
          for output in config["outputs"]:
              lh5_out.add_field(output, lh5.Array(proc.get_output_buffer(output)))
       else:
            lh5_out.add_field("bl", lh5.Array(proc.get_output_buffer("bl"), attrs={"units":"ADC"}))
            lh5_out.add_field("bl_sig", lh5.Array(proc.get_output_buffer("bl_sig"), attrs={"units":"ADC"}))
    proc.execute()
    groupname = "/data"
    lh5_store.write_object(lh5_out, groupname, dsp_file)