MoMo R5.1: Changes

1. Contents
2. Setup
3. Preferences
4. Sessions
5. Command line
6. Models
7. Visualize C3D
8. Administration
9. Changes:9.1Locations of lists
9.2List of changes
9.3Open bugs

9.1 Locations of lists

Several lists of changes are kept uptodate with the source code for the different purposes:

9.2 List of changes

Get the version and date of the local MoMo installation: momo ver.
01-Feb-2009, MoMo 5.0.10: Initial status of this documentation.
Base path:MoMo\R5.0\
Subfolders: ModelTools5.01, Models_Safe, Models_User, Momo3D5.00, Momo5.02, MomoGUI5.02, MomoGraph5.01, MomoSet5.00, MomoSheet5.01, MomoSuper5.02, MomoTools5.01
File access: Filters\fASC4.10, Filters\fC3D5.12, Filters\fENF1.52, Filters\fTrans1.28
Toolbox:GLTools version 2.102, 07-Jan-2009
Extras:FPLift1.03, ShowC3D4.01, DBFunc2.00, ShowGLA1.06
Note: These extra tools are not included in all distributions.
Bugfix: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.
New: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.
Bugfix:moYLimits stored zeros for all limits except for the last sheet.
New: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.
New: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.
New:The model script PiGMo10 create 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.
Bugfix: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.
Bugfix: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.
Bugfix: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 legend area.
Note: ShowGLA is not included in all distributions of MoMo.
Modified: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.
New:The see: 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: MoMo_local('WorkPath').
New: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: see: ShowC4D.
New: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.
Bugfix:A bug in moNMSMotion stopped 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 are created.
17-May-2009, MoMo 5.0.11:
Version: New folder: MoMo\R5.0\MomoSheet5.01 -> MomoSheet5.02
Bugfix: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.
New: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 moFindFile.
Bugfix:The function moGraphCB 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 MoMo R5.0.
Changed: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.
Bugfix: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 512 characters.
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 addunittest; TestfASC.
New:Matlab R2009a:
  • Unit-tests and the MoMo's selftest successful,
  • MEX files are compatible with Matlab 7.6,
  • The list of open bugs is long and remarkable,
  • Therefore Matlab R2008b is recommended until further tests.
19-Jun-2009, MoMo 5.0.12:
Version: New folder: MoMo\R5.0\MomoGUI5.02 MomoGUI5.03
Modified: 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.
Bugfix:The template for the user-defined color style UserColorTemplate_ used the wrong field name "ColorOrder" instead of the correct "Color". Thanks to L. Fradet and S. Wolf.
Modified: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.
Removed: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.
Modified:The function inigl includes 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 anymore.
Modified:The description of the installation procedure is formulated more clearly, especially shorter and in the chronological order.
New: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: moUserFcn, UserFcn_Template_.
Modified: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.
New: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.
New: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.
Bugfix:inigl $install crashed for the versions 168 to 173 of inigl. The new version of inigl recognizes the correct upper/lower case of the <MFiles> folder even if the path has been entered in lower case.
New: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 menu (right-click).
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.
Bugfix:Sheets for session-sets had bad legends, if the session-set contained empty boxes.
Nicer:No warning anymore, if MoMoG is started on a drive letter. There is no parent folder for searching the Patient-ENF file, but this is not worth to warn for.
New:The argument 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 momoRapid, momoSet and momoNorm.
New:The function moFindSession locates session folders inside all subfolder of one or more base folders. The session folders are recognized by the file filter '*.Session*.enf'.
Bugfix:Now XBeep deletes the audioplayer object after a sound is finished.
Matlab's wavplay and sound commands stop the execution on heavy system load with the modal message box "Can't register sound window". The newer and more stable audioplayer object produced a warning beep, if the last used object was not cleared before the final exit command. There was no visible error message, but it is cleaner now.
Nicer:If a problem occurred at calculating the ground reaction forces, the message appeared before the header in the command window. Now C3D_GRForce forwards the message to moGetMotion and all messages belonging to one trial appear in one block.
New:The command line interface of see: 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.
Bugfix: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.
New: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.
Bugfix: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.
Bugfix:The masks for EMG strides have been applied to the analog data. The user-function for EMG data got the analog evaluations as input.
Modified: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.
Bugfix:The export function for the PlugInGait model 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.
Bugfix:For averaged sessions the general database export 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.
Bugfix:The foot model script Foot19 crashed, if no weight was defined in the examination information. Deleting an existing weight in this dialog was impossible. Found by S. Wolf.
New: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:New model interface MI50C:
  • The section $TrialMClass can define a struct MClass.UserData to control computations in the $Dynamic section. This was needed to let the $Dynamic section access over the parsed EMG field of the trial-ENF.
  • The sections $Static, $Joint and $Dynamic can export messages to the files, which are exported to the database. See: help moDBExportMsg.
