|5. Command line
|7. Visualize C3D
|Locations of lists
|List of changes
moSheet. An entry in these history
lists are managed by
JRev and look like this (example from
% 197: 20-May-2008 16:42, New structure of [Job]: Specific substructs. % [Janimator] removed, [Diag] -> [Diagram]."197" is the current version number of the file, which is updated automatically in the line starting with "% $JRev:" (see
JRev). Then the date and a short description is following.
Found bugs are marked by the key "BUGFIX" here and in the source
code again. In addition a paragraph with detailed explanation can be
copydate copies the current date for pasting.
|01-Feb-2009, MoMo 5.0.10: Initial status of this documentation.
|ModelTools5.01, Models_Safe, Models_User, Momo3D5.00, Momo5.02, MomoGUI5.02, MomoGraph5.01, MomoSet5.00, MomoSheet5.01, MomoSuper5.02, MomoTools5.01
|Filters\fASC4.10, Filters\fC3D5.12, Filters\fENF1.52, Filters\fTrans1.28
|GLTools version 2.102, 07-Jan-2009
|FPLift1.03, ShowC3D4.01, DBFunc2.00,
Note: These extra tools are not included in all distributions.
moFPContact failed on strides
with events but without valid foot marker trajectories during stance phase.
This could happen only if the trajectories are deleted after setting the
events, e.g. by a reconstruction in Vicon-WorkStation. This problem occurred
with the Gait-model
PiGMo10 only, because earlier Gait models
used the general event marker to define the force plate contact.
|An extended mouse click (shift+left click, middle click or right+left click) zooms a diagram inside the sheet. This is helpful on single trial sheets, because the lines in the diagram are still connected to the popup-menus in the legend. An extended click in the zoomed diagram restores the original dimensions again.
moYLimits stored zeros for all
limits except for the last sheet.
|The selftest of MoMo accepts 'flat' and 'deep' as first argument now. This triggers accessing the test sessions with the standard parameters or with a variety of input arguments for exhaustive testing. The 2nd input can be a cell string with the paths of sessions now. The default session is '$default' now. A test session for the Gait model has been added.
|The simple statistics created through the context menu of lines in diagrams consider finite values only now. This concerns ShowC3D only, because MoMo does not draw any lines with gaps, because strides with gaps are excluded for the corresponding variable.
|The model script
a message, if the kinetics have a gap in the last frame of a cycle. This happens
frequently for multi-stride trials, because the final heelstrike of a stride has
contact to the floor, but does not touch a force plate usually. Then the
PlugInGait model (Vicon) treats the kinetics of the last frame of the stride as
gap. Solution: Remove the event markers except for the force plate stride for
the calculations with PlugInGait, and insert the events afterwards again.
moSheetMenu confused the menus
for toggling the visibility of the "Deviation" and the corresponding
style menu "DevStyle". In consequence, activating the
"Std" button did toggle the check-mark before the style menu. This
did not affect the diagrams itself.
|The navigation with the [-] key on sheets failed. Now the keys [-], [+], [tab], [right], [left] and the number keys can be used to raise the different sheets.
ShowGLA (v1.06) created nice
legends on the sheets, but the export to a PDF file destroyed the layout. It
was impossible to determine the extent of the TEXT object, if it contains a
cell string and its units are converted to 'points' during export. In
consequence the alignment of the colored lines and class names was lost.
Now each line of the legend is a separate text object and the font units scale
with the available space. Additional separators allow to fit more text in the
ShowGLA is not included in all distributions of
|The space between diagrams on sheets is increased for nicer view. The former "no Data" message for missing data in the diagrams is moved right beside the diagrams and called just "no". The intention is to reduce the covering of interesting values.
MoMo_local dialog contains the new variable
WorkPath. This will be the standard
output folder for exported files except for the database export. Currently
the WorkPath is supported by a few functions only and the session folder is
used instead. In the future the WorkPath will be established. The value of
WorkPath can be requested with:
ShowC4D version 4.02 let the user
choose the compression and quality of AVI files. A movie can be exported as
series of PNGs in true-color (24 bit) or with an indexed color table (8 bit).
These pictures can be join to an animated GIF with ImageMagick or to a WMV
with MovieMaker of Microsoft. See: ShowC4D.
momoShowVars finds the current
model script of a class itself now:
momoShowVars('>Gait', 'all') displays
all variables of the newest model script for the class Gait.
|A bug in
MoMo at the creation of time-normalized EMG values. This happened in MoMo
5.0.05 to 5.0.10 for the "Elefant" model, when single-trial sheets
|17-May-2009, MoMo 5.0.11:
|New folder: MoMo\R5.0\MomoSheet5.01 MomoSheet5.02
|The sheets single boxes of session-sets
contained the events of the first box ever. This error of
moSetGraph existed since MoMo R4.02/MomoGraph4.03. It is fixed in
MoMo R4.03/MomoGraph4.10 and all versions of MoMo R5.0, but be aware, that
usually only the newest versions are shipped to customers.
|Subsessions are sorted numerically now. The
former alphabetical order was confusing for 10 subsessions: 1, 10, 2, 3, ...
This concerns the display in MoMo and MoMoG, but the results are not changed.
The new method is implemented in
failed for getting the source belonging to a specific title. For single
trial sheets with trials containing more than 1 stride, the wrong trial was
opened in BodyBuilder, ShowC3D or ShowC4D. This is fixed in all versions of
|The simple statistics invoked through the context menu of lines contain a meaningful title of the line (if possible) and the border of the text box equals the style of the selected line now. Now the text box can be moved with the left mouse instead of the context-menu.
GetASC v4.10 crashed at
reading multi-line CHAR arrays.
PutASC of the same version
does not create such files, but with former (and later) versions this is
possible. In addition
GetASC replied wrong strings for more than
Both problems are fixed now. Multi-line CHAR arrays are accepted again, although string-lists (Matlab cell strings) are a better way to store strings in HD-ASC files. Please install a new copy of fASC4.10 and run the unit-test
|19-Jun-2009, MoMo 5.0.12:
|New folder: MoMo\R5.0\MomoGUI5.02 MomoGUI5.03
|Three feature are removed from MoMoG: The checkboxes for norm and standard deviations have been used rarely. The export of normalized trials to ASCII did not work for the Gait model and created files incompatible with the data base functions.
|The template for the user-defined
UserColorTemplate_ used the wrong field name
"ColorOrder" instead of the correct "Color". Thanks to
L. Fradet and S. Wolf.
|The export of trials to the database is
aborted now, if the user presses the cancel button in the dialog for deciding
if existing files can be overwritten. For this feature,
PutASC returns a status now.
|The norm data file cannot be defined in the examination information dialog and file ("ExamInfo.exm") anymore. This was definitely the wrong location to define norm data.
a folder with patches for the current Matlab version dynamically now. Formerly
the toolbox functions needed to be overwritten once during the installation,
but this was not performed reliably on all computers MoMo have run on.
Now there is no need to run <MFiles>\Tools\Matlab_Patch\AutoPatch.m
|The description of the installation procedure is formulated more clearly, especially shorter and in the chronological order.
|A user-defined function can be applied to
the evaluated data before the normalization now. This is controlled by the
input argument UserFcn and it replaces
the former argument "derive". See:
|The HTML help can be opened directly from dialogs of MoMo: Either right-click on the Help button, or open the help in text format and press the Help button on the left bottom, if available.
|Clicking on the lines in the legend of sheets toggles the visibilty of lines in the diagrams. In addition the lines are moved on top of the other lines. This is a shortcut for using the MoMo menu for the same tasks.
|The dialog for reporting problems in MoMoG
displays the progress of compressing the session files now. For large sessions
on network drives the compression takes more than 5 seconds and MoMo should
tell the user, that it is still alive.
For this task a new function for the creation of zip files was needed. It is tested under Matlab 6.5.1 to 7.8 (2009a), but it depends on undocumented Matlab functions! As fallback Matlab's ZIP is used.
inigl $install crashed for the
versions 168 to 173 of inigl. The new version of
the correct upper/lower case of the <MFiles> folder even if the path has
been entered in lower case.
|A right click in the background of a sheet
opens a context menu, which allows to insert a note. These notes can be moved
with the mouse and a context menu let the user edit or delete the notes or
change their appearence. In addition several text fields of the legend (e.g.
the class name and the name of the person) can be edited using the context
In opposite to using Matlab's editing tool form the figure's toolbar, the changes are applied on all pages of the current sheet set.
Adding notes works on standard mean&deviation sheets, single trial sheets, sheets for session-sets (norm data) and ShowGLA sheets.
|Sheets for session-sets had bad legends, if the session-set contained empty boxes.
|No warning anymore, if
started on a drive letter. There is no parent folder for searching the
Patient-ENF file, but this is not worth to warn for.
Fast prints MoMo's output to the command line
at once after processing instead of writing it line by line. This takes about
50% less processing time, but in case of a crash, nothing is displayed. The
Fast mode is activated in
locates session folders inside all subfolder of one or more base folders. The
session folders are recognized by the file filter '*.Session*.enf'.
XBeep deletes the
audioplayer object after a sound is finished.
sound commands stop the
execution on heavy system load with the modal message box "Can't register
sound window". The newer and more stable
produced a warning beep, if the last used object was not cleared before the
exit command. There was no visible error message, but it is
|If a problem occurred at calculating the
ground reaction forces, the message appeared before the header in the command
C3D_GRForce forwards the message to
moGetMotion and all messages belonging to one trial appear in one
|The command line interface of momocd is expanded by the commands "find" to open the session which includes a specified string and "last" to open the previously processed session, e.g. after restarting Matlab.
|After inserting trajectories as 3D arrays
with gaps in a C3D with
fC3D5.12/TouchC3D, the gap information
was lost. This never occurred in the real live, because MoMo never modifies
the C3D files and
FPLift does not touch the trajectories.
|Trials can be disabled permanently through the context menu "Disable" of the trial buttons of MoMoG. This sets the field TRIAL_INFO.CLASS of the trial-ENF to "Not for use". During processing the session, MoMo appends such "Not for use"-trials to the list of ignored files. After processing, MoMoG updates the status of the trial buttons now.
|The axes object of zoomed diagram have been concealed by an invisible axes, which spans the complete figure. While the context menu worked, Matlab's toolbar functions could not find the axes handle.
|The masks for EMG strides have been applied to the analog data. The user-function for EMG data got the analog evaluations as input.
|The MEX functions NVector, NTripod, NCross, MoveMeanFilt, MoveRMSFilt, BlockMean and ChunkMean are about 20% faster, after I've found out that he multiplication with 1/X is much faster than dividing by X.
|The export function for the PlugInGait
PiGMo_DBCore could not export data with analog frequency
due to the typo "XJob.ExpprtAnalog". The error existed in MoMo
R5.0 since 15-Dec-2008.
|For averaged sessions the general database
moDBExport inserted 'No Data' at the wrong locations, if
some variables have only Inf or NaN values.
Thanks to S. Wolf, who has found this bug in a foot session without kinetics trials, but with enabled [Force] flag.
The export of PlugInGait trials has not been affected.
|The foot model script
crashed, if no weight was defined in the examination information. Deleting an
existing weight in this dialog was impossible. Found by S. Wolf.
|The input argument SloppyMarker sets all markers to optional and a trial is not refused if markers are missing. This can be useful to run a model with a reduced marker set. FullCycle must be disabled also, if the model enables it.
|16-Nov-2009, MoMo 5.0.19:
|New model interface
|Thanks to Sebastian Wolf for insisting that
there is a problem: After an invalid model script was chosen for the
class Research in MoMoG, the popup menu is set to the class
$auto. Selecting Research again
fails, because the bad model is still stored in
Solution: If choosing a model for Research class fails,
clear the stored model file:
moResearchModel('$clear'). This can
be done manually also.
Managing the class Research through the function
moResearchModel directly worked well. Just the interaction with
MoMoG was affected by this bug.
|The new version 4.03 of ShowC3D allows to apply user-defined filters to the EMG signals.
|The tooltip strings of the EMG channels have not been updated properly, if multiple C3D files are opened - fixed now.
|15-Jan-2010, MoMo 5.0.24:
|The dialog for
MoMo's preferences has a button for calling
moCacheFile now. The dialog got a new
|The norm data can be changed dynamically in the menu of the sheets, see description. The type of the deviation can be chosen: one and two standard deviation, uncertainty (geometrical sum of std of the sessions), envelope (max and min of all sessions for each time point). The norm data files have a new format now, because the former session-set-box format is too complex and has been subject to changes too often.
|New keyboard commands on the sheets: [m] shows Matlab's command window, [Esc] closes the current set of sheets.
|The possibility to load norm files in open
sheets demands for more powerful Y-limits.
Formerly the auto and fixed values have been determined at the creation of the
sheets, but this is not sufficient if e.g. the deviation is chosen manually to 2
standard deviations and exceed the visible height of the diagrams.
Now there are 3 methods for Y-limits, which can be chosen in the input arguments of MoMo or in the menu of the sheets: 'compact' (default) tries to use 90% of the height of the axes, 'loose' let Matlab choose nice limits with tick marks on the boundary, 'preset' loads limits from a file.
In addition the Y-limits can be copied and pasted to another set of sheets to allow for an easier comparison.
|The menu StyleSolid grid draws solid grey grid lines instead of the black dashed ones from Matlab. Unfortunately the Y-ticks are not updated, so the diagram can look better or worse when printed to paper or PDF - a question of taste. Another problem appears, when the Y-limits are changed manually: Disable the solid grid temporarily to change the Y-limits.
|The item EMG: Auto offset in the tools menu of ShowC3D enables the usage of the mean of the EMG-signals as offset instead of the offset values written by Vicon WorkStation.
|Exporting PNGs with transparent background in ShowC3D failed, if the grid was disabled.
|Norm files of the database can be displayed without a deviation on the sheets of MoMo.
|The C3D toolbox fC3D5.20 is compatible with C3Ds written by Vicon Nexus. Default settings and the identification of analog EMG and AUX channels if performed in a specific function, such the it can be adjusted to the demands of a lab without touching the core functions.
|Starting MoMo fails in the GUI, if a flag is disabled, but was enabled initially. This concerns only version 5.0.24 created after the 22-Mar-2010.
|The automatic cutting with
AutoCutC3D (version: 24-May-20109 forgot to update the C3D
parameter POINT:FRAMES. Use the new function
Ask me for a tool to repair C3D damaged by
AutoCutC3D on demand.
|GetC3D and PutC3D (fC3D5.20) consider trials with more than 65536 frames. Formerly the number of frames have been limited to 32767 frames.
|The model scripts using the interface MI50C can define [GRFThreshold] and [GRFZerloLevel] in the ModelJob section: The Threshold sets the noise limit for the import of forces (10 to 20 N). The ZeroLevel was 'auto' before: the offsets of the GRF signals were determined smartly using estimations about gait phases. But a model can process a trial, which does not have any type of a gait phase. Then the model can set the ZeroLevel method to 'file'.
MoMo GUI can be started with parameters:
momog $expert: enter parameters for momo manually - powerful
momog $many: increases the dialog to display more than 100 trials.
The menu Group->Sort: index/group allows to sort the trial buttons according to the trial index or the groups.
to create a table of values for specific times of the gait cycle and CMCs for a
set of sessions. This concerned MoMo 5.0.12 to 5.0.24.
|The functions of the GLToolbox for processing
file names acceptd UNC-paths now, e.g. "\\server\folder\file.ext":
GetFullPath. But UNC-path processing is
in an early state currently and not well tested. See:
to get the parent of "\\server\folder". This bug stopped the functions
UnitTest. Now these two functions
look for "UnitTest_" folders inside the <MFiles> path only. But
ParentDir is fixes also, of course.
|The events and trajectories had different
orders on single-trial sheets. This is fixed in
MoMo R5.0.0 to 5.0.24.
|16-Jan-2011, MoMo 5.0.26
|The function for the database export
moDBExport failed for trials, which contain more than one class,
e.g. both feet. This bug existed since Nov-2009 in MoMo 5.0.18 and higher.
|The lines of analog data drawn by ShowC3D can be shifted manually: Enable Context menu>Manual shift and drag the data lines with the mouse.
|MoMo crashed in the function
moNMSMotion, if the intermediate event to disable a trial could
not be identified: While the identification worked well, displaying the found
name failed. The problem existed since MoMo 5.0.00 (24-Jan-2008), but it never
occurred, because the needed event was found ever.
|The functions for EMG filtering are part of
C3D_Filter. Before there have been different filter
functions for MoMo ShowC3D, MVCG and HD_EMG.
|The cropping of the trajectories in the exported ASCII files can be controlled by the model function now. See MoMo's parameter dbcrop.
|MoMo's SingleStack diagrams crashed if a model defines more than 3 events for cutting a cycle. Now the event lines are highlighted also, if a cycle is selected.
|Vicon Nexus writes the parameters LABELS2/3/... and DESCRIPTIONS2/3/... for more than 255 trajectories in C3D files. Unfortunately WorkStation forgets DESCRIPTIONS2, if the corresponding names are not defined in the MarkerSet file. Now the missing descriptions are set to 'unknown' by fC3D5.21 automatically. In debug mode a warning is written to the command window.
|MoMoG uses the enlarged GUI if it finds more
than 100 trials automatically. This can be done manually by calling
momog $many. A splash screen is shown during the dialog opens.
|The fC3D functions consider the GEN_SCALE value now. Because all C3Ds I've seen yet have GEN_SCALE==1.0, a warning appears, but the values are assumed to be correct. Please contact me if you need the GEN_SCALE factor.
|The fENF toolbox got the new function
CheckLockedENF to check the field [ENF.LOCK_INFO.CURR_USER] of
a trial or a set of trials.
|A right-click on the Plot button of ShowC3D creates the diagrams for the current file only, while a left-click includes the selected variables of all opened files.
|GetC3D failed for reading C3Ds in integer format, if the import of coordinates was disabled. Now the import of only analog signals from a C3D is faster, because reading the coordinates is omitted.
|The context menu of
crashed, if only one trajectory was displayed in a 2D-diagram.
backups of modified C3D files in the local TEMP folder.
fC3D_Backup $cleanup deletes all files, which are older than 2
months. See also:
|The different indexing methods can be
fC3D_FrameIndex. The "video frames" are
related to the originally recorded interval, while the "video samples"
are related to the frames store in the C3D and consider cutting. The "analog
frames" and "analog samples" take into account the number of
analog frames per video frame, such that an interval of 1 video frame contains
[AnalogRate] analog frames. The indices can be converted to seconds also.
for large C3Ds, this means more than 65535 frames. Now this function can handle
such files correctly and accepts hard limits also to cut a C3D manually at
fC3D_SetParam can replace or
insert parameters to an existing C3D file. This function considers the
byte-order of the numerical file type, group indices of existing groups and
the string width of existing parameters. Therefore re-inserting all existing
parameters results in an bit-exact copy of the original file.
inigl failed to get the
real upper/lower case of the path name for UNC paths.
NOTE: Several MATLAB function do not run, when the current folder is a UNC path.
crashed, when old cache files should be deleted, but no cache files are
existing. This function is called e.g. from
Limit Trial Cache.
relative paths, if the current folder is a UNC-path.
|MoMo 5.0.26, the GLToolbox and the input/output filters are tested under 2009a/64 and 2011b/64 and Windows 7 exhaustively. MEXW64 files are included in the distributions.
|The import of fC3D5.22 accepts C3D files,
which differ from the strict Vicon style: TDPs for boths sides, LABELS without
DESCRIPTIONS, analog channels without a GAIN, etc. The user can define in
fC3D_UserDef if such C3Ds are rejected or accepted as default. For
reading a single file, this can be triggered using the
if the version fENF1.53 can read and write Unicode encoded characters now. As
default the files are imported as UTF-8 (this can be adjusted in the code) and
written using the same encoding as applied during the reading.
|The 64-bit Mex files are compiled by the Windows SDK7.0 compilers, such that they need the MSVC2008 SP1 redistributables.
|The license tools are working now for 32-bit Matlab versions running on a 64-bit Windows.
XBeep has been a source
of troubles since Matlab 5.3, e.g. Matlab 6.5 and 2011b crash when it is finished
and a persistent AudioPlayer object is still existing. Therefore
uses the new
AutoFinish tool to insert a secure cleanup mechanism in
the finish.m file.
ShowC3D considers TeX format
strings in the legends of the diagrams now.
|New features in fC3D version 5.23:
|11-May-2018, MoMo 5.1, fC3D 5.31
|For these versions Matlab 6.5 support was
dropped and HG2 (since Matlab R2014a) is supported:
|moFPIndex.m limited considered 3 force plates only.