Re: [Pykaraoke-discuss] Visual Artifacts

2009-02-14 Thread William Ferrell
On Sat, Feb 14, 2009 at 8:34 PM, Tim tim-proje...@sentinelchicken.orgwrote:


 Perhaps this is a known problem, but I thought I would bring it up.

 The .cdg tracks I just ripped look normal at the beginning of a song,
 but the longer you play them, the more random mis-colored artifacts
 start to show up on the screen.  It's like random chunks of text don't
 get erased properly and start to muck up the screen over time.  It
 gets very distracting later in a songs.  I can take a screen shot if you
 aren't sure what I'm talking about.

 The funny thing is, I've seen these same problems on two separate
 commercial karaoke players, one at a bar and another on a home system.
 At the karaoke bar, the artifacts continued to acummulate over time on
 several songs and eventually the system crashed and they had to restart
 it.  Fun stuff.

 Thoughts?


I can chime in on this one, I think :)

It's definitely a known problem, but one known about CD+G in general, not
in the player.

CD+G isn't a video format -- each frame is the result of taking the previous
frame and executing an instruction to change some portion of the screen.
It's an old format, intentionally designed for media that is guaranteed to
deteriorate with use and eventually stop working entirely. It has no concept
of lyrics -- it's not just a pile of words and timing information. It's a
stream of very primitive commands executed at regular intervals that draw
pixels on the screen.

In fact, CD+G consists of only a few instructions, like set the color
palette to be this set of colors, or clear the screen by setting every
pixel to this color, or draw this 12x6 pixel image on this part of the
screen. No joke, btw -- the biggest block of pixels you can draw at once is
tiny. There's also some functions for scrolling, and the system is fast
enough to permit rudimentary animation by cycling the colors in the
on-screen palette.

You get 75 of these actions per second to work with, and that's it. It may
sound like plenty (and usually it's sufficient, though you can tell in
certain discs where either they just couldn't fit everything on screen quite
in time, or they didn't try very hard), but you've got two limiting factors:

* It usually takes more than one draw this block of pixels to the screen at
this position command to get a single letter (or a pair of letters if
you're lucky) onto the screen because the blocks are so small.
* There's no guarantee that any command has executed, and no way to tell if
a previous command has executed.

CD+G intentionally doesn't fail just because a command gets missed. Because
the graphic data rides along with the music, you can't really go back and
re-read a sector again because that bit of music has already headed out to
the speakers. If you look at the spec (linked below), you'll notice that
while there's parity bits to go along with the P and Q subchannels where
audio CD timing and TOC data lives, there's no parity (and hence no error
checking) on the rest of the subchannels, R through W, and those channels
are where CD+G lives.

Full details on the CD+G spec are available at
http://www.jbum.com/cdg_revealed.html if you're really curious about how it
all works behind the scenes.

The problem you describe arises because players (even the commercial
standalone ones) sometimes miss commands. This can happen because the disc
is smudged or scratched, or because the player gets bumped, etc. Even if a
command executes, the data coming with it can get messed up (an extra pixel
turns on or off when it shouldn't).

On tracks where every frame counts (think of a song like Weird Al Yankovic's
White and Nerdy -- an insanely fast-paced parody of a rap song), and
you're struggling to even get all the words on screen at all, much less in
time to be read before it's time to sing them, you may not be able to afford
even a single command (out of the 75 per second you get) to erase tthe whole
screen and start drawing new text. Or perhaps you only have room for one,
and it gets missed because the disc is smudged. Now instead of drawing on a
blank slate like you're expecting, you're just scribbling new graphics on
top of old (non-erased) ones. This is also what causes random pixels to stay
lit up -- they weren't intended to be drawn in the first place (they were
caused by a disc read error), so no command ever follows to erase the errant
pixels.

Every karaoke label does things differently -- Sound Choice tends to use
lots of screen clears, while Chartbuster has a tendency to just erase lyrics
a line at a time once they've been sung and re-use the cleared space for new
lyrics. Because of that tendency, I've seen this garbage display problem
happen more with Chartbuster discs than any other label. It gets downright
awful when a read error occurs and turns a draw a tile command into a
change the palette! command and all the colors on-screen get jibbered. If
the tile data happens to represent an unfortunate combination of colors, you
end up with 

Re: [Pykaraoke-discuss] Command line options for song window

2007-11-28 Thread William Ferrell
On Nov 28, 2007 10:50 PM, Mark Fiedler [EMAIL PROTECTED] wrote:

 Hello,

 I ran several tests launching a song directly via pycdg.  The song window
 always appeared on the screen where it was launched from regardless of the
 window-x option value.  For example, if the terminal window was on
 screen
 1 then the song window would appear at the right most edge of screen 1.
  If
 I slid the terminal window over to screen 2 and launched pycdg, the song
 window appeared on screen 2.  If I slid the terminal window halfway
 between
 screen 1 and 2, it would usually show on screen 1 unless approximately 80
 percent of the terminal window was showing on screen 2 then it would
 appear
 on screen 2.  Pycdg did seem to recognize the other options (window-y,
 width, height), just not the window-x option.  Please let me know if you
 have any other suggestions or need additional information.


Try adding the horizontal resolution of your first display to the value
you're passing in for window-x. I.e. if you've got a 1024x768 display, pass
in -window-x=1024 instead of 0. X may just be addressing it all as one big
display instead of two virtual ones.

Last year when I ran shows I used pycdg directly and this is how I
positioned the CD+G displays for my shows on the secondary port (where the
audience and singer could see it), so it kept all my geeky behind-the-scenes
stuff out of the public eye :)
-
SF.Net email is sponsored by: The Future of Linux Business White Paper
from Novell.  From the desktop to the data center, Linux is going
mainstream.  Let it simplify your IT future.
http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4___
Pykaraoke-discuss mailing list
Pykaraoke-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/pykaraoke-discuss


