On Wed, May 11, 2005 at 04:09:15PM +0200, Frans Haarman
wrote:> Hi,
>
> I am thinking about making a small tool. After reading about patents
> and mp3 I choose another format. OGG seems best.
Cool. Welcome to the club, then. One note, however, Ogg is a word, not
an acronym, so it's Ogg not OGG.
> I was wondering if I can edit the OGG files and adjust the volume, to
> create a Fade-in and Fade-out. The tool I need makes
> configurable timed fade-ins and fade-outs of the volume of my OGG files.
Yes, with a bit of page/packet wrangling and possibly transcoding. For
volume adjustment there are "VorbisGain" tags which will allow you to
adjust the volume of an entire stream.
If you want, you can chop the front and tail of a stream (as long as you
don't need to mix the audio) and use steps of VorbisGain to do fade
effects. Any page can be easily "chopped" into a seperate stream,
just
need to copy the header pages and make it a seperate serialno.
For mixing, or for a more smooth fade effect, you'll need to chop the
data off in pages, decode the chopped data, do your mixing, and then
re-encode as a seperate stream.
Chain it all together and you have a complete fade effect. There
/could/ be a codec to do this without all this extra work, but such an
"effects codec" would only work on supported players.
> And if someone knows good python libaries for OGG I would like to hear
> about those as well.
py-ogg (1) is incomplete. You can do some things with it, but not
others. py-vorbis works with it and gives you decode support.
There are "boost" Python bindings, I have not used them.
py-ogg2 only works with libogg2 but is very complete. Because there is
heavy development with libogg2 at current it may be out of sync with the
current source, but I can help you find a stable combination of py-ogg2
and libogg2. It does not have any codec support yet, with the goal of
using OggStream to access any Ogg codec.
I am the author of py-ogg2 and developed it for exactly the kind of work
described above. I have used it in the past along with py-shout to do
some majorly cool mojo, mixing live and playlist content from multiple
sources (different geographic locations) on-the-fly and sending it to an
Icecast2 server.
Pretty soon it'll be possible to do the same with video, which is
something I'm very excited about.
--
Diversity is the Fuel of Evolution,
Conformity it's Starvation.
Be Radical. Be New. Be Different.
Feed Evolution with Everything You Are.