Code Monkey home page Code Monkey logo

pykaraoke's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pykaraoke's Issues

Pycdg displaySize

Hi Kelvin,

Is there a way to set the displaySize when importing the pycdg module directly?

I want to be able to set the set the size to larger than 640*480 but can't figure out how to make that work.

Also is there a way to toggle full screen?

This module is very awesome and I'm trying to avoid having to customize the code. If I need to I can as well and perhaps contribute a patch.

New Feature: Lyrics Preview Window

Already in progress in gstreamer branch, needs to be merged into master with the following changes:

  • Make sure that it does not break all supported platforms.
  • In particular, make sure that there are no Wx dependencies introduced for platforms that use only pykaraoke_mini (e.g. GP2X). At the moment it looks like the gstreamer branch has introduced a dependency on Wx which could affect pykaraoke_mini platforms that have no Wx installed. (To be confirmed).

Reallocate file links in database

Moved from Sourceforge tracker, originally submitted by SF user softbilly:

Imagine media files were scanned from folder e.g D:\Myfiles\some subfolder structure and database was edited with information like artist etc. Now the files are moved to C:\MyKaraoke\some subfolder structure. It should be possible to reallocate the files. Change root of file links in database.

Kamikaze mode double performer prompt

The Kamikaze button prompts for "Performer" twice. It then displays the value from the first prompt as the filename.
(However, the file still plays correctly.)

Unresponsive after playing a MIDI file without lyrics

Reported on mailing list by Pietro Battiston:

there are some MIDI files (I can provide an example only privately,
since they are not free) for which, when played, PyKaraoke only shows
the error
"ERROR: Could not parse the MIDI file"
and then, in another MessageDialog, the error
"No lyrics in the track".
Now, that would be fair to me... the only problem is that then,
pykaraoke is stuck: not unresponsive, but it won't play any other file,
and will print forever in the terminal:
Traceback (most recent call last):
File "/usr/lib/pymodules/python2.7/pykaraoke.py", line 3815, in
handleIdle
position = self.Player.GetPos()
File "/usr/lib/pymodules/python2.7/pykar.py", line 1072, in GetPos
if self.useMidiTimer:
AttributeError: midPlayer instance has no attribute 'useMidiTimer'

Interestingly, if I played some MIDI before trying to play the faulty
one, then in the background that will play again, but without showing
the lyrics (and i will not be able to stop it in any way).

You may think it is stupid to play faulty MIDI files, or MIDI files
without lyrics... but when I have a huge library it's impossible to try
all of them before, and then it's also annoying to have to restart the
program (and loose the queue) any time a faulty one is chosen...

Maybe an alternative fix could be to (optionally) run some "validity
check" on MIDI files when refreshing the library?

by the way, thanks for the nice app

Pietro

Installation on Ubuntu 22

Hi,
Is it compatible with Python3 ?
I got some issue installing: Maybe the documentation need to be updated
sudo apt-get install python-dev python-pygam libwxgtk-python libsdl-dev python-mutagen
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Package python-dev is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
However the following packages replace it:
python2-dev:i386 python2:i386 python2-dev python2 python-dev-is-python3

Package libsdl-dev is a virtual package provided by:
libsdl1.2-dev 1.2.15+dfsg2-6
libsdl1.2-compat-dev 1.2.52-3
You should explicitly select one to install.

Package python-mutagen is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
However the following packages replace it:
python3-mutagen

E: Package 'python-dev' has no installation candidate
E: Unable to locate package python-pygam
E: Unable to locate package libwxgtk-python
E: Package 'libsdl-dev' has no installation candidate
E: Package 'python-mutagen' has no installation candidate

So I've replaced by python3-dev python3-mutagen python3-pygame libwxbase3.0-dev libsdl-mixer1.2-dev libsdl-image1.2-dev but I still have some issue to install other dependency:

Hunting dependencies...
SDL : found 1.2.52
FONT : not found
IMAGE : found
MIXER : found
PNG : found
JPEG : found
SCRAP : found
PORTMIDI: not found
PORTTIME: not found
FREETYPE: found 24.1.18

Any recommandations ? It's not lauching even it I launch it without installing it.
/Downloads/pikaraoke-master$ python3 karaoke.py
pygame 2.1.2 (SDL 2.0.20, Python 3.10.6)
Hello from the pygame community. https://www.pygame.org/contribute.html
z800@z800:~/Downloads/pikaraoke-master$

Thank you

New Feature: Pitch-shifting

Already in progress in gstreamer branch. Needs to be merged into master, with the following changes:

  • Fall back to Pygame for audio if pygst is not available (gstreamer branch currently assumes pygst always available). This will be vital on platforms that do not support pygst (potentially GP2X) and saves us from mandating that pygst is always installed.
  • Windows pygst pitch-shifting is not currently working, so needs to be fixed or do not attempt to use pygst/pitch-shifting on Windows platform (even if pygst is available).
  • Do not show the pitch-shifting buttons in pykaraoke.py if pygst not in use.

