Mercurial > hg > smallbox
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 |