daniele@160: classdef audio daniele@160: %% Audio object daniele@160: properties daniele@160: s %vector containing the audio signal daniele@160: fs %sampling frequency daniele@160: nBits % number of bits per sample daniele@160: name % string containing the name of the audio file daniele@160: format % string containing the format of the audio file daniele@160: end daniele@160: daniele@160: methods daniele@160: %% Constructor daniele@160: function obj = audio(varargin) daniele@160: error(nargchk(1,5,nargin)); daniele@160: if ischar(varargin{1}) daniele@160: [~, obj.name obj.format] = fileparts(varargin{1}); daniele@160: switch obj.format daniele@160: case '.wav' daniele@160: [obj.s obj.fs obj.nBits] = wavread(varargin{1}); daniele@160: otherwise daniele@160: error('Unsupported audio format') daniele@160: end daniele@160: else daniele@160: obj.s = varargin{1}; daniele@160: if nargin>1, obj.fs = varargin{2}; else obj.fs = []; end daniele@160: if nargin>2, obj.nBits = varargin{3}; else obj.nBits = []; end daniele@160: if nargin>3, obj.name = varargin{4}; else obj.name = []; end daniele@160: if nargin>4, obj.format = varargin{5}; else obj.format = []; end daniele@160: end daniele@160: end daniele@160: daniele@160: %% Playback functions daniele@160: function player = play(obj, player) daniele@160: if ~exist('player','var') || isempty(player) daniele@160: player = audioplayer(obj.s,obj.fs); daniele@160: end daniele@160: play(player); daniele@160: end daniele@160: daniele@160: function player = stop(obj, player) daniele@160: if ~exist('player','var') || isempty(player) daniele@160: player = audioplayer(obj.s,obj.fs); daniele@160: end daniele@160: stop(player) daniele@160: end daniele@160: daniele@160: function player = pause(obj, player) daniele@160: if ~exist('player','var') || isempty(player) daniele@160: player = audioplayer(obj.s,obj.fs); daniele@160: end daniele@160: pause(player) daniele@160: end daniele@160: end daniele@160: end