New Feature: Log files that failed during a scan

When running pykaraoke.py from a command line and performing a directory scan (for .zip files containing cdg+mp3 in my case), an output of files that failed to unzip or parse (and brief reason) is visible.

Please add the ability to dump the path + filenames (and possibly reason) to either an external log file or a log window in the GUI so the list can be saved for later examination.

Preferably with the ability so that it will be easy to collect and separate a list of files that use an unsupported compression method, invalid/corrupt zip, and 'name could not be parsed' (such as unusual characters in the zip or contents). This could be by perhaps different log files or different tabs in the GUI window.

This would allow the user to then unzip + rezip specific files, or to individually examine or rename the zip or contents.

Artist-Title parsing fails under certain circumstances

Using the "DISC-TRACK - ARTIST - TITLE" structure, the following will parse correctly;
/cdg/CB/CB3xxxx/CB30055/CB30055-15 - Switchfoot - Stars.zip
Title: Stars
Artist: Switchfoot

However, the following examples do not parse;
/cdg/PH/PHM - Pop/PHM0512/PHM0512-08 - Switchfoot - Stars.zip
I assume this is due to the "-" character as part of the path.

SC3448-03 - All-American Rejects - Dirty Little Secret.zip
(Again I assume to the "-" in the artist name.)

CB5056-03-06 - Al Green - Let's Stay Together.zip
(Probably due to their being a "-" in the disc code CB5056-03.)

I understand that the format follows the correct specs of 'optional spaces', and this makes things tricky (near impossible) to parse certain valid filenames.

The problems here could be solved by adding an additional parsing option of
"DISC-TRACK-ARTIST-TITLE" - This is what exists, and allows the optional spaces.
"DISC-TRACK - ARTIST - TITLE" - This is what could be added, where the spaces are required.

  • First delimiter " " (or " - " if you want to be more strict) separates the DISC-TRACK from the rest of the string. If the next character is "-" or "- " (dash space), trim that too.
  • In the obtained DISC-TRACK, the LAST delimiter "-" separates the disc ID and the track. This would allow DISC ID's to contain dashes.
  • In the remaining artist-title string, use the first found delimiter " - ". Any further delimiter counts as the title (or artist, if the format is "title - artist".

New Feature: Tempo-Shifting

This is a work-in-progress in gstreamer branch, but is not yet working. Once working needs to be merged into master, including making sure that it works on all platforms, and disabling it if pygst is not available or tempo-shifting is not working on the platform.

New Feature: Scan exclusion filter

Please add the ability to exclude files matching certain patterns from a scan.
Example: (Vocal),(Gospel),(Spanish)

(A comma may not be the best delimiter.)

New Feature: Custom pattern for song structure filter

Moved from Sourceforge tracker:

I've got a zip archive with a structued KAR file in the following way:
language/artist/song.kar

The version 0.7.4 does not parse it properly. The quick fix for it is bellow:

--- pykdb.py.orig 2011-06-22 16:52:34.855172010 +0800
+++ pykdb.py 2011-06-22 16:54:11.872172004 +0800
@@ -213,6 +213,9 @@
self.Filepath += 'cdg'

    if ZipStoredName:
  •        ZipSplit = ZipStoredName.rpartition(".")[0]
    
  •        self.Title = ZipSplit.rpartition("/")[2]
    
  •        self.Artist = ZipSplit.rpartition("/")[0].rpartition("/")[2]
        self.DisplayFilename = os.path.basename(ZipStoredName)
        if isinstance(self.DisplayFilename, types.StringType):
            self.DisplayFilename = self.DisplayFilename.decode(settings.ZipfileCoding)
    

However, you might want to fix it properly which would require much more programming.

KJ Features

Moved from (anonymous) feature request at Sourceforge:

Please add a key change facility, make the time count down during playback so we know how much time is left. Add a screen so the dj can see what the singer is seeing and if possible add singer history which remembers key/tempo change.

GP2X stil relevant?

I'm in the process of porting Pykaraoke to GStreamer 1.0. and later GTK3 wxPython/Phoenix.

GP2X will probably brake in the process and I'm wondering if it's still relevant to support this platform or if the code could be removed?

Scan DIVX and XVID Extensions

Moved from Sourceforge tracker, originally submitted by SF user softbilly:

When scanning for songs in the selected folders it should be possible to search also for divx and xvid extensions and not only avi.

Backup and restore library

Moved from Sourceforge tracker, originally submitted by SF user softbilly:

It should be possible to backup and restore the song database. I am talking about the list of artists and songs and the link to the media file (cdg + mp3 or avi) and not the media files themselves. This would be another feature.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.