
!***********************************************************
! Visual3D_pipeline_for_subtracting_baseline_from_analog.v3s
!
! This script creates an offset signal based on force plate data
! during swing phase.
!
! This script was written for a dual belt treadmill with
! 2 force plates Fx1,Fy1,Fz1,Mx1,My1,Mz1,Fx2,Fy2,Fz2,Mx2,My2,Mz2
!
! This script requires gait events RHS, RTO, LHS, LTO
!
! In Visual3D, select the "Use Processed Analogs for Ground 
! Reaction Force Calculations" setting.
!
! This script subtracts baseline for ALL gait cycles in a
! trial, which includes cycles where participant steps both
! force plates simultaneously with one foot. Make sure to identify
! clean or good gait cycles with other event(s) for reporting
! or exporting purposes. For example, add a RGood or LGood 
! intermediate event for each clean gait cycle intended for kinetic 
! analysis or add BAD events for all 'bad' gait cycles to exclude 
! cycles from kinetic analysis.
!
! Written by
! Emily Sinitski 2013
!***********************************************************

! Get active c3d file(s). If a TAG is selected,
! all files associated with the TAG are processed.
Set_Pipeline_Parameter_To_List_Of_Tagged_Files
/PARAMETER_NAME=file_list
!/TAG_NAME=
/GET_CURRENT_SELECTED_FILES=TRUE
! /USE_SHORT_FILENAMES=false
;

! For each trial in file_list
For_Each
/ITERATION_PARAMETER_NAME=file
/ITEMS=::file_list
;

! Select current file
Select_Active_File
/FILE_NAME=::file
! /QUERY=
;

!***********************************************************
! Create events
! 
!***********************************************************

! Remove old events
Event_Delete
/EVENT_NAME=RightOFF_end+RightOFF_st+LeftOFF_end+LeftOFF_st
! /EVENT_SEQUENCE=
! /EXCLUDE_EVENTS=
! /TIME=
;

! Create Start event at frame 1
Event_Explicit
/EVENT_NAME=Start
/FRAME=1
! /TIME=
;

! Create End event at last frame
Event_Explicit
/EVENT_NAME=End
/FRAME=EOF
! /TIME=
;

! Create a LeftOFF_end event 5 frames before each LHS event.
Event_Copy
/EVENT_NAME=LHS
/NEW_EVENT_NAME=LeftOFF_end
/FRAME_OFFSET=-5
! /TIME_OFFSET=
! /PERCENT_OFFSET=
! /EVENT_INSTANCE=0
! /RANGE_INSTANCE=0
! /EVENT_SEQUENCE=
! /EXCLUDE_EVENTS=
! /START_AT_EVENT=
! /END_AT_EVENT=
;

! Create a LeftOFF_st event 5 frames after each LTO event.
Event_Copy
/EVENT_NAME=LTO
/NEW_EVENT_NAME=LeftOFF_st
/FRAME_OFFSET=5
! /TIME_OFFSET=
! /PERCENT_OFFSET=
! /EVENT_INSTANCE=0
! /RANGE_INSTANCE=0
! /EVENT_SEQUENCE=
! /EXCLUDE_EVENTS=
! /START_AT_EVENT=
! /END_AT_EVENT=
;

! Create a RightOFF_end event 5 frames before each RHS event.
Event_Copy
/EVENT_NAME=RHS
/NEW_EVENT_NAME=RightOFF_end
/FRAME_OFFSET=-5
! /TIME_OFFSET=
! /PERCENT_OFFSET=
! /EVENT_INSTANCE=0
! /RANGE_INSTANCE=0
! /EVENT_SEQUENCE=
! /EXCLUDE_EVENTS=
! /START_AT_EVENT=
! /END_AT_EVENT=
;

! Create a RightOFF_st event 5 frames after each RTO event.
Event_Copy
/EVENT_NAME=RTO
/NEW_EVENT_NAME=RightOFF_st
/FRAME_OFFSET=5
! /TIME_OFFSET=
! /PERCENT_OFFSET=
! /EVENT_INSTANCE=0
! /RANGE_INSTANCE=0
! /EVENT_SEQUENCE=
! /EXCLUDE_EVENTS=
! /START_AT_EVENT=
! /END_AT_EVENT=
;

!***********************************************************
! Filter force data to create an offset signal
!
! Low pass filter force signals (ANALOG folder) with 
! 5Hz cut-off frequency. 
! This is used to generate offset signal
! and will be re-filtered again at the end. 
!***********************************************************
Lowpass_Filter
/SIGNAL_TYPES=ANALOG+ANALOG+ANALOG+ANALOG+ANALOG+ANALOG+ANALOG+ANALOG+ANALOG+ANALOG+ANALOG+ANALOG
/SIGNAL_NAMES=Fx1+Fx2+Fy1+Fy2+Fz1+Fz2+Mx1+Mx2+My1+My2+Mz1+Mz2
/SIGNAL_FOLDER=ORIGINAL+ORIGINAL+ORIGINAL+ORIGINAL+ORIGINAL+ORIGINAL+ORIGINAL+ORIGINAL+ORIGINAL+ORIGINAL+ORIGINAL+ORIGINAL
! /RESULT_SUFFIX=
! /RESULT_FOLDER=PROCESSED
! /FILTER_CLASS=BUTTERWORTH
/FREQUENCY_CUTOFF=5
! /NUM_REFLECTED=6
! /TOTAL_BUFFER_SIZE=6
! /NUM_BIDIRECTIONAL_PASSES=1
;

!***********************************************************
! Determine FP1 offset metrics
!
! Calculate mean of force plate 1 data (left side) 
! between events LeftOFF_st and LeftOFF_end, 
! which is during the left swing phase.
!***********************************************************
Metric_Mean
/RESULT_METRIC_NAME=Fx1+Fy1+Fz1+Mx1+My1+Mz1
!/APPLY_AS_SUFFIX_TO_SIGNAL_NAME=FALSE
/RESULT_METRIC_FOLDER=FORCE_OFFSET
/SIGNAL_TYPES=ANALOG+ANALOG+ANALOG+ANALOG+ANALOG+ANALOG
/SIGNAL_NAMES=Fx1+Fy1+Fz1+Mx1+My1+Mz1
/SIGNAL_FOLDER=PROCESSED+PROCESSED+PROCESSED+PROCESSED+PROCESSED+PROCESSED
! /SIGNAL_COMPONENTS=ALL_COMPONENTS
/EVENT_SEQUENCE=LeftOFF_st+LeftOFF_end
/EXCLUDE_EVENTS=
/GENERATE_MEAN_AND_STDDEV=FALSE
! /APPEND_TO_EXISTING_VALUES=FALSE
;