Re: [Pykaraoke-discuss] pycdg segfault on amd64

2007-02-01 Thread William Ferrell

On 2/1/07, Kelvin Lawson [EMAIL PROTECTED] wrote:


Hi Daniel,

 This problem was indeed happening with multiple .cdg files, though I
can't
 say if it applied to them all. Because pykaraoke worked with the same
files
 on x86 without incident, however, I doubt that corrupted/rogue data is
the
 issue.

 I'll send you a private e-mail re: obtaining the OGG+CDG files in
 question for testing purposes.

I tried these CDGs on my AMD64 and they worked fine. I guess it's system
dependent whether the out of bounds array access will hit somewhere that
will cause a seg fault.



I suspect this is either a numeric thing or a pygame thing -- aren't there
some compiled bits in those libraries for speed purposes on some systems? I
recall having a 64-bit problem myself when I was first mucking with
PyKaraoke myself ;)
-
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier.
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642___
Pykaraoke-discuss mailing list
Pykaraoke-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/pykaraoke-discuss


Re: [Pykaraoke-discuss] Quick Question

2006-12-31 Thread William Ferrell

On 12/31/06, Kelvin Lawson [EMAIL PROTECTED] wrote:


Hi Ryan,

 I am wondering if someone can help me out.  I want to put together a
 simple python script or windows executable that can be passed a zipped
 cdg+mp3 as a command line argument.  Play the file (perhaps have an
 option to select fullscreen or windowed playback on the command line).
 I am a perl programmer and have zero experience with python but when
 using the source distro and the info on the site I couldnt get past it
 saying that the Numeric library couldnt be found even though I installed
 it.  This should be a simple script using pycdg.py and playing the file
 then exiting when it is complete.

I can't help much on the Windows side of things, but it's odd that
you're getting this Numeric error. Have you perhaps installed Numeric
for a different version of Python? (e.g. installed Numeric for Python
2.3 but are running Python 2.4?)

Another point: If you use the compiled version of the CDG player you
don't need Numeric, but you need to have a suitable C compiler
installed. Again, I haven't done this on a Windows machine, but I'm told
you'll need Visual Studio - presumably there's a free version with just
the compiler. And you'll need some development libraries, at least
SDL-devel. This is a bit more of a pain than just using the uncompiled
CDG player which requires Numeric.



