drew Roberts wrote:
> On Tuesday 25 May 2010 12:10:26 you wrote:
>> drew Roberts wrote:
>>> I have been looking for an EDL capable audio player for a while now but
>>> have not found one.
>> I don't think there's an open-source audio player that does.
>> Mplayer has support for EDL but is using it's own homebrew EDL format;
>>
>> May I ask what you are trying to accomplish?
>
> Sure. and the answer will make much of the complexity below go away for my use
> case.
>
> I listen to some podcasts that I think it would be useful for some other folks
> to listen to as well but people being people, and these people being busy to
> boot, they never seem to get around to listening.
>
> Most of the podcasts are about an hour long.
>
> What I want to do is listen to the podcasts, mark up an edl to pull out the
> parts I think might be most interesting to them and also encourage them to
> listen to the whole thing.
I guess the easiest would be to just use http://soundcloud.com/
You can add comments on the time-line, tag regions and easily share.
see http://soundcloud.com/search?q[fulltext]=podcast for an example.
OTOH, this is not a solution worthy of being mentioned on LAD.
> I would like to give them a link to the podcast and the edl file and let them
> play the audiofile controlled by the edl.
You'll want to use SMIL for that: http://www.w3.org/AudioVideo/
As for creating the SMIL-EDL; that'll be the biggest problem..
Making a SMIL template is a one-time job, but finding a good
audio-player to generate your in/out timecode is an issue. I don't know
if there's a dedicated app for that. Maybe audacity or ardour's
cue-files files can be used as a basis.
I'm pretty sure there'll be a few projects in the not too distant
futures doing this with webm + HTML5.
> So, for what I want, the audio playback does not need to be gapless and nor
> does it need to be accurate to less than a few seconds.
>
> Naturally I can see the usefulness of those abilities for other uses.
>>> So I hacked together ecaedl.pl which work but is very rough.
>>>
>>> More info here:
>>>
>>> http://zotzbro.blogspot.com/2010/05/edl-edit-decision-list-audio-player.h
>>> tml
>> thanks for sharing.
>>
>>> pastebin link here:
>>>
>>> http://pastebin.com/esXJwv84
>> A while ago I went down a very similar road:
>> http://rg42.org/gitweb/?p=sodankyla.git;a=blob;f=scripts/vsession.pl
>> parses EDL (CMX, CMX3600, Final-Cut-Pro format and 3.0.0) into a sqlite
>> database; which can then be used to generate fi. an ardour session.
>
> One thing I want to play with is if I can make the edl files with the
> graphical version of mplayer where I can more easily use the transport
> control so that I can make the edl files on the first listening pass and cut
> down on my time investment. Perhaps it would be better for me to make the edl
> file by hand while listening in another player.
>> The workflow there is offline; meaning there's no real-time playback of
>> the actual EDL.
>> I got a few [filmsound] projects done using these scripts to generate an
>> initial ardour-session where the original sound is synced according to
>> EDL provided by the film (not video) editor, but I did not have the time
>> to go back and clean up the software [yet].
>>
>>> Right now this needs ecaplay from ecasound and perl. mplayer is useful to
>>> create the edl files but they can be created by hand.
>>>
>>> Would any cross playform audio player group be willing to add edl playing
>>> (and creating) functionality to their player? It would make things much
>>> simpler.
>> It's not as easy as it may sound. You'll need to be able to perform
>> reliable sample-accurate seeking over multiple files and play them back
>> without gap.
>
> As you can see from my particular use case, I anticipate only one audiofile
> ever. (I can see that for other uses I might want to work with multiple audio
> files, but not this one.)
>> If you want to support encoded formats (such as mp3) this can become
>> non-trivial very quickly; it can get even worse if the files mentioned
>> in the EDL have different sample-rates (that's very unusual, but hey)
>>
>> I hazard a guess those are basically the reasons why mplayer does not
>> support EDL for audio. mplayer's playlist & video-EDL feature allows you
>> to mix all kind of codecs/formats: seeking to video-frames (with
>> video-frame accuracy is easier).
>>
>> ciao,
>> robin
>
> Thanks for the discussion and input.
>>> (I guess I really need to add in a GPL license section to the file...
>>> soonest.
>>>
>>> all the best,
>>>
>>> drew
>
> drew
>
On Sun, May 23, 2010 at 11:07:27PM +0200, Olivier Guilyardi wrote:
> On 05/23/2010 10:22 PM, Chris Cannam wrote:
>
> [...]
>
> > ... by which I don't mean to imply that I can't understand it
> > (although, with C++, there is always the possibility that I _think_ I
> > can understand it but am sadly mistaken because of some weird shit
> > happening behind the scenes). I just mean that I can't simply read
> > it.
>
> I once read a great (and funny) article arguing that you simple can't assume
> anything about what the following means in C++:
>
> a = b + c
>
> Nothing
yeah. but if thats not a concatenation or an addition the programmer of
the operator overload should be shot on sight.
>
> > This may be one really serious advantage for the everything-in-C types
> > -- a competent C programmer can understand any C, whereas C++ is big
> > enough to have many different "schools of C++" which are mutually
> > unintelligible without further study.
> >
> > That's also the seed of its popularity, I suppose -- everyone can
> > write the way they like in it, and if you can't work out how to do it
> > properly, you can always drop back into C.
>
> Yeah, C rocks :-)
>
> But, the problem is that, in my experience, C++ can increase productivity by a
> factor of x10 or so over C. It's my personal experience. Very often, I have to
> consider making a choice between the two, and I often end up coding the engine
> in C and the rest in C++ or a dynamic language.
hmm.. i dont really see the advantage of writing an engine in C.
first of all you loose RAII locks.
http://en.wikipedia.org/wiki/Resource_Acquisition_Is_Initialization
then you need to manage most memory yourself again....
could you explain your reasons a bit more ?
>
> But maybe that, with experience and methodology, one can get as productive in C
> as in C++? I suppose the guys at Gnome would agree with that..
there is a reason why gob2 and vala emerged.
writing a GObject in C is a pretty big PITA.
its probably possible to create the boilerplate out of some kind of
template.
but i am not aware of some rails/paster like framework to create this
boilerplate with a single command.
>
> --
> Olivier
--
torben Hohn
I have been looking for an EDL capable audio player for a while now but have
not found one.
So I hacked together ecaedl.pl which work but is very rough.
More info here:
http://zotzbro.blogspot.com/2010/05/edl-edit-decision-list-audio-player.html
pastebin link here:
http://pastebin.com/esXJwv84
Right now this needs ecaplay from ecasound and perl. mplayer is useful to
create the edl files but they can be created by hand.
Would any cross playform audio player group be willing to add edl playing (and
creating) functionality to their player? It would make things much simpler.
(I guess I really need to add in a GPL license section to the file... soonest.
all the best,
drew
Hi,
I'm working on an lv2 plugin, and I'm having some difficulties debugging it.
What I would do is start up lv2_jack_host hosting my plugin, and then
connect it to an input. However, my plugin isn't returning in time (like,
*every single period*), so I get a flood of errors from jack. When I
connect it to my microphone, my system actually grinds to a halt, and I have
to sysrq in order to get it to respond at all. I also tried loading it as a
plugin within qtractor, which causes it to crash qtractor instantly when
connected to audio, with no trace.
Basically, my plugin right now is completely horrible, and I want to be able
to step through it handling one period. Normally I would just fire up gdb,
but with jack running in the background, it won't work. Within a few
milliseconds of gdb tripping a breakpoint, jack gets mad, and (I believe)
stops my plugin from processing to begin the next period. So basically, gdb
can't freeze the state, because as soon as I try to, it will unleash a flood
of jack errors.
What I am hoping for (and it doesn't look like I can find it) is some way to
make jack not run in real time, i.e. let it wait indefinitely for clients to
process. Obviously the audio output would probably not work, but at least
software wise, it seems like this could be viable. Alternatively, a similar
setup but on the lv2 plugin level would work, i.e. it could feed in audio
data and let the plugin process at whatever speed it wants.
Any other suggestions that would allow me to debug my plugin would be
welcome (well, besides "code better")
Thank You,
Jeremy Salwen
I've written some small c/c++ programs for my own use that were alsa midi
based. I found a very low entry barrier to getting started writing console
apps with alsa midi. I'd like to work on something a little larger scale,
and include jack midi with a gui to configure options, but have no idea
where to start.
I'd ideally like to use a loolkit that provides skinable interfaces, and I'm
familiar with html/css layout, so something where I can build the gui from a
layout file would be nice. If it can handle threading issues for me (rt
worker and non rt gui) even better.
What choices do I have for tools to use, and what pro's/con's are attached
to them. From what i've read so far qt seems like it might be a good choice,
aside from the high entry barrier of learning how to do everything the qt
way.
I'm looking for information on any of the above.
Thanks
Nathanael
Hello. I have installed jackdbus to have working ladish. If I start jackdbus (by "jack_control start" or ladish), legacy jack applications works. But if starting call produced by libjack applications, dbus apps don't see server.
If server already started, it should be right for dbus to check first, wether server already runing via libjack and connect to them instead to try start own server to no end.
Otherwise (IMHO, should be even more simple), also possible for libjack client functions to work always through dbus.
The source of problem is PulseAudio, which I hoped to work only with JACK. I am trying to solve problem with startup script, which kills jackd and starts jackdbus before pulse restarts.
(apologies for cross-posting)
Dear Colleagues and FOSS enthusiasts,
A friendly reminder that we have a Linux Laptop Orchestra (L2Ork) workshop at the NYC Resistor scheduled for May 30th, 2010 as part of the ICMC2010 workshop sessions. Please note the change in time which is 10am-4pm (ET).
For additional information and registration info, please consult the website at:
http://icmc-workshop-l2ork.eventbrite.com/
I would greatly appreciate it if you would please disseminate this as far and as wide as possible. For more info on L2Ork and its software/hardware resources, please visit:
http://l2ork.music.vt.edu
Many thanks!
Best wishes,
Ivica Ico Bukvic, D.M.A.
Composition, Music Technology
Director, DISIS Interactive Sound & Intermedia Studio
Director, L2Ork Linux Laptop Orchestra
Assistant Co-Director, CCTAD
CHCI, CS, and Art (by courtesy)
Virginia Tech
Dept. of Music - 0240
Blacksburg, VA 24061
(540) 231-6139
(540) 231-5034 (fax)
ico(a)vt.edu
http://www.music.vt.edu/faculty/bukvic/
hi *!
i need to re-synchronize two recordings of the same event that for
technical reasons had to be done with unsynchronized clocks. i'm
assuming for the sake of sanity that both clocks were perfectly stable.
my approach is this: in ardour, align some unique feature (a click in
this case) at the very beginning of the recordings to within a few
samples. set a mark1. then, identify another unique feature close to the
end, set mark2 to its position in the reference clock file and mark3 in
the file that needs to be resampled. read the frame positions or the
markers from session.ardour.
sample rate ratio is then
(mark2 - mark1) / (mark3 - mark1).
i compute a value of precisely 1.00020678091, and i'm now looking for a
resampler that will do the right thing here.
unfortunately, both zita-resampler and libsamplerate seem to represent
the sample rate ratio internally as a fraction of two integers, which
means that in my case, it will be rounded to 44100/44107. this is not
acceptable for the usecase at hand, as the offset after 4 hours of
recording would be too large. due to the massive amount of data to be
processed, slicing the material into smaller chunks to reduce the error
is not an option.
is there a hard technical reason for the behaviour of the resamplers?
would it make sense for this bear of very little brain to dig into the
code and try to convince them to perform resampling at ratios with full
double precision, or is such an undertaking bound to fail?
thanks,
jörn