!***********************************************************
! Determine FP2 offset metrics
!
! Calculate mean of force plate 2 data (right side) 
! between events ReftOFF_st and ReftOFF_end, 
! which is during the right swing phase.
!***********************************************************
Metric_Mean
/RESULT_METRIC_NAME=Fx2+Fy2+Fz2+Mx2+My2+Mz2
!/APPLY_AS_SUFFIX_TO_SIGNAL_NAME=FALSE
/RESULT_METRIC_FOLDER=FORCE_OFFSET
/SIGNAL_TYPES=ANALOG+ANALOG+ANALOG+ANALOG+ANALOG+ANALOG
/SIGNAL_NAMES=Fx2+Fy2+Fz2+Mx2+My2+Mz2
/SIGNAL_FOLDER=ORIGINAL+ORIGINAL+ORIGINAL+ORIGINAL+ORIGINAL+ORIGINAL
! /SIGNAL_COMPONENTS=ALL_COMPONENTS
/EVENT_SEQUENCE=RightOFF_st+RightOFF_end
/EXCLUDE_EVENTS=
/GENERATE_MEAN_AND_STDDEV=FALSE
! /APPEND_TO_EXISTING_VALUES=FALSE
;


!***********************************************************
! Create offset signal for LEFT side or FP1
! 
! Replace ANALOG::ORIGINAL::Fx1 data with the first Fx1 offset
! metric (METRIC::FORCE_OFFSET::Fx1[1]) between the start
! event (frame 1) and the first LeftOFF_st event.
!
! Resulting signal is located ANALOG::OFFSET folder
!
! Repeat for all force plate signals.
!***********************************************************
Set_Data_To_New_Values
/SIGNAL_TYPES=ANALOG
/SIGNAL_NAMES=Fx1
/SIGNAL_FOLDER=ORIGINAL
/SIGNAL_COMPONENTS=X
! /RESULT_SUFFIX=
/RESULT_FOLDER=OFFSET
/EVENT_SEQUENCE=Start+LeftOFF_st
! /EXCLUDE_EVENTS=
! /START_FRAME=
! /END_FRAME=
! /USE_POINT_RATE=TRUE
/REPLACEMENT_VALUES=METRIC::FORCE_OFFSET::Fx1[1]
! /THRESHOLD_HIGH=NO_DATA
! /THRESHOLD_LOW=NO_DATA
;

Set_Data_To_New_Values
/SIGNAL_TYPES=ANALOG
/SIGNAL_NAMES=Fy1
/SIGNAL_FOLDER=ORIGINAL
/SIGNAL_COMPONENTS=X
! /RESULT_SUFFIX=
/RESULT_FOLDER=OFFSET
/EVENT_SEQUENCE=Start+LeftOFF_st
! /EXCLUDE_EVENTS=
! /START_FRAME=
! /END_FRAME=
! /USE_POINT_RATE=TRUE
/REPLACEMENT_VALUES=METRIC::FORCE_OFFSET::Fy1[1]
! /THRESHOLD_HIGH=NO_DATA
! /THRESHOLD_LOW=NO_DATA
;

Set_Data_To_New_Values
/SIGNAL_TYPES=ANALOG
/SIGNAL_NAMES=Fz1
/SIGNAL_FOLDER=ORIGINAL
/SIGNAL_COMPONENTS=X
! /RESULT_SUFFIX=
/RESULT_FOLDER=OFFSET
/EVENT_SEQUENCE=Start+LeftOFF_st
! /EXCLUDE_EVENTS=
! /START_FRAME=
! /END_FRAME=
! /USE_POINT_RATE=TRUE
/REPLACEMENT_VALUES=METRIC::FORCE_OFFSET::Fz1[1]
! /THRESHOLD_HIGH=NO_DATA
! /THRESHOLD_LOW=NO_DATA
;

Set_Data_To_New_Values
/SIGNAL_TYPES=ANALOG
/SIGNAL_NAMES=Mx1
/SIGNAL_FOLDER=ORIGINAL
/SIGNAL_COMPONENTS=X
! /RESULT_SUFFIX=
/RESULT_FOLDER=OFFSET
/EVENT_SEQUENCE=Start+LeftOFF_st
! /EXCLUDE_EVENTS=
! /START_FRAME=
! /END_FRAME=
! /USE_POINT_RATE=TRUE
/REPLACEMENT_VALUES=METRIC::FORCE_OFFSET::Mx1[1]
! /THRESHOLD_HIGH=NO_DATA
! /THRESHOLD_LOW=NO_DATA
;

Set_Data_To_New_Values
/SIGNAL_TYPES=ANALOG
/SIGNAL_NAMES=My1
/SIGNAL_FOLDER=ORIGINAL
/SIGNAL_COMPONENTS=X
! /RESULT_SUFFIX=
/RESULT_FOLDER=OFFSET
/EVENT_SEQUENCE=Start+LeftOFF_st
! /EXCLUDE_EVENTS=
! /START_FRAME=
! /END_FRAME=
! /USE_POINT_RATE=TRUE
/REPLACEMENT_VALUES=METRIC::FORCE_OFFSET::My1[1]
! /THRESHOLD_HIGH=NO_DATA
! /THRESHOLD_LOW=NO_DATA
;

Set_Data_To_New_Values
/SIGNAL_TYPES=ANALOG
/SIGNAL_NAMES=Mz1
/SIGNAL_FOLDER=ORIGINAL
/SIGNAL_COMPONENTS=X
! /RESULT_SUFFIX=
/RESULT_FOLDER=OFFSET
/EVENT_SEQUENCE=Start+LeftOFF_st
! /EXCLUDE_EVENTS=
! /START_FRAME=
! /END_FRAME=
! /USE_POINT_RATE=TRUE
/REPLACEMENT_VALUES=METRIC::FORCE_OFFSET::Mz1[1]
! /THRESHOLD_HIGH=NO_DATA
! /THRESHOLD_LOW=NO_DATA
;

!***********************************************************
! Create offset signal for RIGHT side or FP2
!***********************************************************
Set_Data_To_New_Values
/SIGNAL_TYPES=ANALOG
/SIGNAL_NAMES=Fx2
/SIGNAL_FOLDER=ORIGINAL
/SIGNAL_COMPONENTS=X
! /RESULT_SUFFIX=
/RESULT_FOLDER=OFFSET
/EVENT_SEQUENCE=Start+RightOFF_st
! /EXCLUDE_EVENTS=
! /START_FRAME=
! /END_FRAME=
! /USE_POINT_RATE=TRUE
/REPLACEMENT_VALUES=METRIC::FORCE_OFFSET::Fx2[1]
! /THRESHOLD_HIGH=NO_DATA
! /THRESHOLD_LOW=NO_DATA
;

