Hi!
Ecasound was my first suggestion. If you like to script it, here are a few
hints.
ecalength, can give you length in seconds or mm:ss format. You'd just have to
awk or sed your way through it, not too hard. there are others sndfile-*
collection and more to do that.
The new ecasound-version has the playat feature, which is positioning a
starting point into the output:
ecasound -i playat,time_in_seconds.decimal_rest,file_to_play -o output
A normal mixing setup:
ecasound -a:chain_1 -i some_input -a:chain_2 -i more_input ... -a:all -o
mixdown
Use -ea:volume_in_percent after each filename, to give relative volumes.
Ecasound has to volume mixmodes:
ecasound -z:mixmode,avg [all_the_rest]
Average: So with three chains volume of each chain is (100/3)%. this value
counts as 100. So if you mix three full volume signals the effective volume of
the whole is 100% volume. No clipping, but not a bit more.
ecasound -z;mixmode,sum [all_the_rest]
Each track is at REAL full 100% volume. So with four chains blasting at full
volume, all playing at the same time choose
-ea:25
for each one, so 25 * 4 = 100.
Ecasound itself doesn't worry about you playing tracks at the same time or
just concatenating them. So you could have:
ecasound [mixmode and other general options] \
-a:intro -i this_is.wav -a:station_1 -i playat,3.2,my_station.wav \
-a:playing -i playat,5.6,playing.wav -a:title_1 -i playat,6.2,my_title.wav \
-a:bed_1 -i bed_1.wav -ea:30 ... -a:all -o mixdown.wav
I don't know about the looping of the bed. Ecasound has looping input,
something like playat, but it doesn't fade. But I think there's some software
around for that. Or perhaps sooperlooper ladspa plugin can do it with
ecasound.
The times I gave would have to be calculated by your script of course.
I hope this was OK, not too much and not too few info. If you like this
solution and have more questions, I'm here.
btw.: Csound might be an alternative. You could use your script to write
csound .orc and .sco files. Just another idea. There you have looping in the
ways you like it.
Kindest regards
Julien
--------
Music was my first love and it will be my last (John Miles)
======== FIND MY WEB-PROJECT AT: ========
http://ltsb.sourceforge.net
the Linux TextBased Studio guide
======= AND MY PERSONAL PAGES AT: =======
http://www.juliencoder.de