Olivier Guilyardi wrote:
> On 05/28/2010 07:36 PM, Ralf Mardorf wrote:
>
>> Folderol wrote:
>>
>>> On Fri, 28 May 2010 19:20:54 +0200
>>> Ralf Mardorf <ralf.mardorf(a)alice-dsl.net> wrote:
>>>
>>>
>>>
>>>> Veronica Merryfield wrote:
>>>>
>>>>
>>>>> You can't trust a loop back test.
>>>>> Any instability or dither on the reference clock of card A (fifo
>>>>> clocking say) is not going to show in a loop back test.
>>>>> Vrnc
>>>>>
>>>>>
>>>> Is Veronica Merryfield the winner?
>>>>
>>>>
>>> I'm highly suspicious of the USB link, but can't quite put my finger
>>> on why.
>>>
>>>
>> Card A is the USB card. For USB there could be several issues, but I
>> don't have knowledge about buffering etc., but I guess it's card A and
>> that there's a "instability" = jitter. I don't know what dither for CLK
>> is. I guess the winner is Veronica Merryfield.
>>
>
> I mentioned the clock problem first ;-) However, I thought it the other way
> around: I said that clocks being asynchronous that would generate artefacts, but
> Veronica seems to say that these are hidden when using a single clock.
>
> That's pretty much the same thing to me :p
>
> --
> Olivier
>
Did you also say for what card? A or X? If so, is Oliver the winner?
Btw.:
Ralf Mardorf wrote:
> Gabriel Beddingfield wrote:
>> On Fri, May 28, 2010 at 12:39 PM, Gabriel M. Beddingfield
>> <gabrbedd(a)gmail.com> wrote:
>>
>>> The 100 Hz (being 2x 50Hz, the power freq. in Italy)
>>> suggests that it is probably related to some manner of
>>> power supply. However, I have no theory why we're
>>> getting 2x 50Hz (and I think I need one :-)).
>>>
>>
>> Doh! When the AC wave is rectified, it results in a signal that is 2x
>> the freq. because the negative part gets inverted. That's why we see
>> 100 Hz instead of 50 Hz.
>>
>> -gabriel
>>
>
> On card A or X?
> Why AM and not additive signals?
Is the jitter caused because of residual ripple?
Summarized:
Residual ripple for the DC could cause clock jitter and this for card A.
On Fri, May 28, 2010 at 04:09:42PM +0200, Olivier Guilyardi wrote:
> > <http://www.kokkinizita.net/linuxaudio/quiz.html>
>
> Well, it looks to me like this is caused by the fact that the audio cards clocks
> are not in sync. When you loopback card A with itself, both input and output are
> sampled with the same clock. But when you plug the output of card A into card X,
> you're dealing with two clocks which are not synchronized, and that result into
> these "artefacts". If I'm right then you should observe some /similar/ issues
> when repeating the experience with the cards inverted.
The clocks don't matter, as the connection is via an analog signal.
(sorry, no beer !)
Ciao,
--
FA
O tu, che porte, correndo si ?
E guerra e morte !
Related to my last reply to your question about "the tiling problem"
vs undecidability...
Ever since they started putting out relevant articles for computer
scientists (in the last year), the American Math Society monthly
"Notices" has gone from dull to fascinating; in the spirit of
open-source, all the articles are available free and online.
The latest ( http://www.ams.org/notices/201003/ ), focusing on
Cryptography issues, has an excellent article that goes into the
tiling problem in great detail -- and yet is a very clear explanation
(IMHO) that isn't predicated on incomprehensible (to the general
public) mathematical formalisms.
http://www.ams.org/notices/201003/rtx100300343p.pdf
Can't Decide? Undecide! by Chaim Goodman-Strauss
See also: http://www.srcf.ucam.org/~jsm28/tiling/
I've posted previously about other excellent articles in a previous
issue "Mathematics and the Arts" ( http://www.ams.org/notices/201001/
) with a though-provoking introductory essay by Sir Michael Atiyah :
> In the broad light of day mathemati-
> cians check their equations and their
> proofs, leaving no stone unturned in
> their search for rigour. But, at night,
> under the full moon, they dream, they
> float among the stars and wonder at
> the miracle of the heavens. They are
> inspired. Without dreams there is no
> art, no mathematics, no life.
Niels
http://nielsmayer.com
PS: I think the "tiling problem" is actually a direct analogy to music
making... which involves fitting together "tiles" (musical passages,
patterns, etc) that are highly constrained in terms of "geometry"
(pitch, key, time-signature, BPM, starting and ending pitches or
chords). Music making is clearly an "undecidable" problem, which is
where human creativity comes in. Can computers help us "tile" music
more easily and therefore augment our musical creativity??
Hey all,
I've had a little idea that I think might be worth "implementing". This is
it:
Controllers, (in the musical sense like a MIDI controller knob), have always
had a certain
"update" period, ie MIDI cable 31250 baud, or from a MIDI file PPQ's etc..
you the the idea.
What if we were to make a "callback-update" system, where the controller
(read Arduino with a sensor attached)
runs an OSC server, which whenever gets a */<arduinoName>/poll* command,
returns the value of the sensor?
I appreciate that for this example it would seem pretty pointless, as for 1
controller the overhead is gonna be bigger
than the speed gained of just sending it every X ms. Concider a "big" ardour
controller, with moving faders, leds, knobs etc
I think this maybe be a great little system to allow OSC interfaces actually
save the CPU some time polling the MIDI I/O subsystem,
and take advantage of the Send -> Return style thing..
Of course to be all fancy, we could register a "send to" address, so many
programs can access the same device, and have it only update
the correct program, allowing each program handle the OSC messages however
they want to.
Also a */<ardName>/fader ( int ) *could be sent for each fader's position,
*/ardName/knob(int) *.... you get the idea.
Ideas, responses, you've already done this, etc all welcome! -Harry
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