Set_Data_To_New_Values
/SIGNAL_TYPES=ANALOG
/SIGNAL_NAMES=Fy2
/SIGNAL_FOLDER=ORIGINAL
/SIGNAL_COMPONENTS=X
! /RESULT_SUFFIX=
/RESULT_FOLDER=OFFSET
/EVENT_SEQUENCE=Start+RightOFF_st
! /EXCLUDE_EVENTS=
! /START_FRAME=
! /END_FRAME=
! /USE_POINT_RATE=TRUE
/REPLACEMENT_VALUES=METRIC::FORCE_OFFSET::Fy2[1]
! /THRESHOLD_HIGH=NO_DATA
! /THRESHOLD_LOW=NO_DATA
;

Set_Data_To_New_Values
/SIGNAL_TYPES=ANALOG
/SIGNAL_NAMES=Fz2
/SIGNAL_FOLDER=ORIGINAL
/SIGNAL_COMPONENTS=X
! /RESULT_SUFFIX=
/RESULT_FOLDER=OFFSET
/EVENT_SEQUENCE=Start+RightOFF_st
! /EXCLUDE_EVENTS=
! /START_FRAME=
! /END_FRAME=
! /USE_POINT_RATE=TRUE
/REPLACEMENT_VALUES=METRIC::FORCE_OFFSET::Fz2[1]
! /THRESHOLD_HIGH=NO_DATA
! /THRESHOLD_LOW=NO_DATA
;

Set_Data_To_New_Values
/SIGNAL_TYPES=ANALOG
/SIGNAL_NAMES=Mx2
/SIGNAL_FOLDER=ORIGINAL
/SIGNAL_COMPONENTS=X
! /RESULT_SUFFIX=
/RESULT_FOLDER=OFFSET
/EVENT_SEQUENCE=Start+RightOFF_st
! /EXCLUDE_EVENTS=
! /START_FRAME=
! /END_FRAME=
! /USE_POINT_RATE=TRUE
/REPLACEMENT_VALUES=METRIC::FORCE_OFFSET::Mx2[1]
! /THRESHOLD_HIGH=NO_DATA
! /THRESHOLD_LOW=NO_DATA
;

Set_Data_To_New_Values
/SIGNAL_TYPES=ANALOG
/SIGNAL_NAMES=My2
/SIGNAL_FOLDER=ORIGINAL
/SIGNAL_COMPONENTS=X
! /RESULT_SUFFIX=
/RESULT_FOLDER=OFFSET
/EVENT_SEQUENCE=Start+RightOFF_st
! /EXCLUDE_EVENTS=
! /START_FRAME=
! /END_FRAME=
! /USE_POINT_RATE=TRUE
/REPLACEMENT_VALUES=METRIC::FORCE_OFFSET::My2[1]
! /THRESHOLD_HIGH=NO_DATA
! /THRESHOLD_LOW=NO_DATA
;

Set_Data_To_New_Values
/SIGNAL_TYPES=ANALOG
/SIGNAL_NAMES=Mz2
/SIGNAL_FOLDER=ORIGINAL
/SIGNAL_COMPONENTS=X
! /RESULT_SUFFIX=
/RESULT_FOLDER=OFFSET
/EVENT_SEQUENCE=Start+RightOFF_st
! /EXCLUDE_EVENTS=
! /START_FRAME=
! /END_FRAME=
! /USE_POINT_RATE=TRUE
/REPLACEMENT_VALUES=METRIC::FORCE_OFFSET::Mz2[1]
! /THRESHOLD_HIGH=NO_DATA
! /THRESHOLD_LOW=NO_DATA
;

!***********************************************************
! Get frame numbers for all LeftOFF_st events
!***********************************************************
Metric_Signal_Value_At_Event
/RESULT_METRIC_NAME=LeftOFF_st
/RESULT_METRIC_FOLDER=FORCE_OFFSET
/SIGNAL_TYPES=FRAME_NUMBERS
/SIGNAL_NAMES=FRAMES
! /SIGNAL_FOLDER=ORIGINAL
/EVENT_NAME=LeftOFF_st
/GENERATE_MEAN_AND_STDDEV=FALSE
! /APPEND_TO_EXISTING_VALUES=FALSE
! /GENERATE_VECTOR_LENGTH_METRIC=FALSE
! /RETAIN_NO_DATA_VALUES=FALSE
;

!***********************************************************
! Get frame numbers for all LeftOFF_end events
!***********************************************************
Metric_Signal_Value_At_Event
/RESULT_METRIC_NAME=LeftOFF_end
/RESULT_METRIC_FOLDER=FORCE_OFFSET
/SIGNAL_TYPES=FRAME_NUMBERS
/SIGNAL_NAMES=FRAMES
! /SIGNAL_FOLDER=ORIGINAL
/EVENT_NAME=LeftOFF_end
/GENERATE_MEAN_AND_STDDEV=FALSE
! /APPEND_TO_EXISTING_VALUES=FALSE
! /GENERATE_VECTOR_LENGTH_METRIC=FALSE
! /RETAIN_NO_DATA_VALUES=FALSE
;

!***********************************************************
! Get frame numbers for all RightOFF_st events
!***********************************************************
Metric_Signal_Value_At_Event
/RESULT_METRIC_NAME=RightOFF_st
/RESULT_METRIC_FOLDER=FORCE_OFFSET
/SIGNAL_TYPES=FRAME_NUMBERS
/SIGNAL_NAMES=FRAMES
! /SIGNAL_FOLDER=ORIGINAL
/EVENT_NAME=RightOFF_st
/GENERATE_MEAN_AND_STDDEV=FALSE
! /APPEND_TO_EXISTING_VALUES=FALSE
! /GENERATE_VECTOR_LENGTH_METRIC=FALSE
! /RETAIN_NO_DATA_VALUES=FALSE
;