Existing models need not be modified and work under MoMo 5.0.19. Models using the new features do not run under MoMo < 5.0.12, but it is easy to create a model which works under MI50B and MI50C - feel free to ask me.
Bugfix: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 moResearchModel! 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.
New:The new version 4.03 of see: ShowC3D allows to apply user-defined filters to the EMG signals.
Bugfix: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:
New:The dialog for MoMo's preferences has a button for calling momoClear and moCacheFile now. The dialog got a new look also.
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:New keyboard commands on the sheets: [m] shows Matlab's command window, [Esc] closes the current set of sheets.
New: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.
New:The menu Style->Solid 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.
New:The item EMG: Auto offset in the tools menu of see: ShowC3D enables the usage of the mean of the EMG-signals as offset instead of the offset values written by Vicon WorkStation.
Bugfix:Exporting PNGs with transparent background in see: ShowC3D failed, if the grid was disabled.
New:Norm files of the database can be displayed without a deviation on the sheets of MoMo.
New: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.
Bugfix: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.
Bugfix:The automatic cutting with AutoCutC3D (version: 24-May-20109 forgot to update the C3D parameter POINT:FRAMES. Use the new function C3D_AutoCut instead. Ask me for a tool to repair C3D damaged by AutoCutC3D on demand.
New:GetC3D and PutC3D (fC3D5.20) consider trials with more than 65536 frames. Formerly the number of frames have been limited to 32767 frames.
New: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'.
New:The MoMo GUI can be started with parameters:
momog $expert: enter parameters for momo manually - powerful and dangerous.
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.
Bugfix:The function momoTable failed 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.
New:The functions of the GLToolbox for processing file names acceptd UNC-paths now, e.g. "\\server\folder\file.ext": fFileParts, GetFileName, GetFileExt, ParentDir, GetFullPath. But UNC-path processing is in an early state currently and not well tested. See:
Bugfix:The function ParentDir failed to get the parent of "\\server\folder". This bug stopped the functions startunittest and UnitTest. Now these two functions look for "UnitTest_" folders inside the <MFiles> path only. But ParentDir is fixes also, of course.
Bugfix:The events and trajectories had different orders on single-trial sheets. This is fixed in moSingleGraph of MoMo R5.0.0 to 5.0.24.
16-Jan-2011, MoMo 5.0.26
Bugfix: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.
New:The lines of analog data drawn by see: ShowC3D can be shifted manually: Enable Context menu>Manual shift and drag the data lines with the mouse.
Bugfix: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.
New:The functions for EMG filtering are part of fC3D5.21 now: C3D_Filter. Before there have been different filter functions for MoMo ShowC3D, MVCG and HD_EMG.
New:The cropping of the trajectories in the exported ASCII files can be controlled by the model function now. See MoMo's parameter dbcrop.
Bugfix: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.
New: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.
New: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.
New: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.
New: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.
New:A right-click on the Plot button of see: ShowC3D creates the diagrams for the current file only, while a left-click includes the selected variables of all opened files.
Bugfix: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.
Bugfix:The context menu of ShowC3D 4.03 crashed, if only one trajectory was displayed in a 2D-diagram.
New:The function fC3D_Backup stores backups of modified C3D files in the local TEMP folder. fC3D_Backup $cleanup deletes all files, which are older than 2 months. See also: help fC3D_Backup.
New:The different indexing methods can be converted by 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.
New:MachineC3D1.00\C3D_AutoCut failed 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 specified frames.
New: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.
Bugfix: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.
Bugfix:The function moCacheFile crashed, when old cache files should be deleted, but no cache files are existing. This function is called e.g. from momoPrefs -> Limit Trial Cache.
Bugfix:GetFullPath considers relative paths, if the current folder is a UNC-path.
New:Machine_local recognizes Windows 8.
New: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.
New: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 Job.Style property.
New:GetENF and PutENF 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.
New:The 64-bit Mex files are compiled by the Windows SDK7.0 compilers, such that they need the MSVC2008 SP1 redistributables.
New:The license tools are working now for 32-bit Matlab versions running on a 64-bit Windows.
New:The function 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 XBeep uses the new AutoFinish tool to insert a secure cleanup mechanism in the finish.m file.
Bugfix:ShowC3D considers TeX format strings in the legends of the diagrams now.
New:New features in fC3D version 5.23:
  • [C3D.Analog.SignalInd] is called [C3D.Analog.SignalIndex] now.
  • The function C3D_FixDelay manages a temporal offset of analog channels.
  • GetC3D replies [C3D.Model.MaxGap].
  • fC3D_SetTraj adds or replaces trajectories.
11-May-2018, MoMo 5.1, fC3D 5.31
New:For these versions Matlab 6.5 support was dropped and HG2 (since Matlab R2014a) is supported:
  • fC3D 5.31
  • MoMo 5.1
  • ShowC3D 4.10
Most important changes:
  • MException in try/catch blocks
  • HG2 support: Graphic handles are not doubles anymore. To be compatible with HG1 and HG2 arrays of graphic handles are initialized by the new function HGArray, which is a wrapper for zeros or gobjects, respectively. In addition the handles are not compared by DAinBP/DisAinB/etc anymore.
  • HG2 does not allow to set the EraseMode of graphic objects anymore.
Bugfix:moFPIndex.m limited considered 3 force plates only.
If this is a local version of MoMo's documentation, see also: Current list in the web.

9.3 Open bugs and limitations

Author: © Jan Simon, Imprint / Impressum   File: Help/momo_5.1/change.html    22-Jan-2022   MoMo: 5.1.34