Because my notebook has finally crept up on its more than one year old
mark, it's due for a full re-install (it has some fairly exotic hardware so,
as much to my surprise as to anyone else, even *Linux* is in need of a full
reinstallation on this thing) so Windows will be getting attention here in
about three days or so, and I'll have a chance to rebuild everything from
scratch. I'll explore this and get it tested; gimme about a week total to
get this documented and make sure it all works right (I'm tied up for a
couple of days with some other stuff but once I get this thing back on its
feet and myself unburied I'll have some time to devote to this).
-
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT  business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV___
Pykaraoke-discuss mailing list
Pykaraoke-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/pykaraoke-discuss


Re: [Pykaraoke-discuss] Pykaraoke for OSX

2006-11-28 Thread William Ferrell

On 11/28/06, Stief Robert [EMAIL PROTECTED] wrote:


Hi there,

i´m interested on Pykaraoke for OSX. If there´s a chance for testing
a Beta i would be glad to do this for you.
I usually used Winamp and a CDG plugin but now i´ve changed to an imac.



I installed PyKaraoke on a mac notebook running OSX and it actually did seem
to work properly except for it hiding the mouse even when the pointer
*wasn't* in the display window (at least, pycdg.py, the player, worked
without difficulty).

I don't recall there being any special steps to make that work, at least as
far as the player itself goes.

Have you given it a shot and encountered an error? It's meant to be
cross-platform so it *should* just work assuming you've got a working Python
environment.

Sorry for my bad english, i´m a native german speaker.


No worries :)

--
Looking for something to read? Visit http://willfe.com/ ... now with a minty
fresh flavor!
-
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT  business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV___
Pykaraoke-discuss mailing list
Pykaraoke-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/pykaraoke-discuss


Re: [Pykaraoke-discuss] The Other End: ProShow; a playback controller for commercial hosting

2006-06-25 Thread William Ferrell
On 6/25/06, Jay R. Ashworth [EMAIL PROTECTED] wrote:
Ok, I'll admit; that's *almost* all I've got so far.:-)Not quite: I have a paper sketch of a screen layout.I need to figure out Glade, which I gather is the prototypingenvironment of choice for complicated user interfaces.
As I've discussed before, though, primarily with Will, who's done muchof this already, though not all in one place, my goal is to create aone-screen, full-screen interface that handles multiple playlists
(karaoke, background, sound-effects, etc), possibly driving multipleoutputs (my Terratec Phase 26USB will generate 3 stereo pairs to feedmy mixer), and potentially interface with wireless songbook tablets (mycurrent target is the Fujitsu Point 510 or 1600; the touchscreens of
which are 800x600, color, and don't require a pen).How *have* things been going with your lashup these days?I've relocated to Florida (Palm Bay), and am trying to set up shop here as a KJ. I'm making some progress in that area (feels like more sideways than forward movement though), but software projects are paying the bills right now.
I've got a lot of things as far as a hosting platform working on a by hand basis; I use JACK for low-latency audio production, mplayer for video/multimedia playback, xmms for filler music playlist management and visualizations (projectM), and Firefox to display rotation information on the screen. PyKaraoke is used for actual CDG playback; I don't use 100% of the screen for it, but instead leave a bar at the top and bottom now (top shows name of singer and song title, bottom shows a smooth line-by-line scroller that shows the next few singers and promotional texts).
The HTML in use now auto-generates the bulk of the screen via _javascript_; I just fill in names, song titles, and group assignments, and mark who's up, and it auto-generates the rest, including the grid, who's next, etc.
There's a lot left to automate, as for now I run things by hand as far as firing off new CDG songs, videos, etc.
And where's your blog again?http://willfe.com/I haven't written much in it lately, mostly because the biggest reason I moved here in the first place turned out to be one hell of a lie (it involved a woman, go figure) and there just hasn't been much motivation to actually write.
-- Looking for something to read? Visit http://willfe.com/ ... it's easy, safe, and fun for the whole family!
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642___
Pykaraoke-discuss mailing list
Pykaraoke-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/pykaraoke-discuss


Re: [Pykaraoke-discuss] New ripper

2006-06-25 Thread William Ferrell
On 6/25/06, Jay R. Ashworth [EMAIL PROTECTED] wrote:
On Sun, Jun 25, 2006 at 06:46:05PM +0100, Drew wrote:  Well, having finally gotten SuSE 10.0 onto my laptop and the 100GB  drive (which freed up the 80GB to go in the external chassis), I'm  about to start ripping my 400 disc library -- which includes a lot of
  brands, though only a couple Sound Choice and Music Maestro discs -- so  I guess I can A/B compare them, and see what I get.Even a 10% speedup  is worth it on 400 discs.:-)
 I'm pretty sure you'll see a speed increase. As far as ripping all 400 disks my code is missing some important features that cdgrip.py has. The main ones are the track name lookups and the ability to use lame instead
 of oggenc.Ah.Well, ogg is fine with me, as long as the player will track it.FreeDB is a bit more important -- you'd be surprised how many karaokeCDGs are actually in there.
