Daniel@0: function a = set(a,varargin) Daniel@0: % SET Set properties for the MIRdata object Daniel@0: % and return the updated object Daniel@0: Daniel@0: propertyArgIn = varargin; Daniel@0: while length(propertyArgIn) >= 2, Daniel@0: prop = propertyArgIn{1}; Daniel@0: val = propertyArgIn{2}; Daniel@0: propertyArgIn = propertyArgIn(3:end); Daniel@0: switch prop Daniel@0: case 'Pos' Daniel@0: a.pos = val; Daniel@0: case {'Data','ChunkData'} Daniel@0: if strcmp(prop,'ChunkData') Daniel@0: val = {{val}}; Daniel@0: end Daniel@0: a.data = val; Daniel@0: case 'Unit' Daniel@0: a.unit = val; Daniel@0: case 'FramePos' Daniel@0: a.framepos = val; Daniel@0: case 'Sampling' Daniel@0: a.sr = val; Daniel@0: case 'NBits' Daniel@0: a.nbits = val; Daniel@0: case 'Name' Daniel@0: a.name = val; Daniel@0: case 'Name2' Daniel@0: a.name2 = val; Daniel@0: case 'Label' Daniel@0: a.label = val; Daniel@0: case 'Channels' Daniel@0: a.channels = val; Daniel@0: case 'Clusters' Daniel@0: a.clusters = val; Daniel@0: case 'MultiData' Daniel@0: a.multidata = val; Daniel@0: case 'Title' Daniel@0: a.title = val; Daniel@0: case 'Abs' Daniel@0: a.abs = val; Daniel@0: case 'Ord' Daniel@0: a.ord = val; Daniel@0: case 'PeakPos' Daniel@0: a.peak.pos = val; Daniel@0: case 'PeakVal' Daniel@0: a.peak.val = val; Daniel@0: case 'PeakPrecisePos' Daniel@0: a.peak.precisepos = val; Daniel@0: case 'PeakPreciseVal' Daniel@0: a.peak.preciseval = val; Daniel@0: case 'PeakMode' Daniel@0: a.peak.mode = val; Daniel@0: case 'AttackPos' Daniel@0: a.attack.pos = val; Daniel@0: case 'ReleasePos' Daniel@0: a.release.pos = val; Daniel@0: case 'TrackPos' Daniel@0: a.track.pos = val; Daniel@0: case 'TrackVal' Daniel@0: a.track.val = val; Daniel@0: case 'TrackPrecisePos' Daniel@0: a.track.precisepos = val; Daniel@0: case 'TrackPreciseVal' Daniel@0: a.track.preciseval = val; Daniel@0: case 'InterChunk' Daniel@0: a.interchunk = val; Daniel@0: case 'TmpIdx' Daniel@0: a.tmpidx = val; Daniel@0: case 'AcrossChunks' Daniel@0: a.acrosschunks = val; Daniel@0: case 'Interpolable' Daniel@0: a.interpolable = val; Daniel@0: case 'TmpFile' Daniel@0: a.tmpfile = val; Daniel@0: case 'Index' Daniel@0: a.index = val; Daniel@0: otherwise Daniel@0: error(['Unknown MIRdata property: ' prop]) Daniel@0: end Daniel@0: end