!***********************************************************
! Get frame numbers for all RightOFF_end events
!***********************************************************
Metric_Signal_Value_At_Event
/RESULT_METRIC_NAME=RightOFF_end
/RESULT_METRIC_FOLDER=FORCE_OFFSET
/SIGNAL_TYPES=FRAME_NUMBERS
/SIGNAL_NAMES=FRAMES
! /SIGNAL_FOLDER=ORIGINAL
/EVENT_NAME=RightOFF_end
/GENERATE_MEAN_AND_STDDEV=FALSE
! /APPEND_TO_EXISTING_VALUES=FALSE
! /GENERATE_VECTOR_LENGTH_METRIC=FALSE
! /RETAIN_NO_DATA_VALUES=FALSE
;

!***********************************************************
! Get number of left cycles
!***********************************************************
Metric_Event_Sequence_Count
/RESULT_METRIC_NAME=LeftOFF_cycle
/RESULT_METRIC_FOLDER=FORCE_OFFSET
/EVENT_SEQUENCE=LeftOFF_st+LeftOFF_st
/EXCLUDE_EVENTS=
/GENERATE_COUNT_TOTAL_IN_GLOBAL=FALSE
;

!***********************************************************
! Get number of right cycles
!***********************************************************
Metric_Event_Sequence_Count
/RESULT_METRIC_NAME=RightOFF_cycle
/RESULT_METRIC_FOLDER=FORCE_OFFSET
/EVENT_SEQUENCE=RightOFF_st+RightOFF_st
/EXCLUDE_EVENTS=
/GENERATE_COUNT_TOTAL_IN_GLOBAL=FALSE
;

!***********************************************************
! Set number of left cycles to pipeline variable
!***********************************************************
Set_Pipeline_Parameter_To_Data_Value
/PARAMETER_NAME=LeftOFF_cycle
/SIGNAL_TYPES=METRIC
/SIGNAL_NAMES=LeftOFF_cycle
/SIGNAL_FOLDER=FORCE_OFFSET
! /SIGNAL_COMPONENTS=ALL_COMPONENTS
;

!***********************************************************
! Set number of right cycles to pipeline variable
!***********************************************************
Set_Pipeline_Parameter_To_Data_Value
/PARAMETER_NAME=RightOFF_cycle
/SIGNAL_TYPES=METRIC
/SIGNAL_NAMES=RightOFF_cycle
/SIGNAL_FOLDER=FORCE_OFFSET
! /SIGNAL_COMPONENTS=ALL_COMPONENTS
;

!***********************************************************
! Create the "FOR LOOP ITEMS" list
!
! This command is used to generate a normalized signal 
! containing 1 to LeftOFF_cycle. This is a roundabout way to 
! dynamically create the ITEMS list for the for loop command. 
! For example, if there are 10 left cycles, this command 
! creates a signal 1+2+3+4+5+6+7+8+9+10. This method is 
! independent of the number of cycles in a trial. The resulting signal 
! is stored in the GLOBAL. Note, the signal and events used are 
! only to fill out required inputs – NORMALIZED POINTS is the 
! input needed to create index signal.
!
! For programmers - this is to create the syntax for 
! for i = 1:10; code; end;
!***********************************************************
Global_Normalized_Signal_Mean
/SIGNAL_TYPES=METRIC
/SIGNAL_NAMES=LeftOFF_cycle
/SIGNAL_FOLDER=FORCE_OFFSET
/SIGNAL_COMPONENTS=X
! /START_LABEL=
! /END_LABEL=
/EVENT_SEQUENCE=Start+End
! /EXCLUDE_EVENTS=
/RESULT_NAME=LeftOFF_index
/RESULT_FOLDER=ORIGINAL
/NORMALIZE_POINTS=::LeftOFF_cycle
! /CREATE_STANDARD_DEVIATION=FALSE
/CALCULATE_PER_FILE=TRUE
;

!***********************************************************
! Set LEFT normalized signal to pipeline variable
!***********************************************************
Set_Pipeline_Parameter_To_Data_Value
/PARAMETER_NAME=LeftOFF_index
/SIGNAL_TYPES=P2D
/SIGNAL_NAMES=LeftOFF_index
/SIGNAL_FOLDER=ORIGINAL
/SIGNAL_COMPONENTS=X
;

!***********************************************************
! Create normalized signal for 1 to RightOFF_cycle or number
! of right cycles
!***********************************************************
Global_Normalized_Signal_Mean
/SIGNAL_TYPES=METRIC
/SIGNAL_NAMES=RightOFF_cycle
/SIGNAL_FOLDER=FORCE_OFFSET
/SIGNAL_COMPONENTS=X
! /START_LABEL=
! /END_LABEL=
/EVENT_SEQUENCE=Start+End
! /EXCLUDE_EVENTS=
/RESULT_NAME=RightOFF_index
/RESULT_FOLDER=ORIGINAL
/NORMALIZE_POINTS=::RightOFF_cycle
! /CREATE_STANDARD_DEVIATION=FALSE
/CALCULATE_PER_FILE=TRUE
;

!***********************************************************
! Set RIGHT normalized signal to pipeline variable
!***********************************************************
Set_Pipeline_Parameter_To_Data_Value
/PARAMETER_NAME=RightOFF_index
/SIGNAL_TYPES=P2D
/SIGNAL_NAMES=RightOFF_index
/SIGNAL_FOLDER=ORIGINAL
/SIGNAL_COMPONENTS=X
;

!***********************************************************
! For each LEFT cycle
! 
! Replace data between start and end event with offset metric
!***********************************************************
For_Each
/ITERATION_PARAMETER_NAME=lindex
/ITEMS=::LeftOFF_index
;

! Get current START frame number
Evaluate_Expression
/EXPRESSION=METRIC::FORCE_OFFSET::LeftOFF_st[&::lindex&]
/RESULT_NAME=Left_cur
/RESULT_TYPE=METRIC
/RESULT_FOLDER=FORCE_OFFSET
;

! Get current END frame number
Evaluate_Expression
/EXPRESSION=METRIC::FORCE_OFFSET::LeftOFF_st[&::lindex&+1]
/RESULT_NAME=Left_next
/RESULT_TYPE=METRIC
/RESULT_FOLDER=FORCE_OFFSET
;

! Set START frame number to pipeline variable
Set_Pipeline_Parameter_To_Data_Value
/PARAMETER_NAME=Start_frame
/SIGNAL_TYPES=METRIC
/SIGNAL_NAMES=Left_cur
/SIGNAL_FOLDER=FORCE_OFFSET
/SIGNAL_COMPONENTS=X
! /Start_frame=
;

! Set END frame number to pipeline variable
Set_Pipeline_Parameter_To_Data_Value
/PARAMETER_NAME=End_frame
/SIGNAL_TYPES=METRIC
/SIGNAL_NAMES=Left_next
/SIGNAL_FOLDER=FORCE_OFFSET
/SIGNAL_COMPONENTS=X
! /Start_frame=
;