I feel the need to chime in here and say Ogg Vorbis is *very* important here, especially when ripping a bigger collection. There's logistic, performance, and legal reasons why Ogg Vorbis is the appropriate format for compressed audio at a karaoke show.
Some of this is anecdotal for me, since I've done it myself and have seen these benefits, but I haven't actually done a laboratory-style suite of tests to prove these things. Though some of it is pretty damned easy to demonstrate anyway.
1) Same sound quality (or better) -- Ogg Vorbis does a great job compressing music; of course this is subjective but Oggs always sound either indistiguishable from the same music compressed by MP3 or perceptively better.
2) Better compression ratios -- Oggs end up smaller than MP3s for the equivalent compression settings; i.e. if it sounds the same as an MP3, it'll be smaller as an Ogg, and if an Ogg the same size as an equivalent MP3, it will have fewer artifacts and generally sound better.
3) Faster compression/decompression -- On my 64-bit (AMD Athlon 64) notebook, Ogg encoding can sometimes run almost twice as fast as equivalent MP3 encoding. It's such a huge performance improvement that when I put a pile of Oggs together to re-convert back to MP3 to burn to a CD my truck's MP3-capable (but not Ogg-capable, dammit) player can grok, I'm disappointed that it takes more time to actually convert the files than it does to write the physical disc.
4) Royalty/patent free -- I know it's mostly an academic issue since MP3's patent holders haven't apparently been complete bastards about it, I don't have to worry at all that some lawyer or cop will walk in during one of my shows and shut me down for not paying a licensing fee to use a patented audio decoder. Same with releasing software that uses it; my understanding is that the MP3 folks *do* raise an eyebrow occasionally on players if those players generate revenue for their builders/authors.
I haven't made empirical comparisons for the rest of this but I suspect Ogg's tags can hold more data (they can be longer than ID3 tags), I know players seem better-behaved (xmms is definitely faster/more cooperative playing Oggs than it is playing MP3s, at least on both my systems), etc.
And let me tell you this: on a song collection exceeding 40,000 songs, pushing 150GB, converting from MP3 (I kept the originals, don't panic) to Ogg Vorbis dropped the collection down to 110GB and sounds just as good.
  Has anyone looked into cdparanoia? I couldn't find an option for ripping with subcode but I didn't look
 that closely.Amusingly, googling for cdparanoia subcode turns up...me and Will, talking about whether it will do it or not.:-)That's hilarious. I'd really love to find a way to either play CDG straight from a CD or be able to rip just one track (during a show, it'll be a pain in the ass if someone brings their own disc to play but doesn't hand it to me until it's their turn to sing ... yeah, it'll be about ten minutes before you can sing this because my computer has to read the whole disc first)
-- Looking for something to read? Visit http://willfe.com/ ... it's easy, safe, and fun for the whole family!
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642___
Pykaraoke-discuss mailing list
Pykaraoke-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/pykaraoke-discuss


[Pykaraoke-discuss] Pitch-shifting HOWTO updated

2006-04-08 Thread William Ferrell
I've updated my HOWTO to include more configuration details for
MPlayer, version numbers for packages used, and more automation
details (including a basic script). Have another look if you're
curious about such things :)

http://willfe.com.nyud.net:8080/index.php/Pitch-shifting_With_PyKaraoke_and_JACK_HOWTO

Thanks, all!

--
Looking for something to read? Visit http://willfe.com/ ... it's easy,
safe, and fun for the whole family!


---
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=lnkkid0944bid$1720dat1642
___
Pykaraoke-discuss mailing list
Pykaraoke-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/pykaraoke-discuss


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

2006-04-07 Thread William Ferrell
PyKaraoke doesn't currently support pitch-shifting natively during
song playback, and this is about the only missing feature that
prevents PyKaraoke from being a complete digital replacement for the
traditional analog CD+G player.

This is the case because PyKaraoke relies on Pygame's MP3/Ogg/WAV
playback engine, which does not (currently) provide any means of
applying effects filters to the sound before it hits the sound device.
It would be possible to replace this with our own threaded MP3/Ogg/WAV
player, and use libsoundtouch to perform pitch-shifting (it is a very
high quality, faster-than-realtime pitch shifter and time
compressor/expander), but that's a significant undertaking. There are
no Python bindings for libsoundtouch, so using it would mean mucking
with SWIG, which has always given me fits.

