Okay, mp3 decoding seems to be pretty usable now.
A few oddities that I still need to track down:
- When in microview, moving the clip makes the waveform jump every
now and then (drag slowly for a few hundred pixels, and watch for it
to jump forward about 30px, and then back.)
- There seems to be a bit of silence added at the beginning of the
clip. (Take a wav file and use lame to convert to mp3, then open both
files in 2 tracks, and line them up. The mp3 file is slightly longer
because it begins with a bit (~.1sec) of extra silence.) Hmmm... I
guess I'm not sure if this is an issue with my code, a libmad decoding
issue or a lame encoding issue... :P
Ben
On 7/8/07, ben levitt <address@hidden> wrote:
> Just added mp3 decoding using libmad. (Thanks K3b!)
>
> It seems to work well!
>
> Now to try to get resampling working better...
> (Remon, I have ideas that don't involve ripping apart everything that
> uses an nframes_t...)
>
> Ben
>
>
> On 7/7/07, ben levitt <address@hidden> wrote:
> > I fixed VorbisAudioReader, so you can now use ogg files natively in
> > traverso! Just drag inan ogg, and edit like it was a wav file! No
> > conversion necessary.
> >
> > It's still not very optimized, but I think we should be able to cut
> > the cpu usage for ogg file reading way down from what it is now.
> >
> > Dynamic resampling is also starting to work.
> > To try it out, uncomment/comment lines 94/95 in MonoReader.cpp, and
> > change Project.cpp line 705 to
> > return audiodevice().get_sample_rate();
> >
> > after making those changes, try importing audio files of different
samplerates!
> >
> > Ben
> >
> >
> > On 7/6/07, ben levitt <address@hidden> wrote:
> > > I added AbstractAudioReader which is what it sounds like. :) It also
> > > has static code for figuring out which subclass to create for a given
> > > filename.
> > >
> > > I added SFAudioReader which encapsulates all the libsndfile calls.
> > > This class works well.
> > >
> > > I added dynamic resampling using ResampleAudioReader, which sadly
> > > doesn't work, and I'm not sure why yet. So it's disabled. See
> > > MonoReader.cpp:91 to enable it. (it just wraps a real AudioReader
> > > with resampling code.)
> > >
> > > I also added VorbisAudioReader, which should totally work, but does
> > > not. Traverso crashes on import of an ogg/vorbis file. I'm wondering
> > > if this class may actually work better than it seems, and the problems
> > > are coming from another thread that gets confused by the different
> > > format?
> > >
> > > So, after all that, traverso still works the same as before. :P
> > > Reading using libsoundfile works, ogg doesn't, dynamic resampling
> > > isn't enabled.
> > >
> > > Ben
> > >
> >
>