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
Hey guys!
ReZound to me seems like one of the best sound editors on Linux. Yet, it
appears to have been forgotten. Any hope its development and maintenance
will be resumed?
Louigi.
So much to tell, even more to do... then one could hardly shake, this
long overdue. Lousy rhymes and no miserly times. And there it is: a
bug-fix release, I'll mean to ease.
Oh crap! Let's get it through once and for all.
With huge compliments to all who got the nerve and report as many too
much idiosyncrasies (nee bugs). Don't, never look back. There's plenty
more ahead, no matter where you look, or hear, whether is up or down hill :)
Qtractor 0.4.6 (funky deviless) is here!
Release highlights:
- MIDI Editor draw mode (aka paint mode) (NEW)
- MIDI Swing-quantize (NEW)
- LV2 UI Instance & Data-access extension support (NEW)
- JACK Session support (EXPERIMENTAL) (NEW)
- LV2 Save/Restore extension support (NEW)
- MIDI Editor event list in-line editing (NEW)
- MIDI Clip time-stretching (FIX)
- MIDI Clip editor file salvage quietness (NEW)
- MIDI Control bus switching crash (FIX)
- MIDI Bank-selection backout (FIX)
- Initial widget geometry extents (FIX)
- Input-only bus playback crash (FIX)
- Bus connection persistence crash (FIX)
- Drag-and-drop cloning plugins (FIX)
- MIDI Editor floating-selection persistence (NEW)
- Audio inserts garbage signal (FIX)
A bit more or not so detailed change-log is found below.
Website:
http://qtractor.sourceforge.net
Project page:
http://sourceforge.net/projects/qtractor
Downloads:
- source tarball:
http://downloads.sourceforge.net/qtractor/qtractor-0.4.6.tar.gz
- source package (openSUSE 11.2):
http://downloads.sourceforge.net/qtractor/qtractor-0.4.6-4.rncbc.suse112.sr…
- binary packages (openSUSE 11.2):
http://downloads.sourceforge.net/qtractor/qtractor-0.4.6-4.rncbc.suse112.i5…http://downloads.sourceforge.net/qtractor/qtractor-0.4.6-4.rncbc.suse112.x8…
- binary packages (Ubuntu 10.04):
http://downloads.sourceforge.net/qtractor/qtractor_0.4.6-4.rncbc.ubuntu1004…http://downloads.sourceforge.net/qtractor/qtractor_0.4.6-4.rncbc.ubuntu1004…
- user manual (outrageously outdated):
http://downloads.sourceforge.net/qtractor/qtractor-0.3.0-user-manual.pdf
Weblog (upstream support):
http://www.rncbc.org
License (no kiddin'):
Qtractor is free, open-source software, distributed under the terms of
the GNU General Public License (GPL) version 2 or later.
Change-log:
- Introducing a non-painting edit sub-mode on the MIDI clip editor's
piano-roll (see Edit/Select Mode/Edit Draw menu).
- The MIDI clip editor (aka piano-roll) is now a lot more quiet about
saving its own dirty content, delegating all salvage questions to main
session control.
- Don't show session restart message box when changing JACK transport
mode option anymore.
- Dedicated MIDI control bus switching fixed. Was closing the wrong bus
eventually and crashing the whole show with it (fixes bug #2989590).
- MIDI bank/program backout has been corrected on MIDI track properties
dialog rejection (ie. user cancellation).
- MIDI bank select method has been corrected for tracks with no
instrument defined (probably fixing bug #2987071).
- LV2 UI Instance and Data Access extension support added; reduce LV2
external UI parameter value update flickering.
- JACK session infrastructure support. (EXPERIMENTAL)
- Initial widget geometry and visibility persistence logic has been
slightly revised as much to avoid crash failures due to wrong main
widget hidden state.
- Initial mixer widget extents are now set reasonably larger.
- General source tree layout and build configuration change.
- Ever since smooth-ramping introduction that having at least one
input-only buses were causing immediate playback crashes, now hopefully
fixed.
- Refactored for common engine client nomenclature, primarily provided
by JACK, then secondarily passed to ALSA Sequencer, getting rid of the
JackUseExactName requirement and lifting the unique/single instance
restriction in the process.
- Current JACK Transport, MMC Device, and MIDI Song Position pointer
(SPP) control modes are now saved/loaded as part of session option
properties.
- MIDI clip editor's context menu crash on Qt >= 4.6 has been fixed
(resolving bug #2972603).
- An ancient double-free corruption has been finally fixed at the
audio/MIDI bus connection persistence logic.
- Improved visibility of track state buttons text (R, M, S) when turned
on dark colored themes.
- LV2 Save/Restore extension support kicks off.
- MIDI engine read-ahead period has been shortened to half than it was
since inception--now it's a 500msec cycle.
- MIDI clip editor event list gets its due inline editing, for time,
note, value/velocity and duration columns, just one double-click away
over the target cell ;)
- Add-plugin selection dialog position and extent are now remembered
across invocations and application sessions (tipping by Frank Neumann).
- MIDI clip time-stretching is now made available through the same
gestures as audio ones, by just shift+dragging either of the clip edges.
- Drag-and-copying plug-in instances (cloning) is now fixed with regard
to parameter value replication.
- MIDI clip editor snap-per-beat setting is now independent from main
multi-track view; File/Save As... dialog fixed; the current event
selection is now kept floating as long as it's possible after editing
command actions; finally, edit mode has been extended to free-hand event
drawing, chalking off (piano roll) draw mode from the TODO list.
- Swing-quantize has finally made its overdue debut as an additional
MIDI clip editor tool (see Tools/Quantize...).
- Almost since its inception, audio inserts were injecting garbage
random noise when not being activated, now fixed.
- Dedicated audio output ports for MIDI track plugins, now have their
connection persistence back in business due on session load.
Cheers && Enjoy (what else?)
--
rncbc aka Rui Nuno Capela
rncbc(a)rncbc.org