On Linux at least, there is an alternative solution that ultimately
provides more flexibility anyway in building a sound layer that
permits all sorts of cool sound effect possibilities.

This HOWTO attempts to document how the whole thing fits together, how
to implement it on your own system, and how to use it in production at
a karaoke (or really any DJ'ed) show.

1. The Architecture.

The system we'll be building uses JACK to connect different sound
applications together and to the machine's sound card. PyKaraoke will
provide the CD+G audio source that we'll be applying pitch-shifting
effects to. XMMS will provide filler audio in this example, simply
because it has a JACK output driver and is easy to work with. It also
has a high-quality crossfader plugin that produces outstanding audio
results. JACK Rack, with Tom's Audio Processing LADSPA plugins
providing pitch-shifting. As an added bonus, I'll demonstrate how to
get MPlayer into the mix as well, to provide multimedia clips at shows
where a television or projector is available.

1.1 JACK

http://jackit.sourceforge.net/

The JACK Audio Connection Kit is a real-time virtual mixing board for
Linux (and possibly other platforms; I haven't yet investigated this)
that uses a low-latency server and protocol to connect sound
applications and devices to each other. It can control all sorts of
real hardware (sound cards, MIDI controllers, etc.) and can accept
inputs from just about anything (media players, MIDI controllers,
etc.) for both audio and control.

It can make use of a stock Linux kernel, or one that has been
configured with preempting and real-time features to ensure no pops or
gaps in audio playback even when many different tools are in active
use on the chain.

JACK includes a useful tool, qjackctl, that will be used in this HOWTO
to configure JACK and to automate patching our different tools
together.

1.2 JACK Rack

http://jack-rack.sourceforge.net/

JACK Rack is a sound processor designed for use with JACK exclusively;
it presents a configurable number of default channels to JACK and
can load effects modules (like echo, pitch shift, reverb, etc.)
in any order. Sound flows through the modules top-to-bottom as they're
shown in the interface. Modules can be enabled or disabled (when
disabled, they do nothing to the sound; it simply flows through them
to the next module), and moved up and down in the stack.

This HOWTO uses JACK Rack for two things: first, it is used to perform
the actual pitch-shifting work when needed (audio from PyKaraoke is
passed to JACK Rack instead of straight ot the sound card). Second, it
performs crossfading work; I use different audio sources
(specifically, XMMS and MPlayer) during my shows, and smoothly
transitioning from them to CD+G music and back is important. JACK Rack
is, in this configuration, the only piece of software on the chain
that is connected to the sound card. All audio playback runs through
JACK Rack whether it is doing anything to the sound or not.

1.3 XMMS

http://www.xmms.org/

XMMS is a multimedia player for Linux. It is an older piece of
software (not actively maintained anymore; its developers are focusing
on a new 2.0 release), but assuming it'll start up and run on your
system, it's very reliable and useful for this purpose.

It supports MP3, Ogg Vorbis, WAV, FLAC, and all sorts of other audio
formats. It can play video (via MPlayer, actually), but we want manual
control over that kind of thing so we'll only be using XMMS for audio.

XMMS' plugin system means we can get automated crossfading between
songs XMMS plays *and* connect the whole thing to JACK as just another
audio source.

1.4 MPlayer

http://www.mplayerhq.hu/

MPlayer is a multimedia player for Linux. It supports audio and video
playback, tons of media formats, lots of output devices and types, and
has more features than I can adequately count here.

For our purposes, we'll simply be chaining it to JACK as an audio
source (letting it do its own thing for video, if needed) so we can
crossfade between it and the filler music XMMS provides.

1.5 Tom's Audio Processing LADSPA Plugins

http://tap-plugins.sourceforge.net/

This set of 

Re: [Pykaraoke-discuss] Re: FINALLY -- ghod I hate SuSE

2005-12-19 Thread William Ferrell
On 12/19/05, Kelvin Lawson [EMAIL PROTECTED] wrote:
 Hi Jay,

 Thanks for the feedback. So do you think this is an improvement on the
 previous performance? If it's difficult to tell with the new 1/4 second
 display-dropping code then let me know and I'll take it out.

 If it's an improvement then maybe the thing to do is divide the screen
 into smaller segments.

 I've made a few updates tonight, if you could help by trying them out
 that would be great. Although the last version only scaled the modified
 tiles, it still did a full update() on the entire screen. This one only
 updates the modified tile.

 I've also removed a small delay that was in there to reduce CPU load
 (which stops it constantly polling for the current song time). I'm
 wondering whether some systems can hit this and block for a long time,
 doing no work at all. It will take your CPU load up to 100% if it wasn't
 already.

 I also added some profiling code in there using the hotshot module. It
 hasn't turned out to be useful unfortunately - according to the
 documentation it doesn't play well with threads. The accumulated time it
 spews out is totally incorrect for instance. I've disabled it in there
 for now.

 Cheers,
 Kelvin.


  At the 15 fps you set it to, it can just about keep up with SC8119-1,
  but I can see the pauses.  Again, this is at:
 
  screen #0:
print screen:no
dimensions:1280x1024 pixels (361x271 millimeters)
resolution:90x96 dots per inch
depths (7):24, 1, 4, 8, 15, 16, 32
root window id:0x60
depth of root window:24 planes
number of colormaps:minimum 1, maximum 1
default colormap:0x20
default number of colormap cells:256
preallocated pixels:black 0, white 16777215
options:backing-store NO, save-unders NO
largest cursor:64x64
current input event mask:0xfa4031
  KeyPressMask EnterWindowMask  LeaveWindowMask
  KeymapStateMask  StructureNotifyMask
  SubstructureNotifyMask
  SubstructureRedirectMask FocusChangeMask
  PropertyChangeMask
  ColormapChangeMask
number of visuals:8
default visual id:  0x23
visual:
  visual id:0x23
  class:TrueColor
  depth:24 planes
  available colormap entries:256 per subfield
  red, green, blue masks:0xff, 0xff00, 0xff
  significant bits in color specification:8 bits
 
  Hope that's informative enough.  Have you profiled it?  Can you profile
  it?  Can I profile it?  :-)

[swallows tongue]

You're running this at 1280x1024? Heh :) I'd been running shows at
1024x768 and not quite using full screen. Hrmmm... Kelvin, I'll give
the new code a try too.

In full screen 640x480, btw, the thing is blazing fast. Same with 800x600.

--
Looking for something to read? Visit http://willfe.com/ ... it's easy,
safe, and fun for the whole family!


---
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_idv37alloc_id865op=click
___
Pykaraoke-discuss mailing list
Pykaraoke-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/pykaraoke-discuss


Re: [Pykaraoke-discuss] FINALLY -- ghod I hate SuSE

2005-12-12 Thread William Ferrell
On 12/11/05, Kelvin Lawson [EMAIL PROTECTED] wrote:
 Hi Jay,

  I note that it doesn't handle full-screen well (1280x1024), speedwise;
  is there something I should be doing there?

 The CPU horsepower is heavily affected by the display update rate, I
 think v0.4 went out with a default 60 frames per second. I've lowered
 this to 10fps in CVS. To lower it in your installation, search for fps
 in pycdg.py.

The only problem with this is that the FPS is actually somewhat
important; 15 fps is a bare minimum (from the testing on different
tracks I've tried it with) for usable singing (it seems jumpy even
at 15 FPS, though it's servicable). 30 FPS is definitely better, and
60 FPS is what the hardware players I've worked with produce.

 Will also committed a mod in CVS to use hardware acceleration if
 available in full-screen mode - sounds like it would be worth giving
 that a go as well.

It's enabled by default in CVS but it doesn't actually seem to help at
all (that I can detect). It may just not be working or I may have set
something up incorrectly. Having more pairs of eyes looking that over
would be helpful :)

 What speed CPU are you using by the way?

The notebook I now use for shows is an AMD Sempron 1.6GHz.

  My production environment will be a little tiny window on my KJ
  display, and probably 640x480x8 on the playback monitor (are we doing
  dual-monitor yet?  Or will I have to do an X-splice somehow?); will
  that be fast enough to keep up?

 I made a development version that allows you to send to another X
 display, but not dual-display yet. Dual-display is going to need some
 architectural changes... something like a single audio playback and
 syncing module that sends the display data to other display processes.
 There's no built-in support in pygame for selecting X displays so it
 would mean running a new python process with DISPLAY= in front.

Don't forget about xinerama-style support -- one desktop stretched
across two physical display devices. This is what I use now (the
notebook display is used for my stuff during a show, then the
VGA-to-NTSC adapter showing the other half of the desktop is used for
the who's up cards, video clips, etc.

pycdg.py plays along just fine by specifying the correct geometry and
position, too. I can routinely squeeze 50 FPS out of it at 800x600. If
I try for 60 FPS, it loses sync with the audio and isn't usable.


---
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_idv37alloc_id865op=click
___
Pykaraoke-discuss mailing list
Pykaraoke-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/pykaraoke-discuss


Re: [Pykaraoke-discuss] FINALLY -- ghod I hate SuSE

2005-12-11 Thread William Ferrell
On 12/11/05, Jay R. Ashworth [EMAIL PROTECTED] wrote:
 I have it working now.

 I had to build SDL from tarball source -- the RPM wouldn't even
 ./configure, much less build a binary (which was my preferred
 approach).

 Building it required installing slang-devel and smpeg-devel, both of
 which were in the SuSE 9.3 collection, and, I don't *think*, anything
 else.

Evil. Just evil :)

 I note that it doesn't handle full-screen well (1280x1024), speedwise;
 is there something I should be doing there?

Yeah, I've noticed this, too; I think it's SDL having problems; the
notebook I'm running this thing on now has hardware-accelerated OpenGL
and if I try to run it higher than 800x600 at more than 30 fps, it
crawls and actually gets out of sync.

I tried adding pygame.HWSURFACE | pygame.DOUBLEBUF and similar options
to the cdgDisplayOptions variable, but it didn't seem to make anything
faster. Not sure what's slowing it down. Could just be the scaling
method; is there a way to scale *without* turning on smoothing? That'd
be handy.

 My production environment will be a little tiny window on my KJ
 display, and probably 640x480x8 on the playback monitor (are we doing
 dual-monitor yet?  Or will I have to do an X-splice somehow?); will
 that be fast enough to keep up?

I'm doing dual-monitor just fine with pycdg.py:

pycdg.py -x 800 -y 0 -w 800 -h 600 -s 60 track03.cdg

Works just fine on my second monitor (xinerama, baby :)

 And, finally, I note that my rip was kinda messy.  Will cdparanoia
 properly extract the subcode?  Is there error correction *on* the
 subcode?  Or am I going to have to preview all 4000 tracks before I
 turn them lose?

It depends on what mode(s) your CD reader rips in -- if you can rip
cooked instead of raw, I think that makes things better. No real proof
of this yet though :)

 (Will: there's another button for the interface: Problem with track --
 rerip  :-)