! Replace force signal between current start to end frames with
! current offset metric. 
! Repeat for all force signals and all left cycles.
Set_Data_To_New_Values
/SIGNAL_TYPES=ANALOG
/SIGNAL_NAMES=Fx1
/SIGNAL_FOLDER=OFFSET
/SIGNAL_COMPONENTS=X
! /RESULT_SUFFIX=
/RESULT_FOLDER=OFFSET
! /EVENT_SEQUENCE=
! /EXCLUDE_EVENTS=
/START_FRAME=::Start_frame
/END_FRAME=::End_frame
! /USE_POINT_RATE=TRUE
/REPLACEMENT_VALUES=METRIC::FORCE_OFFSET::Fx1[&::lindex&]
! /THRESHOLD_HIGH=NO_DATA
! /THRESHOLD_LOW=NO_DATA
;

Set_Data_To_New_Values
/SIGNAL_TYPES=ANALOG
/SIGNAL_NAMES=Fy1
/SIGNAL_FOLDER=OFFSET
/SIGNAL_COMPONENTS=X
! /RESULT_SUFFIX=
/RESULT_FOLDER=OFFSET
! /EVENT_SEQUENCE=
! /EXCLUDE_EVENTS=
/START_FRAME=::Start_frame
/END_FRAME=::End_frame
! /USE_POINT_RATE=TRUE
/REPLACEMENT_VALUES=METRIC::FORCE_OFFSET::Fy1[&::lindex&]
! /THRESHOLD_HIGH=NO_DATA
! /THRESHOLD_LOW=NO_DATA
;

Set_Data_To_New_Values
/SIGNAL_TYPES=ANALOG
/SIGNAL_NAMES=Fz1
/SIGNAL_FOLDER=OFFSET
/SIGNAL_COMPONENTS=X
! /RESULT_SUFFIX=
/RESULT_FOLDER=OFFSET
! /EVENT_SEQUENCE=
! /EXCLUDE_EVENTS=
/START_FRAME=::Start_frame
/END_FRAME=::End_frame
! /USE_POINT_RATE=TRUE
/REPLACEMENT_VALUES=METRIC::FORCE_OFFSET::Fz1[&::lindex&]
! /THRESHOLD_HIGH=NO_DATA
! /THRESHOLD_LOW=NO_DATA
;

Set_Data_To_New_Values
/SIGNAL_TYPES=ANALOG
/SIGNAL_NAMES=Mx1
/SIGNAL_FOLDER=OFFSET
/SIGNAL_COMPONENTS=X
! /RESULT_SUFFIX=
/RESULT_FOLDER=OFFSET
! /EVENT_SEQUENCE=
! /EXCLUDE_EVENTS=
/START_FRAME=::Start_frame
/END_FRAME=::End_frame
! /USE_POINT_RATE=TRUE
/REPLACEMENT_VALUES=METRIC::FORCE_OFFSET::Mx1[&::lindex&]
! /THRESHOLD_HIGH=NO_DATA
! /THRESHOLD_LOW=NO_DATA
;

Set_Data_To_New_Values
/SIGNAL_TYPES=ANALOG
/SIGNAL_NAMES=My1
/SIGNAL_FOLDER=OFFSET
/SIGNAL_COMPONENTS=X
! /RESULT_SUFFIX=
/RESULT_FOLDER=OFFSET
! /EVENT_SEQUENCE=
! /EXCLUDE_EVENTS=
/START_FRAME=::Start_frame
/END_FRAME=::End_frame
! /USE_POINT_RATE=TRUE
/REPLACEMENT_VALUES=METRIC::FORCE_OFFSET::My1[&::lindex&]
! /THRESHOLD_HIGH=NO_DATA
! /THRESHOLD_LOW=NO_DATA
;

Set_Data_To_New_Values
/SIGNAL_TYPES=ANALOG
/SIGNAL_NAMES=Mz1
/SIGNAL_FOLDER=OFFSET
/SIGNAL_COMPONENTS=X
! /RESULT_SUFFIX=
/RESULT_FOLDER=OFFSET
! /EVENT_SEQUENCE=
! /EXCLUDE_EVENTS=
/START_FRAME=::Start_frame
/END_FRAME=::End_frame
! /USE_POINT_RATE=TRUE
/REPLACEMENT_VALUES=METRIC::FORCE_OFFSET::Mz1[&::lindex&]
! /THRESHOLD_HIGH=NO_DATA
! /THRESHOLD_LOW=NO_DATA
;

End_For_Each
/ITERATION_PARAMETER_NAME=lindex
;
!***********************************************************
! Replace last cycle to end of file with the last offset
! metric for FP1 or left side.
!
! Repeat for all force plate signals.
!***********************************************************
Set_Pipeline_Parameter_To_Data_Value
/PARAMETER_NAME=last_frame
/SIGNAL_TYPES=METRIC
/SIGNAL_NAMES=Left_next
/SIGNAL_FOLDER=FORCE_OFFSET
/SIGNAL_COMPONENTS=X
;

Set_Data_To_New_Values
/SIGNAL_TYPES=ANALOG
/SIGNAL_NAMES=Fx1
/SIGNAL_FOLDER=OFFSET
/SIGNAL_COMPONENTS=X
! /RESULT_SUFFIX=
/RESULT_FOLDER=OFFSET
! /EVENT_SEQUENCE=
! /EXCLUDE_EVENTS=
/START_FRAME=::last_frame
/END_FRAME=EOF
! /USE_POINT_RATE=TRUE
/REPLACEMENT_VALUES=METRIC::FORCE_OFFSET::Fx1[&::lindex&]
! /THRESHOLD_HIGH=NO_DATA
! /THRESHOLD_LOW=NO_DATA
;

Set_Data_To_New_Values
/SIGNAL_TYPES=ANALOG
/SIGNAL_NAMES=Fy1
/SIGNAL_FOLDER=OFFSET
/SIGNAL_COMPONENTS=X
! /RESULT_SUFFIX=
/RESULT_FOLDER=OFFSET
! /EVENT_SEQUENCE=
! /EXCLUDE_EVENTS=
/START_FRAME=::last_frame
/END_FRAME=EOF
! /USE_POINT_RATE=TRUE
/REPLACEMENT_VALUES=METRIC::FORCE_OFFSET::Fy1[&::lindex&]
! /THRESHOLD_HIGH=NO_DATA
! /THRESHOLD_LOW=NO_DATA
;

