logo       

Re: [HOWTO] Implementing pitch-shifting and crossfading (for filler music/o: msg#00013

audio.pykaraoke.general

Subject: Re: [HOWTO] Implementing pitch-shifting and crossfading (for filler music/other sources) for PyKaraoke on Linux with JACK

On Mon, Apr 10, 2006 at 09:34:00PM +0100, Kelvin Lawson wrote:
[ I said: ]
> >Here's a curious idea: I wonder how hard it would be to recast Kelvin's
> >rendering code as an Mplayer codec? Did we already talk about this?
>
> I've fancied doing this for some time but haven't got round to it yet.
> Making an mplayer/ffmpeg codec would give you CD+G for free with a whole
> bunch of video players, as well as those commercial DVD players and
> other devices that use ffmpeg.

Good point; I hadn't thought about shoving it down the extra layer.

Removing all the SDL glue would probably make my integration work
easier, too...

> I'd need to rewrite it in C but it should translate fairly easily,
> especially given what we now know about CD+G.

Which, presumably, is more than you did before the first cut. :-)

> >In fact the only missing piece apart from digital mixing is a lack of
> >straight-from-CD CD+G player, which is something I'm interested in
> >doing anyway, and I think Python can do it. Any hints or thoughts,
> >Kelvin?
>
> I've given it some consideration in the past but not in great detail.
> Pygame can play audio tracks on a CD but (unsurprisingly) there is no
> facility to read the subchannel data.

Hmmm... Is there a standardized way to get raw tracks off a Redbook CD
in Linux? Doesn't XMMS do some of this?

> Initial thoughts on the simplest thing to implement would be to combine
> a cdrdao/cdgrip pass with pygame's CD playback. It's just a hack but it
> buys you something. After selecting a track, you spawn off a process to
> rip just the CD+G data without any MP3 encoding. You can then play this
> back as usual with pycdg.py while the CD track plays. Should be
> relatively quick to implement but you pay the price of the time spent
> doing the rip before playback.

Could you sync it, though?

> Doing it *properly*.. that's a different thing. I don't know, for
> instance, what the usual method would be for extracting the subchannel
> data on Linux. Whether you'd need to use a library like cdrdao, or
> whether it's just as easy to get what you need straight from the OS. I'm
> thinking something like Python bindings for cdrdao to read the
> subchannel data - and if you're doing this in real time then presumably
> you'd want to read the audio data at the same time, rather than have two
> proceses seeking around the disk. I'd need a deeper look into the likes
> of cdrdao to comment any further than that.

That sounds like a higher-difficulty task than the first one. :-)

> >The link is Coral Cache-ified by the way because I'm expecting heavy
> >traffic in a few days; a not-so-friendly company is threatening to sue
> >me because I posted my experience with them on my site, and
> >negotiations broke down recently. I went public with the details, and
> >Tom Martino (the "Troubleshooter") is going to have me on his radio
> >program Monday to hash this stuff out. Heh. This should get
> >interesting fast :)
>
> Itching to hear how this pans out.

<aol>

Cheers,
-- jra
--
Jay R. Ashworth jra@xxxxxxxxxxx
Designer Baylink RFC 2100
Ashworth & Associates The Things I Think '87 e24
St Petersburg FL USA http://baylink.pitas.com +1 727 647 1274

A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?

A: Top-posting.
Q: What is the most annoying thing on Usenet and in e-mail?


-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642


<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise