diff --git a/phys2bids/phys2bids.py b/phys2bids/phys2bids.py
index 7f5bbe3..1eac52e 100644
--- a/phys2bids/phys2bids.py
+++ b/phys2bids/phys2bids.py
@@ -373,6 +373,13 @@ def phys2bids(filename, info=False, indir='.', outdir='.', heur_file=None,
             # Also create a BlueprintOutput object for each unique frequency found.
             # Populate it with the corresponding blueprint input and replace it
             # in the dictionary.
+            # Add time channel in the proper frequency.
+            if uniq_freq != phys_in[run].freq[0]:
+                phys_out[key].ch_name.insert(0, phys_in[run].ch_name[0])
+                phys_out[key].units.insert(0, phys_in[run].units[0])
+                phys_out[key].timeseries.insert(0, np.linspace(phys_in[run].timeseries[0][0],
+                                                phys_in[run].timeseries[0][-1],
+                                                num=phys_out[key].timeseries[0].shape[0]))
             phys_out[key] = BlueprintOutput.init_from_blueprint(phys_out[key])
 
         # Preparing output parameters: name and folder.

Sampling starting time is different in frequency outputs
Right now the sampling starting time is different for outputs with different frequencies when the file is multifreq

## Expected Behavior
sampling starting time is the same in all frequency files

## Actual Behavior
<!--- NECESSARY -->
the sampling time is different in each file. this is due to the fact that BlueprintOutput.init_from_blueprint is assuming that the time channel is always in the blueprint  input object. In multifreq files this is not true due to the way we implement the separation.
```
phys2bids -in Test_belt_pulse_multifreq.txt -chtrig 3 -outdir physio -ntp 60 -tr 1.5
INFO:phys2bids.phys2bids:Currently running phys2bids version v1.3.0-beta+950.gb8ee56c.dirty
INFO:phys2bids.phys2bids:Input file is Test_belt_pulse_multifreq.txt
INFO:phys2bids.utils:File extension is .acq
WARNING:phys2bids.utils:If both acq and txt files exist in the path, acq will be selected.
INFO:phys2bids.phys2bids:Reading the file ./Test_belt_pulse_multifreq.acq
INFO:phys2bids.interfaces.acq:00. Channel RESP - RSP100C: 1336815 samples, 10000.0 samples/sec, loaded: True
INFO:phys2bids.interfaces.acq:01. Channel PULSE - Custom, DA100C: 83550 samples, 625.0 samples/sec, loaded: True
INFO:phys2bids.interfaces.acq:02. Channel MR TRIGGER - Custom, HLT100C - A 5: 1336815 samples, 10000.0 samples/sec, loaded: True
INFO:phys2bids.interfaces.acq:03. Channel PPG100C: 1336815 samples, 10000.0 samples/sec, loaded: True
INFO:phys2bids.interfaces.acq:04. Channel CO2: 1336815 samples, 10000.0 samples/sec, loaded: True
INFO:phys2bids.interfaces.acq:05. Channel O2: 1336815 samples, 10000.0 samples/sec, loaded: True
INFO:phys2bids.phys2bids:Checking that units of measure are BIDS compatible
INFO:phys2bids.phys2bids:Reading infos
INFO:phys2bids.physio_obj:
------------------------------------------------
File Test_belt_pulse_multifreq.acq contains:
01. RESP - RSP100C; sampled at 10000.0 Hz
02. PULSE - Custom, DA100C; sampled at 625.0 Hz
03. MR TRIGGER - Custom, HLT100C - A 5; sampled at 10000.0 Hz
04. PPG100C; sampled at 10000.0 Hz
05. CO2; sampled at 10000.0 Hz
06. O2; sampled at 10000.0 Hz
------------------------------------------------

INFO:phys2bids.viz:saving channel plot to physio/code/conversion/Test_belt_pulse_multifreq.png
INFO:phys2bids.physio_obj:Counting trigger points
INFO:phys2bids.physio_obj:The trigger is in channel 3
INFO:phys2bids.physio_obj:The number of timepoints according to the std_thr method is 60. The computed threshold is 1.5631
INFO:phys2bids.physio_obj:Checking number of timepoints
INFO:phys2bids.physio_obj:Found just the right amount of timepoints!
INFO:phys2bids.viz:Plot trigger
INFO:phys2bids.phys2bids:Found 2 different frequencies in input!
INFO:phys2bids.phys2bids:Preparing 2 output files.
INFO:phys2bids.phys2bids:Exporting files for run 1 freq 10000.0
INFO:phys2bids.phys2bids:
------------------------------------------------
Filename:            Test_belt_pulse_multifreq.acq

Timepoints expected: [60]
Timepoints found:    60
Sampling Frequency:  10000.0 Hz
Sampling started at: 10.4251 s
Tip: Time 0 is the time of first trigger
------------------------------------------------

INFO:phys2bids.phys2bids:Exporting files for run 1 freq 625.0
INFO:phys2bids.phys2bids:
------------------------------------------------
Filename:            Test_belt_pulse_multifreq.acq

Timepoints expected: [60]
Timepoints found:    60
Sampling Frequency:  625.0 Hz
Sampling started at: 0.1288 s
Tip: Time 0 is the time of first trigger
------------------------------------------------
```
## Steps to Reproduce the Problem
<!--- Briefly point out the steps we should take to reproduce the problem -->

   phys2bids -in Test_belt_pulse_multifreq.txt -chtrig 3 -outdir physio -ntp 60 -tr 1.5

## Specifications
<!--- Point out the version of phys2bids you are running and your OS version -->
    - Python version: 3.6.9
    - phys2bids version: phys2bids v1.3.0-beta+950.gb8ee56c
    - Platform: Ubuntu

## Possible solution
<!--- Describe a possible approach to solve the issue -->
    1. Resample time channel to each frequency so the time channel is in all the ``phys_out`` objects
    2. Refractor BlueprintOutput.init_from_blueprint 
diff --git a/phys2bids/tests/test_integration.py b/phys2bids/tests/test_integration.py
index 8b918cc..63cbb22 100644
--- a/phys2bids/tests/test_integration.py
+++ b/phys2bids/tests/test_integration.py
@@ -156,7 +156,7 @@ def test_integration_heuristic(skip_integration, multifreq_lab_file):
     # Check sampling frequency
     assert check_string(log_info, 'Sampling Frequency', '40.0')
     # Check sampling started
-    assert check_string(log_info, 'Sampling started', '-157.8535')
+    assert check_string(log_info, 'Sampling started', '3.6960')
     # Check first trigger
     assert check_string(log_info, 'first trigger', 'Time 0', is_num=False)
 
@@ -167,8 +167,8 @@ def test_integration_heuristic(skip_integration, multifreq_lab_file):
 
     # Compares values in json file with ground truth
     assert math.isclose(json_data['SamplingFrequency'], 40.0,)
-    assert math.isclose(json_data['StartTime'], -157.8535,)
-    assert json_data['Columns'] == ['O2']
+    assert math.isclose(json_data['StartTime'], 3.6960,)
+    assert json_data['Columns'] == ['time', 'O2']
 
     # ##### Checks for 100 Hz files
     # Read log file (note that this file is not the logger file)
@@ -183,7 +183,7 @@ def test_integration_heuristic(skip_integration, multifreq_lab_file):
     # Check sampling frequency
     assert check_string(log_info, 'Sampling Frequency', '100.0')
     # Check sampling started
-    assert check_string(log_info, 'Sampling started', '-0.3057')
+    assert check_string(log_info, 'Sampling started', '3.6960')
     # Check first trigger
     assert check_string(log_info, 'first trigger', 'Time 0', is_num=False)
 
@@ -194,8 +194,8 @@ def test_integration_heuristic(skip_integration, multifreq_lab_file):
 
     # Compares values in json file with ground truth
     assert math.isclose(json_data['SamplingFrequency'], 100.0,)
-    assert math.isclose(json_data['StartTime'], -0.3057,)
-    assert json_data['Columns'] == ['CO2']
+    assert math.isclose(json_data['StartTime'], 3.6960,)
+    assert json_data['Columns'] == ['time', 'CO2']
 
     # Remove generated files
     shutil.rmtree(test_path_output)

pip install -e .[interfaces]
parse_log_pytest
requirements.txt
pytest pytest-cov pytest-mock
apt-get update apt-get install -y gcc make
3.7
requirements.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
bioread==3.0.1
certifi @ file:///croot/certifi_1671487769961/work/certifi
coverage==7.2.7
cycler==0.11.0
docopt==0.6.2
exceptiongroup==1.2.2
fonttools==4.38.0
importlib-metadata==6.7.0
iniconfig==2.0.0
kiwisolver==1.4.5
matplotlib==3.5.3
numpy==1.21.6
packaging==24.0
-e git+https://github.com/physiopy/phys2bids.git@fbf94cdea209beb35aa466f6c3cdd02fc716bce1#egg=phys2bids
Pillow==9.5.0
pluggy==1.2.0
pyparsing==3.1.4
pytest==7.4.4
pytest-cov==4.1.0
pytest-mock==3.11.1
python-dateutil==2.9.0.post0
PyYAML==6.0.1
six==1.17.0
tomli==2.0.1
typing_extensions==4.7.1
zipp==3.15.0

name: phys2bids
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - certifi=2022.12.7=py37h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=1.1.1w=h7f8727e_0
  - pip=22.3.1=py37h06a4308_0
  - python=3.7.16=h7a1cb2a_0
  - readline=8.2=h5eee18b_0
  - setuptools=65.6.3=py37h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - wheel=0.38.4=py37h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - bioread==3.0.1
      - coverage==7.2.7
      - cycler==0.11.0
      - docopt==0.6.2
      - exceptiongroup==1.2.2
      - fonttools==4.38.0
      - importlib-metadata==6.7.0
      - iniconfig==2.0.0
      - kiwisolver==1.4.5
      - matplotlib==3.5.3
      - numpy==1.21.6
      - packaging==24.0
      - pillow==9.5.0
      - pluggy==1.2.0
      - pyparsing==3.1.4
      - pytest==7.4.4
      - pytest-cov==4.1.0
      - pytest-mock==3.11.1
      - python-dateutil==2.9.0.post0
      - pyyaml==6.0.1
      - six==1.17.0
      - tomli==2.0.1
      - typing-extensions==4.7.1
      - zipp==3.15.0
prefix: /opt/conda/envs/phys2bids

phys2bids/tests/test_integration.py::test_integration_heuristic
phys2bids/tests/test_integration.py::test_integration_acq phys2bids/tests/test_integration.py::test_integration_multirun
phys2bids/phys2bids.py
phys2bids/phys2bids.py