Set_Data_To_New_Values
/SIGNAL_TYPES=ANALOG
/SIGNAL_NAMES=Fz1
/SIGNAL_FOLDER=OFFSET
/SIGNAL_COMPONENTS=X
! /RESULT_SUFFIX=
/RESULT_FOLDER=OFFSET
! /EVENT_SEQUENCE=
! /EXCLUDE_EVENTS=
/START_FRAME=::last_frame
/END_FRAME=EOF
! /USE_POINT_RATE=TRUE
/REPLACEMENT_VALUES=METRIC::FORCE_OFFSET::Fz1[&::lindex&]
! /THRESHOLD_HIGH=NO_DATA
! /THRESHOLD_LOW=NO_DATA
;

Set_Data_To_New_Values
/SIGNAL_TYPES=ANALOG
/SIGNAL_NAMES=Mx1
/SIGNAL_FOLDER=OFFSET
/SIGNAL_COMPONENTS=X
! /RESULT_SUFFIX=
/RESULT_FOLDER=OFFSET
! /EVENT_SEQUENCE=
! /EXCLUDE_EVENTS=
/START_FRAME=::last_frame
/END_FRAME=EOF
! /USE_POINT_RATE=TRUE
/REPLACEMENT_VALUES=METRIC::FORCE_OFFSET::Mx1[&::lindex&]
! /THRESHOLD_HIGH=NO_DATA
! /THRESHOLD_LOW=NO_DATA
;

Set_Data_To_New_Values
/SIGNAL_TYPES=ANALOG
/SIGNAL_NAMES=My1
/SIGNAL_FOLDER=OFFSET
/SIGNAL_COMPONENTS=X
! /RESULT_SUFFIX=
/RESULT_FOLDER=OFFSET
! /EVENT_SEQUENCE=
! /EXCLUDE_EVENTS=
/START_FRAME=::last_frame
/END_FRAME=EOF
! /USE_POINT_RATE=TRUE
/REPLACEMENT_VALUES=METRIC::FORCE_OFFSET::My1[&::lindex&]
! /THRESHOLD_HIGH=NO_DATA
! /THRESHOLD_LOW=NO_DATA
;

Set_Data_To_New_Values
/SIGNAL_TYPES=ANALOG
/SIGNAL_NAMES=Mz1
/SIGNAL_FOLDER=OFFSET
/SIGNAL_COMPONENTS=X
! /RESULT_SUFFIX=
/RESULT_FOLDER=OFFSET
! /EVENT_SEQUENCE=
! /EXCLUDE_EVENTS=
/START_FRAME=::last_frame
/END_FRAME=EOF
! /USE_POINT_RATE=TRUE
/REPLACEMENT_VALUES=METRIC::FORCE_OFFSET::Mz1[&::lindex&]
! /THRESHOLD_HIGH=NO_DATA
! /THRESHOLD_LOW=NO_DATA
;

!***********************************************************
! For each RIGHT cycle
! 
! Replace data between start and end event with offset metric
!***********************************************************
For_Each
/ITERATION_PARAMETER_NAME=rindex
/ITEMS=::RightOFF_index
;

! Get current start frame number
Evaluate_Expression
/EXPRESSION=METRIC::FORCE_OFFSET::RightOFF_st[&::rindex&]
/RESULT_NAME=Right_cur
/RESULT_TYPE=METRIC
/RESULT_FOLDER=FORCE_OFFSET
;

! Get end frame number
Evaluate_Expression
/EXPRESSION=METRIC::FORCE_OFFSET::RightOFF_st[&::rindex&+1]
/RESULT_NAME=Right_next
/RESULT_TYPE=METRIC
/RESULT_FOLDER=FORCE_OFFSET
;

! Set start frame number to pipeline variable
Set_Pipeline_Parameter_To_Data_Value
/PARAMETER_NAME=Start_frame
/SIGNAL_TYPES=METRIC
/SIGNAL_NAMES=Right_cur
/SIGNAL_FOLDER=FORCE_OFFSET
/SIGNAL_COMPONENTS=X
! /Start_frame=
;

! Set end frame number to pipeline variable
Set_Pipeline_Parameter_To_Data_Value
/PARAMETER_NAME=End_frame
/SIGNAL_TYPES=METRIC
/SIGNAL_NAMES=Right_next
/SIGNAL_FOLDER=FORCE_OFFSET
/SIGNAL_COMPONENTS=X
! /Start_frame=
;

! Replace force signal between current start to end frames with
! current offset metric. 
! Repeat for all force signals and all right cycles.
Set_Data_To_New_Values
/SIGNAL_TYPES=ANALOG
/SIGNAL_NAMES=Fx2
/SIGNAL_FOLDER=OFFSET
/SIGNAL_COMPONENTS=X
! /RESULT_SUFFIX=
/RESULT_FOLDER=OFFSET
! /EVENT_SEQUENCE=
! /EXCLUDE_EVENTS=
/START_FRAME=::Start_frame
/END_FRAME=::End_frame
! /USE_POINT_RATE=TRUE
/REPLACEMENT_VALUES=METRIC::FORCE_OFFSET::Fx2[&::rindex&]
! /THRESHOLD_HIGH=NO_DATA
! /THRESHOLD_LOW=NO_DATA
;

Set_Data_To_New_Values
/SIGNAL_TYPES=ANALOG
/SIGNAL_NAMES=Fy2
/SIGNAL_FOLDER=OFFSET
/SIGNAL_COMPONENTS=X
! /RESULT_SUFFIX=
/RESULT_FOLDER=OFFSET
! /EVENT_SEQUENCE=
! /EXCLUDE_EVENTS=
/START_FRAME=::Start_frame
/END_FRAME=::End_frame
! /USE_POINT_RATE=TRUE
/REPLACEMENT_VALUES=METRIC::FORCE_OFFSET::Fy2[&::rindex&]
! /THRESHOLD_HIGH=NO_DATA
! /THRESHOLD_LOW=NO_DATA
;

Set_Data_To_New_Values
/SIGNAL_TYPES=ANALOG
/SIGNAL_NAMES=Fz2
/SIGNAL_FOLDER=OFFSET
/SIGNAL_COMPONENTS=X
! /RESULT_SUFFIX=
/RESULT_FOLDER=OFFSET
! /EVENT_SEQUENCE=
! /EXCLUDE_EVENTS=
/START_FRAME=::Start_frame
/END_FRAME=::End_frame
! /USE_POINT_RATE=TRUE
/REPLACEMENT_VALUES=METRIC::FORCE_OFFSET::Fz2[&::rindex&]
! /THRESHOLD_HIGH=NO_DATA
! /THRESHOLD_LOW=NO_DATA
;

