changeset 16:90887c0061d4

Merge branch 'develop’. Various updates to documentation, including new MASSEF.doc() method for launching the html documentation.
author Christopher Hummersone <c.hummersone@surrey.ac.uk>
date Tue, 07 Mar 2017 12:23:29 +0000
parents 53ace3ec800c (current diff) bdd77fe783e4 (diff)
children de809787c021
files
diffstat 11 files changed, 142 insertions(+), 21 deletions(-) [+]
line wrap: on
line diff
--- a/MASSEF.m	Fri Mar 03 10:37:21 2017 +0000
+++ b/MASSEF.m	Tue Mar 07 12:23:29 2017 +0000
@@ -31,10 +31,9 @@
 %   Type
 % 
 %       MASSEF.start
-%       doc
+%       MASSEF.doc
 % 
-%   and click 'Multichannel audio source separation evaluation framework
-%   (MASSEF)' under 'Supplemental Software' for more information.
+%   for more information.
 % 
 %   MASSEF can be used to evaluate and compare separation algorithms,
 %   provided that the algorithms conform to the required format. Consult
@@ -77,6 +76,7 @@
 %                             and separators.
 %       save                - Save the framework's data and results.
 %     Static methods:
+%       doc                 - Display the framework documentation.
 %       start               - Start the framework.
 %       install             - Download and install MASSEF dependencies.
 % 
@@ -199,11 +199,9 @@
         %   separation algorithm instances contained in SEPARATORS should
         %   conform to the required format. Type
         % 
-        %       doc
+        %       MASSEF.doc
         % 
-        %   and click 'Multichannel audio source separation evaluation
-        %   framework (MASSEF)' under 'Supplemental Software' for more
-        %   information.
+        %   for more information.
         % 
         %   The EXECUTE method performs evaluations of the algorithm
         %   according to the data returned by the algorithm, and the
@@ -537,6 +535,15 @@
     
     methods (Static)
         
+        function doc
+        %DOC Display the framework documentation.
+            try
+                web(fullfile(MASSEF.dir, 'help_html', 'help_Index.html'), '-helpbrowser')
+            catch
+                web(fullfile(MASSEF.dir, 'help_html', 'help_Index.html'))
+            end
+        end
+        
         function start
         %START Start the framework.
         %
--- a/README.md	Fri Mar 03 10:37:21 2017 +0000
+++ b/README.md	Tue Mar 07 12:23:29 2017 +0000
@@ -48,11 +48,9 @@
 Experiments are conducted with the MASSEF class. For more information about the various framework options, type
 
 ```
-doc
+MASSEF.doc
 ```
 
-and click 'Multichannel audio source separation evaluation framework (MASSEF)' under 'Supplemental Software' for more information.
-
 More information on implementing separation algorithms can be found in the help documentation.
 
 ## Cite Me
--- a/help_html/helptoc.xml	Fri Mar 03 10:37:21 2017 +0000
+++ b/help_html/helptoc.xml	Tue Mar 07 12:23:29 2017 +0000
@@ -5,6 +5,7 @@
         <tocitem target="help_MASSEF.html">MASSEF
             <tocitem target="help_MASSEF_evaluate.html">MASSEF.evaluate</tocitem>
             <tocitem target="help_MASSEF_execute.html">MASSEF.execute</tocitem>
+            <tocitem target="help_MASSEF_doc.html">MASSEF.doc</tocitem>
             <tocitem target="help_MASSEF_install.html">MASSEF.install</tocitem>
             <tocitem target="help_MASSEF_save.html">MASSEF.save</tocitem>
             <tocitem target="help_MASSEF_start.html">MASSEF.start</tocitem>
--- a/help_html/source/help_Example.m	Fri Mar 03 10:37:21 2017 +0000
+++ b/help_html/source/help_Example.m	Tue Mar 07 12:23:29 2017 +0000
@@ -58,6 +58,10 @@
 
 p = messl_massef(fs);
 
+%%
+% |messl_massef| is a wrapper class for the <https://github.com/mim/messl
+% messl> algorithm. The class implementation is shown below.
+
 %% Choose MASSEF options
 % Specify the parameters of the MASSEF object:
 
@@ -78,6 +82,14 @@
 
 resultsTable = massef.results.data;
 
+%% MESSL wrapper implementation
+% <matlab:edit(fullfile(MASSEF.dir,'help_html','source','messl_massef.m'))
+% Open in the MATLAB editor>.
+% 
+% <include>messl_massef.m</include>
+% 
+% See <help_Separators.html Separation Algorithms> for more information.
+
 %% See also
 % <help_MASSEF.html MASSEF>, <help_MASSEFresults.html MASSEFresults>.
 % 
