docs: def _create_txt_from_str(in_path, channels, new_path):
      """
      This function allows to generate a text file with synchronised signals from the input file.
  
      ----------
      Parameters
      ----------
      in_path : str
          Path to the file containing the two signals that will be synchronised.
      channels : list
          List with the strings identifying the channels of each signal.
      new_path : str
          The path to create the new file.
      """
      header = ["# OpenSignals Text File Format"]
      files = [bsnb.load(in_path)]
      with open(in_path, encoding="latin-1") as opened_p:
          header.append(opened_p.readlines()[1])
      header.append("# EndOfHeader")
  
      data = []
      nr_channels = []
      for file in files:
          for i, device in enumerate(file.keys()):
              nr_channels.append(len(list(file[device])))
              data.append(file[device][channels[i]])
  
      dephase, s1, s2 = synchronise_signals(data[0], data[1])
  
      new_header = [h.replace("\n", "") for h in header]
      sync_file = open(new_path, 'w')
      sync_file.write(' \n'.join(new_header) + '\n')
  
      old_columns = np.loadtxt(in_path)
      if np.array_equal(s1, data[0]):
          # Change the second device
          aux = 3 * nr_channels[0]
          columns = old_columns[dephase:, aux:]
          new_file = _shape_array(old_columns[:, :aux], columns)
      elif np.array_equal(s2, data[1]):
          # Change the first device
          aux = 3 * nr_channels[1]
          columns = old_columns[dephase:, :aux]
          new_file = _shape_array(columns, old_columns[:, aux:])
      else:
          print("The devices are synchronised.")
          return
      for line in new_file:
          sync_file.write('\t'.join(str(int(i)) for i in line) + '\t\n')
      sync_file.close()