Set_Data_To_New_Values
/SIGNAL_TYPES=ANALOG
/SIGNAL_NAMES=Mx2
/SIGNAL_FOLDER=OFFSET
/SIGNAL_COMPONENTS=X
! /RESULT_SUFFIX=
/RESULT_FOLDER=OFFSET
! /EVENT_SEQUENCE=
! /EXCLUDE_EVENTS=
/START_FRAME=::Start_frame
/END_FRAME=::End_frame
! /USE_POINT_RATE=TRUE
/REPLACEMENT_VALUES=METRIC::FORCE_OFFSET::Mx2[&::rindex&]
! /THRESHOLD_HIGH=NO_DATA
! /THRESHOLD_LOW=NO_DATA
;

Set_Data_To_New_Values
/SIGNAL_TYPES=ANALOG
/SIGNAL_NAMES=My2
/SIGNAL_FOLDER=OFFSET
/SIGNAL_COMPONENTS=X
! /RESULT_SUFFIX=
/RESULT_FOLDER=OFFSET
! /EVENT_SEQUENCE=
! /EXCLUDE_EVENTS=
/START_FRAME=::Start_frame
/END_FRAME=::End_frame
! /USE_POINT_RATE=TRUE
/REPLACEMENT_VALUES=METRIC::FORCE_OFFSET::My2[&::rindex&]
! /THRESHOLD_HIGH=NO_DATA
! /THRESHOLD_LOW=NO_DATA
;

Set_Data_To_New_Values
/SIGNAL_TYPES=ANALOG
/SIGNAL_NAMES=Mz2
/SIGNAL_FOLDER=OFFSET
/SIGNAL_COMPONENTS=X
! /RESULT_SUFFIX=
/RESULT_FOLDER=OFFSET
! /EVENT_SEQUENCE=
! /EXCLUDE_EVENTS=
/START_FRAME=::Start_frame
/END_FRAME=::End_frame
! /USE_POINT_RATE=TRUE
/REPLACEMENT_VALUES=METRIC::FORCE_OFFSET::Mz2[&::rindex&]
! /THRESHOLD_HIGH=NO_DATA
! /THRESHOLD_LOW=NO_DATA
;

End_For_Each
/ITERATION_PARAMETER_NAME=rindex
;

!***********************************************************
! Replace last cycle to end of file with the last offset
! metric for FP2 or right side.
!
! Repeat for all force plate signals.
!***********************************************************
Set_Pipeline_Parameter_To_Data_Value
/PARAMETER_NAME=last_frame
/SIGNAL_TYPES=METRIC
/SIGNAL_NAMES=Right_next
/SIGNAL_FOLDER=FORCE_OFFSET
/SIGNAL_COMPONENTS=X
;

Set_Data_To_New_Values
/SIGNAL_TYPES=ANALOG
/SIGNAL_NAMES=Fx2
/SIGNAL_FOLDER=OFFSET
/SIGNAL_COMPONENTS=X
! /RESULT_SUFFIX=
/RESULT_FOLDER=OFFSET
! /EVENT_SEQUENCE=
! /EXCLUDE_EVENTS=
/START_FRAME=::last_frame
/END_FRAME=EOF
! /USE_POINT_RATE=TRUE
/REPLACEMENT_VALUES=METRIC::FORCE_OFFSET::Fx2[&::rindex&]
! /THRESHOLD_HIGH=NO_DATA
! /THRESHOLD_LOW=NO_DATA
;

Set_Data_To_New_Values
/SIGNAL_TYPES=ANALOG
/SIGNAL_NAMES=Fy2
/SIGNAL_FOLDER=OFFSET
/SIGNAL_COMPONENTS=X
! /RESULT_SUFFIX=
/RESULT_FOLDER=OFFSET
! /EVENT_SEQUENCE=
! /EXCLUDE_EVENTS=
/START_FRAME=::last_frame
/END_FRAME=EOF
! /USE_POINT_RATE=TRUE
/REPLACEMENT_VALUES=METRIC::FORCE_OFFSET::Fy2[&::rindex&]
! /THRESHOLD_HIGH=NO_DATA
! /THRESHOLD_LOW=NO_DATA
;

Set_Data_To_New_Values
/SIGNAL_TYPES=ANALOG
/SIGNAL_NAMES=Fz2
/SIGNAL_FOLDER=OFFSET
/SIGNAL_COMPONENTS=X
! /RESULT_SUFFIX=
/RESULT_FOLDER=OFFSET
! /EVENT_SEQUENCE=
! /EXCLUDE_EVENTS=
/START_FRAME=::last_frame
/END_FRAME=EOF
! /USE_POINT_RATE=TRUE
/REPLACEMENT_VALUES=METRIC::FORCE_OFFSET::Fz2[&::rindex&]
! /THRESHOLD_HIGH=NO_DATA
! /THRESHOLD_LOW=NO_DATA
;

Set_Data_To_New_Values
/SIGNAL_TYPES=ANALOG
/SIGNAL_NAMES=Mx2
/SIGNAL_FOLDER=OFFSET
/SIGNAL_COMPONENTS=X
! /RESULT_SUFFIX=
/RESULT_FOLDER=OFFSET
! /EVENT_SEQUENCE=
! /EXCLUDE_EVENTS=
/START_FRAME=::last_frame
/END_FRAME=EOF
! /USE_POINT_RATE=TRUE
/REPLACEMENT_VALUES=METRIC::FORCE_OFFSET::Mx2[&::rindex&]
! /THRESHOLD_HIGH=NO_DATA
! /THRESHOLD_LOW=NO_DATA
;

Set_Data_To_New_Values
/SIGNAL_TYPES=ANALOG
/SIGNAL_NAMES=My2
/SIGNAL_FOLDER=OFFSET
/SIGNAL_COMPONENTS=X
! /RESULT_SUFFIX=
/RESULT_FOLDER=OFFSET
! /EVENT_SEQUENCE=
! /EXCLUDE_EVENTS=
/START_FRAME=::last_frame
/END_FRAME=EOF
! /USE_POINT_RATE=TRUE
/REPLACEMENT_VALUES=METRIC::FORCE_OFFSET::My2[&::rindex&]
! /THRESHOLD_HIGH=NO_DATA
! /THRESHOLD_LOW=NO_DATA
;

