daniele@160
|
1 classdef audio
|
daniele@160
|
2 %% Audio object
|
daniele@160
|
3 properties
|
daniele@160
|
4 s %vector containing the audio signal
|
daniele@160
|
5 fs %sampling frequency
|
daniele@160
|
6 nBits % number of bits per sample
|
daniele@160
|
7 name % string containing the name of the audio file
|
daniele@160
|
8 format % string containing the format of the audio file
|
daniele@160
|
9 end
|
daniele@160
|
10
|
daniele@160
|
11 methods
|
daniele@160
|
12 %% Constructor
|
daniele@160
|
13 function obj = audio(varargin)
|
daniele@160
|
14 error(nargchk(1,5,nargin));
|
daniele@160
|
15 if ischar(varargin{1})
|
daniele@160
|
16 [~, obj.name obj.format] = fileparts(varargin{1});
|
daniele@160
|
17 switch obj.format
|
daniele@160
|
18 case '.wav'
|
daniele@160
|
19 [obj.s obj.fs obj.nBits] = wavread(varargin{1});
|
daniele@160
|
20 otherwise
|
daniele@160
|
21 error('Unsupported audio format')
|
daniele@160
|
22 end
|
daniele@160
|
23 else
|
daniele@160
|
24 obj.s = varargin{1};
|
daniele@160
|
25 if nargin>1, obj.fs = varargin{2}; else obj.fs = []; end
|
daniele@160
|
26 if nargin>2, obj.nBits = varargin{3}; else obj.nBits = []; end
|
daniele@160
|
27 if nargin>3, obj.name = varargin{4}; else obj.name = []; end
|
daniele@160
|
28 if nargin>4, obj.format = varargin{5}; else obj.format = []; end
|
daniele@160
|
29 end
|
daniele@160
|
30 end
|
daniele@160
|
31
|
daniele@160
|
32 %% Playback functions
|
daniele@160
|
33 function player = play(obj, player)
|
daniele@160
|
34 if ~exist('player','var') || isempty(player)
|
daniele@160
|
35 player = audioplayer(obj.s,obj.fs);
|
daniele@160
|
36 end
|
daniele@160
|
37 play(player);
|
daniele@160
|
38 end
|
daniele@160
|
39
|
daniele@160
|
40 function player = stop(obj, player)
|
daniele@160
|
41 if ~exist('player','var') || isempty(player)
|
daniele@160
|
42 player = audioplayer(obj.s,obj.fs);
|
daniele@160
|
43 end
|
daniele@160
|
44 stop(player)
|
daniele@160
|
45 end
|
daniele@160
|
46
|
daniele@160
|
47 function player = pause(obj, player)
|
daniele@160
|
48 if ~exist('player','var') || isempty(player)
|
daniele@160
|
49 player = audioplayer(obj.s,obj.fs);
|
daniele@160
|
50 end
|
daniele@160
|
51 pause(player)
|
daniele@160
|
52 end
|
daniele@160
|
53 end
|
daniele@160
|
54 end
|