comparison util/classes/@audio/audio.m @ 166:1495bdfa13e9 danieleb

Updated grassmanian function (restored old computation of the dictionary) and added functions to the audio class
author Daniele Barchiesi <daniele.barchiesi@eecs.qmul.ac.uk>
date Mon, 19 Sep 2011 14:53:23 +0100
parents e3035d45d014
children f8bc99a5470c
comparison
equal deleted inserted replaced
162:88578ec2f94a 166:1495bdfa13e9
1 classdef audio 1 classdef audio
2 %% Audio object 2 %% Audio object
3 properties 3 properties
4 s %vector containing the audio signal 4 s %vector containing the audio signal
5 fs %sampling frequency 5 S %matrix containing frames of audio for subsequent processing
6 nBits % number of bits per sample 6 fs %sampling frequency
7 name % string containing the name of the audio file 7 nBits %number of bits per sample
8 format % string containing the format of the audio file 8 name %string containing the name of the audio file
9 end 9 format %string containing the format of the audio file
10 10 bufferOperator %struct containing the parameters of the buffer operator (used by unbuffer to invert it)
11 methods 11 end
12 %% Constructor 12
13 function obj = audio(varargin) 13 methods
14 error(nargchk(1,5,nargin)); 14 %% Constructor
15 if ischar(varargin{1}) 15 function obj = audio(varargin)
16 [~, obj.name obj.format] = fileparts(varargin{1}); 16 % if no arguments are specified, prompt for the choice of an
17 switch obj.format 17 % audio file
18 case '.wav' 18 if ~nargin
19 [obj.s obj.fs obj.nBits] = wavread(varargin{1}); 19 [fileName,pathname] = uigetfile({'*.wav; *.aiff;'},'Select an audio file');
20 otherwise 20 varargin{1} = strcat(pathname,filesep,fileName);
21 error('Unsupported audio format') 21 end
22 end 22 if ischar(varargin{1})
23 else 23 [~, obj.name obj.format] = fileparts(varargin{1});
24 obj.s = varargin{1}; 24 switch obj.format
25 if nargin>1, obj.fs = varargin{2}; else obj.fs = []; end 25 case '.wav'
26 if nargin>2, obj.nBits = varargin{3}; else obj.nBits = []; end 26 [obj.s obj.fs obj.nBits] = wavread(varargin{1});
27 if nargin>3, obj.name = varargin{4}; else obj.name = []; end 27 otherwise
28 if nargin>4, obj.format = varargin{5}; else obj.format = []; end 28 error('Unsupported audio format')
29 end 29 end
30 end 30 else
31 31 obj.s = varargin{1};
32 %% Playback functions 32 if nargin>1, obj.fs = varargin{2}; else obj.fs = []; end
33 function player = play(obj, player) 33 if nargin>2, obj.nBits = varargin{3}; else obj.nBits = []; end
34 if ~exist('player','var') || isempty(player) 34 if nargin>3, obj.name = varargin{4}; else obj.name = []; end
35 player = audioplayer(obj.s,obj.fs); 35 if nargin>4, obj.format = varargin{5}; else obj.format = []; end
36 end 36 end
37 play(player); 37 obj.S = [];
38 end 38 obj.bufferOperator = [];
39 39 end
40 function player = stop(obj, player) 40
41 if ~exist('player','var') || isempty(player) 41 %% Playback functions
42 player = audioplayer(obj.s,obj.fs); 42 function player = play(obj, player)
43 end 43 if ~exist('player','var') || isempty(player)
44 stop(player) 44 player = audioplayer(obj.s,obj.fs);
45 end 45 end
46 46 play(player);
47 function player = pause(obj, player) 47 end
48 if ~exist('player','var') || isempty(player) 48
49 player = audioplayer(obj.s,obj.fs); 49 function player = stop(obj, player)
50 end 50 if ~exist('player','var') || isempty(player)
51 pause(player) 51 player = audioplayer(obj.s,obj.fs);
52 end 52 end
53 end 53 stop(player)
54 end
55
56 function player = pause(obj, player)
57 if ~exist('player','var') || isempty(player)
58 player = audioplayer(obj.s,obj.fs);
59 end
60 pause(player)
61 end
62 end
54 end 63 end