Commit 782437e1 authored by Dipl.-Ing. Jonas Stienen's avatar Dipl.-Ing. Jonas Stienen

Merge branch 'master' of

parents 33ff6037 f8e4a9c6
...@@ -14,7 +14,6 @@ Thumbs.db ...@@ -14,7 +14,6 @@ Thumbs.db
*.csv *.csv
*.h5 *.h5
*.ita *.ita
*.png *.png
*.jpeg *.jpeg
*.sofa *.sofa
[submodule "internal"]
path = internal
url =
branch = master
#### Contributing to the ITA-Toolbox
You can contribute to the ITA-Toolbox in many ways:
* reporting bugs,
* fixing bugs,
* writing documentation,
* implementing new features,
* improving existing features.
## Reporting Bugs
* Please make sure that the [software requirements]( for using the ITA-Toolbox are fulfilled.
* You can report bugs using the [issue tracker on the projects GitLab page]( or by sending an E-Mail to the [developer mailing list]( Make sure that your bug report is structured and includes all necessary detail for us to fix it. For guidelines on how to write a bug report take a look at [Good Bug Reports]( In short:
* Mention your MATLAB version, the operating system and its version.
* Choose a matching title that is descriptive for your bug.
* Give a SHORT MATLAB code snippet or figure that shows the issue.
* Give a detailed description of the problem at hand.
## Submitting Bugfixes and Features
For style guidelines and best practices in writing code for the ITA-Toolbox please take a look at the corresponding [Wiki section](
You can contribute bugfixes and features by submitting [merge requests]( to the repository.
Make sure that you follow the following guidelines:
* It is highly recommended that you generate a new branch when working on a bugfix or a new feature.
* Work on your fix/feature inside your new branch.
* Create representative tests for your code if you create a new feature.
* Once finished file the merge request. Your merge request will now be reviewed and discussed.
* After all discussions are resolved and your request gets approved your code will be merged into the master branch.
*************************************************************************************** ************************************************************************
****** Welcome to ITA-Toolbox for MATLAB ****************** ******* ITA-Toolbox for MATLAB *********
*************************************************************************************** ************************************************************************
Please be aware of the license agreement supplied with this Toolbox (license.txt) Please be aware that by using this toolbox you accept the license
Please report serious bugs to agreement supplied in the 'license.txt' file.
Please report bugs to
*************************************************************************************** ************************************************************************
*************************************************************************************** ************************************************************************
In the following, MATLAB commands (to be entered in the 'command window'
will be denoted in <>. The actual command has to be entered without <>.
1) Open MATLAB R2010a or higher, with Signal Processing Toolbox Before you start make sure you unpacked the toolbox from the .zip file.
2) Navigate to this ITA-Toolbox folder, where this README.txt lies in.
3) Type <ita_toolbox_setup> in your MATLAB console
4) Follow the instructions and have a look at the GUI and Getting Started Tutorial Script supplied
*************************************************************************************** 1) Open MATLAB R2014b or higher
2) Check for Signal Processing and Curve Fitting Toolboxes are installed
3) Open the ITA-Toolbox root folder (containing the current file).
4) Execute <ita_toolbox_setup>
5) Follow the instructions.
6) For an overview of available tutorials and demos:
<ita_tutorialOverview> and <ita_demoOverview>
7) To generate the documentation execute the function
<ita_generate_documentation> followed by <doc> to open it.
It might be necessary to restart MATLAB for the ITA-Toolbox
documentation to appear in the MATLAB help browser.
*************************************************************************************** ************************************************************************
To uninstall ITA-Toolbox for MATLAB: 1) <ita_toolbox_uninstall>
1) type <ita_delete_toolboxpaths>
simply type <pathtool> in your MATLAB console and delete all path entries for ITA-Toolbox and save path list.
2) Close MATLAB. 2) Close MATLAB.
3) Delete your ITA-Toolbox folder 3) Delete your ITA-Toolbox folder
*************************************************************************************** ************************************************************************
** Have fun! ** ** Have fun! **
*************************************************************************************** ************************************************************************
Your ITA-Toolbox Developer Team Your ITA-Toolbox Developer Team
Aachen, Germany, February 2013
\ No newline at end of file
# ITA-Toolbox # ITA-Toolbox
Welcome to the ITA-Toolbox Welcome to the ITA-Toolbox, an open source MATLAB toolbox for acoustics developed by the [Institute of Technical Acoustics]( of the [RWTH Aachen University](
* Open source project developed by the [Institute of Technical Acoustics](, [RWTH Aachen University]( [Project Website](
* Full-fledged Toolbox, well-integrated in the MATLAB environment.
* Including demo files, documentation and tutorials to get started quickly.
* Deals with playable audio files or simulation data (including physical unit calculation and spatial information).
* A graphical user interface and various plot routines for the graphical output of all kind of relevant acoustic data.
* Object-oriented programming concepts for using of well-known MATLAB commands and operators to audio data.
* Makes it easy to do basic signal analysis and processing, record and playback audio files and much more...
You can find the first instructions how to deal with the ITA-Toolbox in the [Getting Started](ITA_Toolbox_Getting_Started.pdf) file. [Wiki](
[Setup Instructions](Getting_Started.txt)
\ No newline at end of file
...@@ -295,7 +295,7 @@ classdef itaHRTF < itaAudio ...@@ -295,7 +295,7 @@ classdef itaHRTF < itaAudio
pairs = zeros(coord.nPoints/2,2); pairs = zeros(coord.nPoints/2,2);
if coord.nPoints>10000 % takes a while if coord.nPoints>10000 % takes a while
ita_verbose_info([num2str(coord.nPoints) ' Points has to be sorted ...please wait...'], 0); ita_verbose_info([num2str(coord.nPoints) ' Points have to be sorted ...please wait...'], 0);
end end
...@@ -760,14 +760,18 @@ classdef itaHRTF < itaAudio ...@@ -760,14 +760,18 @@ classdef itaHRTF < itaAudio
end end
function surf(varargin) function surf(varargin)
sArgs = struct('pos1_data','itaHRTF', 'earSide', 'L', 'freq' , 5000,'type','directivity'); sArgs = struct('pos1_data','itaHRTF', 'earSide', 'L', 'freq' , 5000,'type','directivity','log',1);
[this,sArgs] = ita_parse_arguments(sArgs,varargin); [this,sArgs] = ita_parse_arguments(sArgs,varargin);
idxF = this.freq2index(sArgs.freq); idxF = this.freq2index(sArgs.freq);
position = get(0,'ScreenSize'); position = get(0,'ScreenSize');
figure('Position',[10 50 position(3:4)*0.85]); figure('Position',[10 50 position(3:4)*0.85]);
freqData_dB = this.getEar(sArgs.earSide).freqData_dB; if sArgs.log
freqData_dB = this.getEar(sArgs.earSide).freqData_dB;
freqData_dB = this.getEar(sArgs.earSide).freqData;
switch sArgs.type switch sArgs.type
case 'directivity' case 'directivity'
surf(this.dirCoord,freqData_dB(idxF,:)); surf(this.dirCoord,freqData_dB(idxF,:));
...@@ -784,15 +788,22 @@ classdef itaHRTF < itaAudio ...@@ -784,15 +788,22 @@ classdef itaHRTF < itaAudio
end end
function display(this) function display(this)
this.displayLineStart if numel(this) == 0
this.disp disp('****** nothing to do, empty object ******')
elseif numel(this) > 1
dir = num2str(this.nDirections,5); disp(['size(' inputname(1) ') = [' num2str(size(this)) ']; (for full display, pick a single instance)']);
stringD = [dir ' Directions (Type = ' this.mTF_type ')']; else
dir = num2str(this.nDirections,5);
stringD = [dir ' Directions (Type = ' this.mTF_type ')'];
middleLine = this.LINE_MIDDLE;
middleLine(3:(2+length(stringD))) = stringD;
fprintf([middleLine '\n']);
middleLine = this.LINE_MIDDLE;
middleLine(3:(2+length(stringD))) = stringD;
fprintf([middleLine '\n']);
end end
function disp(this) function disp(this)
...@@ -41,7 +41,7 @@ HRTF_find.play_gui(pinkNoise); ...@@ -41,7 +41,7 @@ HRTF_find.play_gui(pinkNoise);
%% Binaural parameters %% Binaural parameters
ITD = slicePhi.ITD; % different methods are available: see method in itaHRTF ITD = slicePhi.ITD; % different methods are available: see method in itaHRTF
ILD = slicePhi.ILD; %ILD = slicePhi.ILD;
%% Modifications %% Modifications
% calculate DTF % calculate DTF
...@@ -65,8 +65,12 @@ HRTF_interp = HRTF_sphere.interp(coordI); ...@@ -65,8 +65,12 @@ HRTF_interp = HRTF_sphere.interp(coordI);
nameDaff_file = 'HRTF_sphere.daff'; nameDaff_file = 'HRTF_sphere.daff';
HRTF_sphere.writeDAFFFile(nameDaff_file); HRTF_sphere.writeDAFFFile(nameDaff_file);
HRTF_daff = itaHRTF('daff',nameDaff_file); %HRTF_daff = itaHRTF('daff',nameDaff_file);
nameDaff_file2 = 'C:\Users\bomhardt\Documents\ITA-Toolbox\applications\TODOunfinished\test_marcia\DATA\HRTF_ITAKopf_Nov2013_MartinPollow\ITA-Kunstkopf_HRIR_Mess01_D180_1x1_256.daff'; nameDaff_file2 = 'yourHRTF.daff';
HRTF_daff2 = itaHRTF('daff',nameDaff_file2); if ~strcmp(nameDaff_file2,'yourHRTF.daff')
HRTF_daff2.plot_freqSlice HRTF_daff2 = itaHRTF('daff',nameDaff_file2);
\ No newline at end of file HRTF_daff2.plot_freqSlice
ita_disp('use an existing daff-file')
\ No newline at end of file
Description: experimental classes for bulky audio data
Dependencies: no dependencies
\ No newline at end of file
Description: generates documentatation: ita_generate_documentation
Dependencies: no dependencies
\ No newline at end of file