--- a/help_html/source/help_Index.m	Fri Mar 03 10:37:21 2017 +0000
+++ b/help_html/source/help_Index.m	Tue Mar 07 12:23:29 2017 +0000
@@ -12,8 +12,9 @@
 % evaluate the ideal masks for the purposes of comparison.
 % 
 % Sources may have any number of channels; the framework evaluates each
-% channel. The use of iosr.bss.mixture objects facilitate the evaluation of
-% spatialised mixtures (e.g. binaural).
+% channel. The use of <matlab:doc('iosr.bss.mixture') |iosr.bss.mixture|>
+% objects facilitate the evaluation of spatialised mixtures (e.g.
+% binaural).
 % 
 % The framework comprises two main classes:
 % 
@@ -40,7 +41,8 @@
 % 
 % The framework can be run in two ways:
 % 
-% # by providing |iosr.bss.mixture| objects and separation algorithms, or
+% # by providing <matlab:doc('iosr.bss.mixture') |iosr.bss.mixture|>
+%   objects and separation algorithms, or
 % # by providing estimate and true source wav files.
 %   
 % If 1), the framework operates as described above. In addition, the
--- a/help_html/source/help_MASSEF.m	Fri Mar 03 10:37:21 2017 +0000
+++ b/help_html/source/help_MASSEF.m	Tue Mar 07 12:23:29 2017 +0000
@@ -27,6 +27,10 @@
 % considered at any one time. The default is 128.</td>
 % </tr>
 % <tr>
+% <td><tt>creationDate</tt></td>
+% <td>Date the object was created (read-only).</td>
+% </tr>
+% <tr>
 % <td><tt>dir</tt></td>
 % <td>The MASSEF installation directory (read-only).</td>
 % </tr>
@@ -59,6 +63,10 @@
 % href="help_MASSEF_execute.html">MASSEF.execute</a> finishes.
 % The default is <tt>'Results/results.mat'</tt>.</td>
 % </tr>
+% <tr>
+% <td><tt>saveDate</tt></td>
+% <td>Date the object was last saved (read-only).</td>
+% </tr>
 % </table>
 % </html>
 %   
@@ -80,6 +88,10 @@
 % <td><a href="help_MASSEF_execute.html">execute</a></td>
 % <td>Run the framework using the input mixtures and separators.</td>
 % </tr>
+% <tr>
+% <td><a href="help_MASSEF_save.html">save</a></td>
+% <td>Save the framework's data and results.</td>
+% </tr>
 % </table>
 % </html>
 % 
@@ -87,6 +99,9 @@
 % 
 % <html>
 % <table>
+% <tr>
+% <td><a href="help_MASSEF_doc.html">doc</a></td>
+% <td>Display the framework documentation.</td>
 % </tr>
 % <tr>
 % <td><a href="help_MASSEF_install.html">install</a></td>
@@ -95,6 +110,7 @@
 % <tr>
 % <td><a href="help_MASSEF_start.html">start</a></td>
 % <td>Start the framework.</td>
+% </tr>
 % </table>
 % </html>
 % 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/help_html/source/help_MASSEF_doc.m	Tue Mar 07 12:23:29 2017 +0000
@@ -0,0 +1,14 @@
+%% MASSEF.doc
+% Display the framework documentation.
+% 
+%% Syntax
+% 
+%   MASSEF.doc
+% 
+% |MASSEF.doc| opens the framework's documentation in the MATLAB browser.
+% 
+% <html>
+% <hr>
+% <p>Copyright &copy; 2016 <a href="http://www.surrey.ac.uk">University of Surrey</a><br>
+% <a href="http://iosr.uk">Institute of Sound Recording, University of Surrey, UK</a></p>
+% </html>
--- a/help_html/source/help_MASSEF_execute.m	Fri Mar 03 10:37:21 2017 +0000
+++ b/help_html/source/help_MASSEF_execute.m	Tue Mar 07 12:23:29 2017 +0000
@@ -8,12 +8,12 @@
 % 
 % |massef.execute(mixtures,separators)| runs the multichannel audio source
 % separation evaluation framework (MASSEF) using the <help_MASSEF.html
-% MASSEF> instance |massef|, the array of |iosr.bss.mixture| objects
-% |mixtures| and the array (or cell array) of instances of separation
-% algorithms contained in |separators|. Separation is performed for all
-% combinations of separators and mixtures. The separation algorithm
-% instances contained in |separators| should conform to the
-% <help_Separators.html required format>.
+% MASSEF> instance |massef|, the array of <matlab:doc('iosr.bss.mixture')
+% |iosr.bss.mixture|> objects |mixtures| and the array (or cell array) of
+% instances of separation algorithms contained in |separators|. Separation
+% is performed for all combinations of separators and mixtures. The
+% separation algorithm instances contained in |separators| should conform
+% to the <help_Separators.html required format>.
 % 
 % The |execute| method performs evaluations of the algorithm according to
 % the data returned by the algorithm, and the options provided to
@@ -43,7 +43,7 @@
 % The |execute| method also calculates and evaluates the ideal binary and
 % ratio masks using the signal-related metrics utilised for the algorithm
 % evaluation. The masks are calculated using the settings that are local to
-% each |iosr.bss.mixture| object.
+% each <matlab:doc('iosr.bss.mixture') |iosr.bss.mixture|> object.
 % 
 % Lastly, the framework captures the estimated azimuth and elevation of the
 % targets and interferer(s), if they are returned.
--- a/help_html/source/help_Separators.m	Fri Mar 03 10:37:21 2017 +0000
+++ b/help_html/source/help_Separators.m	Tue Mar 07 12:23:29 2017 +0000
@@ -48,7 +48,8 @@
 % 
 % The |MASSEFseparator| class is provided for use as a base class for
 % separation algorithms. The |separate()| method is abstract and hence must
-% be implemented in the derived class.
+% be implemented in the derived class. See the <help_Example.html Example>
+% page for an example of the use of |MASSEFseparator|.
 % 
 %% See also
 % <help_MASSEF.html MASSEF>, <help_MASSEF_execute.html MASSEF.execute>.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/help_html/source/messl_massef.m	Tue Mar 07 12:23:29 2017 +0000
@@ -0,0 +1,69 @@
+classdef messl_massef < MASSEFseparator
+%MESSL_MASSEF Wrapper class for the MESSL algorithm.
+%
+%   A wrapper class for the MESSL algorithm (https://github.com/mim/messl).
+%
+%   MESSL_MASSEF properties:
+%       label       - A label for the instance of the algorithm (shown in
+%                     the results file).
+%       estTag      - Tags for the estimated outputs.
+%       fs          - The sampling frequency that the separator will run
+%                     at.
+%
+%   MESSL_MASSEF methods:
+%       messl_massef    - Create an instance of the algorithm.
+%       separate        - Run the separation algorithm on the time-domain
+%                         mixture.
+%
+%   See also MASSEF.
+
+%   Copyright 2016 University of Surrey.
+    
+    properties % Public properties
+        fs     % Sampling frequency
+    end
+    
+    methods
+        
+        function obj = messl_massef(fs) % constructor
+        %MESSL_MASSEF Create an instance of the separation algorithm
+        %
+        %   OBJ = MESSL_MASSEF(FS) creates an instance of the MESSL
+        %   algorithm at the sampling frequency FS.
+            
+            % this code creates an instance of the object
+            obj.label = 'MESSL';
+            obj.estTag = {'Fancier usage'};
+            obj.fs = fs;
+            
+            % check dependency is compiled
+            iosr.general.checkMexCompiled('logProbGmm.cpp');
+            
+        end
+        
+        % separation
+        function [signal,mask,est_azis,est_eles] = separate(obj,mixture)
+        %SEPARATE separate the mixture
+        %
+        %   SIGNAL = OBJ.SEPARATE(MIXTURE) separates the time-domain
+        %   mixture signal MIXTURE and produces the estimated output
+        %   SIGNAL.
+            
+            lr = mixture';
+            tau = tauGrid(0.15, obj.fs, 31);
+            
+            m = messl(lr, tau, 2, 'vis', 1, 'ildPriorPrec', 3, ...
+                'GarbageSrc', 1, 'sr', 16000, 'vis', 0);
+            
+            m2 = prob2mask(m);
+            signal = reconstruct(m2, lr, 1);
+            
+            mask = [];
+            est_azis = [];
+            est_eles = [];
+            
+        end
+        
+    end
+    
+end
--- a/help_html/source/publishHelp.m	Fri Mar 03 10:37:21 2017 +0000
+++ b/help_html/source/publishHelp.m	Tue Mar 07 12:23:29 2017 +0000
@@ -11,6 +11,7 @@
 publish('help_MASSEF.m',options);
 publish('help_MASSEF_evaluate.m',options);
 publish('help_MASSEF_execute.m',options);
+publish('help_MASSEF_doc.m',options);
 publish('help_MASSEF_install.m',options);
 publish('help_MASSEF_save.m',options);
 publish('help_MASSEF_start.m',options);