Set_Data_To_New_Values
/SIGNAL_TYPES=ANALOG
/SIGNAL_NAMES=Mz2
/SIGNAL_FOLDER=OFFSET
/SIGNAL_COMPONENTS=X
! /RESULT_SUFFIX=
/RESULT_FOLDER=OFFSET
! /EVENT_SEQUENCE=
! /EXCLUDE_EVENTS=
/START_FRAME=::last_frame
/END_FRAME=EOF
! /USE_POINT_RATE=TRUE
/REPLACEMENT_VALUES=METRIC::FORCE_OFFSET::Mz2[&::rindex&]
! /THRESHOLD_HIGH=NO_DATA
! /THRESHOLD_LOW=NO_DATA
;
!***********************************************************
! Subtract OFFSET signal from original analog signal
! Resulting signal is located in the PROCESSED folder
!
! Repeat for all force plate signals
!***********************************************************
Evaluate_Expression
/EXPRESSION=ANALOG::ORIGINAL::Fx1 - ANALOG::OFFSET::Fx1
/RESULT_NAME=Fx1
/RESULT_TYPE=ANALOG
/RESULT_FOLDER=PROCESSED
;

Evaluate_Expression
/EXPRESSION=ANALOG::ORIGINAL::Fx2 - ANALOG::OFFSET::Fx2
/RESULT_NAME=Fx2
/RESULT_TYPE=ANALOG
/RESULT_FOLDER=PROCESSED
;

Evaluate_Expression
/EXPRESSION=ANALOG::ORIGINAL::Fy1 - ANALOG::OFFSET::Fy1
/RESULT_NAME=Fy1
/RESULT_TYPE=ANALOG
/RESULT_FOLDER=PROCESSED
;

Evaluate_Expression
/EXPRESSION=ANALOG::ORIGINAL::Fy2 - ANALOG::OFFSET::Fy2
/RESULT_NAME=Fy2
/RESULT_TYPE=ANALOG
/RESULT_FOLDER=PROCESSED
;

Evaluate_Expression
/EXPRESSION=ANALOG::ORIGINAL::Fz1 - ANALOG::OFFSET::Fz1
/RESULT_NAME=Fz1
/RESULT_TYPE=ANALOG
/RESULT_FOLDER=PROCESSED
;

Evaluate_Expression
/EXPRESSION=ANALOG::ORIGINAL::Fz2 - ANALOG::OFFSET::Fz2
/RESULT_NAME=Fz2
/RESULT_TYPE=ANALOG
/RESULT_FOLDER=PROCESSED
;

Evaluate_Expression
/EXPRESSION=ANALOG::ORIGINAL::Mx1 - ANALOG::OFFSET::Mx1
/RESULT_NAME=Mx1
/RESULT_TYPE=ANALOG
/RESULT_FOLDER=PROCESSED
;

Evaluate_Expression
/EXPRESSION=ANALOG::ORIGINAL::Mx2 - ANALOG::OFFSET::Mx2
/RESULT_NAME=Mx2
/RESULT_TYPE=ANALOG
/RESULT_FOLDER=PROCESSED
;

Evaluate_Expression
/EXPRESSION=ANALOG::ORIGINAL::My1 - ANALOG::OFFSET::My1
/RESULT_NAME=My1
/RESULT_TYPE=ANALOG
/RESULT_FOLDER=PROCESSED
;

Evaluate_Expression
/EXPRESSION=ANALOG::ORIGINAL::My2 - ANALOG::OFFSET::My2
/RESULT_NAME=My2
/RESULT_TYPE=ANALOG
/RESULT_FOLDER=PROCESSED
;

Evaluate_Expression
/EXPRESSION=ANALOG::ORIGINAL::Mz1 - ANALOG::OFFSET::Mz1
/RESULT_NAME=Mz1
/RESULT_TYPE=ANALOG
/RESULT_FOLDER=PROCESSED
;

Evaluate_Expression
/EXPRESSION=ANALOG::ORIGINAL::Mz2 - ANALOG::OFFSET::Mz2
/RESULT_NAME=Mz2
/RESULT_TYPE=ANALOG
/RESULT_FOLDER=PROCESSED
;
!***********************************************************
! Clean up CMO workspace
!***********************************************************
Remove_Signals
/SIGNAL_TYPES=METRIC+METRIC+METRIC+METRIC+METRIC+METRIC+METRIC+METRIC+METRIC+METRIC
/SIGNAL_NAMES=Left_cur+Left_next+LeftOFF_cycle+LeftOFF_end+LeftOFF_st+Right_cur+Right_next+RightOFF_cycle+RightOFF_end+RightOFF_st
/SIGNAL_FOLDER=FORCE_OFFSET+FORCE_OFFSET+FORCE_OFFSET+FORCE_OFFSET+FORCE_OFFSET+FORCE_OFFSET+FORCE_OFFSET+FORCE_OFFSET+FORCE_OFFSET+FORCE_OFFSET
;

Remove_Signals
/SIGNAL_TYPES=P2D
! /SIGNAL_NAMES=
! /SIGNAL_FOLDER=ORIGINAL
;

Event_Delete
/EVENT_NAME=Start+End+LeftOFF_end+LeftOFF_st+RightOFF_st+RightOFF_end
! /EVENT_SEQUENCE=
! /EXCLUDE_EVENTS=
! /TIME=
;

!***********************************************************
! Low pass filter PROCESSED force data with a 20Hz cut-off
! frequency
!***********************************************************
Lowpass_Filter
/SIGNAL_TYPES=ANALOG+ANALOG+ANALOG+ANALOG+ANALOG+ANALOG+ANALOG+ANALOG+ANALOG+ANALOG+ANALOG+ANALOG
/SIGNAL_NAMES=Fx1+Fx2+Fy1+Fy2+Fz1+Fz2+Mx1+Mx2+My1+My2+Mz1+Mz2
/SIGNAL_FOLDER=PROCESSED+PROCESSED+PROCESSED+PROCESSED+PROCESSED+PROCESSED+PROCESSED+PROCESSED+PROCESSED+PROCESSED+PROCESSED+PROCESSED
! /RESULT_SUFFIX=
! /RESULT_FOLDER=PROCESSED
! /FILTER_CLASS=BUTTERWORTH
/FREQUENCY_CUTOFF=20
! /NUM_REFLECTED=6
! /TOTAL_BUFFER_SIZE=6
! /NUM_BIDIRECTIONAL_PASSES=1
;

End_For_Each
/ITERATION_PARAMETER_NAME=file
;