Noted.


---
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_idv37alloc_id865op=click
___
Pykaraoke-discuss mailing list
Pykaraoke-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/pykaraoke-discuss


Re: [Pykaraoke-discuss] Installer

2005-12-01 Thread William Ferrell
On 12/1/05, Kelvin Lawson [EMAIL PROTECTED] wrote:
 Hi Folks,

 I've used python distutils to make a simple install script for
 PyKaraoke. Hopefully this should make it easier to create the various
 packages we need for the distro package managers.

I'll test this after tonight's karaoke show. I'd try it now, but I've
got an hour 'till setup time and I don't want to change or risk
breaking anything right before a show starts. I hate wiping egg off my
face :)

--
Looking for something to read? Visit http://willfe.com/ ... it's easy,
safe, and fun for the whole family!


---
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_idv37alloc_id865op=click
___
Pykaraoke-discuss mailing list
Pykaraoke-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/pykaraoke-discuss


Re: [Pykaraoke-discuss] DJ/KJ in Denver Checking In

2005-11-28 Thread William Ferrell
On 11/28/05, Kelvin Lawson [EMAIL PROTECTED] wrote:
  I think that I've never *ever* seen a commercial CDG that scrolls.
 
  Ever.
 
  KBS will create them, and I should have that in a week or two.  But I
  wouldn't worry *too* much about it.

 I've got one from Doctor Music, that I used for testing the scrolling
 code. Can't recall if I've seen it on any others though.

 Kelvin.

How expensive is it just to start from byte 0 of the CDG
instructions and run every command in order internally up to the
current seek time, then blit the result?

I had been assuming that scaling/drawing the output itself is what
took time, and that on the internal drawing surface it was nearly
instantaneous and painless. Am I just nuts? :)

Either way, I would think that going back to the last memory preset
would do the trick; doesn't that clear out *everything,* not just the
visible area?

--
Looking for something to read? Visit http://willfe.com/ ... it's easy,
safe, and fun for the whole family!


---
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_idv37alloc_id865op=click
___
Pykaraoke-discuss mailing list
Pykaraoke-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/pykaraoke-discuss