Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[OT] - 321GtK
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

Goto page 1, 2, 3, 4  Next  
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) Forum di discussione italiano
View previous topic :: View next topic  
Author Message
xchris
Advocate
Advocate


Joined: 10 Jul 2003
Posts: 2824

PostPosted: Thu Sep 08, 2005 3:53 pm    Post subject: [OT] - 321GtK Reply with quote

Se i moderatori reputano questo thread troppo OT datemi una zappata sui piedi e chiudetelo pure. (e mi scuso)
Il motivo per cui posto e' perche' magari a qc interessa collaborare alla costruzione del mio player mp3 (e solo mp3)

Cosa e' e che funzioni ha?

1 - E' un mp3 player alla rhytmbox con ricerche e cose simili basato sul mitico mpg321
2 - Supporta diversi tipi di visualizzazione
3 - E' abbastanza "verboso" sugli mp3 che passano
4 - Supporta alcune funzioni per ispezioni veloci ma approfondite di cartelle di mp3 (con DragNDrop)
5 - Puo' scrivere/leggere il database su diversi file
6 - Ha una comoda e personalizzabile funzione di sorting (In Sviluppo)
7 - Ha una semplice playlist riorganizzabile(In Sviluppo)
8 - Supporta archivi compressi (In Sviluppo)
9 - NON ha editing TAG (per ora ;) )
10 - NON supporta ogg :S (colpa di mpg321)

Perche' lo sto scrivendo?

1 - Perche' devo provare un po' GTK (pyGTK per essere precisi)
2 - Perche' non amo nessun player in particolare sotto Linux (e al momento non mi piace neanche il mio... per par-condicio)
3 - Perche' questa estate mi sono preso una spina sotto il piede che mi ha costretto a stare un po' fermo e non potevo continuare Auntmary
4 - Mi diverto cosi' (bhe non solo..)

A che punto siamo?

- e' in fase veramente ALFA... ma veramente!
- ha molti bug e mi farebbe comodo scovarli con dei volenterosi alfa-tester (si... ALFA!)
- devo riscrivere le routine di Resync (e' lenta ora)
- devo fare la sezione di modifica TAG con musicbrainz
- tanto tanto altro

il Nome

dai... almeno questo passatemelo!

ScreenShots
Vi mostro qualche screenshot (aggiornati alla 0.1a)
http://www.xchris.net/download.php?file=screenshots/321GtK-new-1.png
http://www.xchris.net/download.php?file=screenshots/321GtK-new-2.png
http://www.xchris.net/download.php?file=screenshots/321GtK-new-3.png
http://www.xchris.net/download.php?file=screenshots/321GtK-new-4.png
http://www.xchris.net/download.php?file=screenshots/321GtK-new-5.png
http://www.xchris.net/download.php?file=screenshots/321GtK-new-6.png
Versione in sviuppo
http://www.xchris.net/download.php?file=screenshots/321GtK-new-7.png


Dipendenze

-mpg321
-eyeD3-0.6.8
-pyGTK
-python.. (bhe)

FAQ
Mi paciuga da qualche parte il sistema?
-nella vostra home .321GtK/
-in /tmp mette una immagine (devo riscrivere la routine per l'immagine... al momento la scrivo e la leggo :S)

Feedback

ci sono ancora un po' di bug! (alcuni noti...)
Mandatemi un PM quando li trovate per favore... oppure una mail. (ancora meglio)

Bhe ma dove sta?
http://www.xchris.net/download.php?file=files/321GtK/321GtK-eyeD3-foroverlay.tar.bz2
Code:

wget  http://www.xchris.net/download.php?file=files/321GtK/321GtK-eyeD3-foroverlay.tar.bz2 -O 321GtK-eyeD3-foroverlay.tar.bz2


Andate nella vostra dir di overlay,starrate e eliminate il file.
(il tar contiene l'ebuild per 321GtK e per eyeD3 aggiornato)

Spero non ci siano pb con l'ebuild.
Per assurdo pur avendoci lavorato molto con Unclepine non ne ho mai scritto uno. :S

Feedback,SUGGERIMENTI,insulti e quanto altro sempre ben accetti.
Un grazie in anticipo a chi lo prova.
_________________
while True:Gentoo()


Last edited by xchris on Thu Sep 22, 2005 6:45 am; edited 5 times in total
Back to top
View user's profile Send private message
Ic3M4n
Advocate
Advocate


Joined: 02 Nov 2004
Posts: 3489
Location: Bergamo.

PostPosted: Thu Sep 08, 2005 4:07 pm    Post subject: Reply with quote

adesso me lo scarico e preparati ad essere inondato di richieste di ogni tipo...

intanto... grazie!
Back to top
View user's profile Send private message
xchris
Advocate
Advocate


Joined: 10 Jul 2003
Posts: 2824

PostPosted: Thu Sep 08, 2005 4:10 pm    Post subject: Reply with quote

vedrai che piu' che altro saranno bug report...

anche se decisamente alfa ho preferito postare perche' n-tester sono meglio di uno ;)
(bhe almeno siamo in 2 :D)

ciao e grazie
_________________
while True:Gentoo()
Back to top
View user's profile Send private message
federico
Advocate
Advocate


Joined: 18 Feb 2003
Posts: 3272
Location: Italy, Milano

PostPosted: Thu Sep 08, 2005 4:14 pm    Post subject: Reply with quote

Hai valutato per caso l'idea di sfruttare un player in python piuttosto che mpg321? Cosa ti ha fatto pendere per questa soluzione?

Ti posto inoltre quello di cui ti avevo accennato in privato, si tratta di una classe per leggere gli id di qualsiasi versione (per quanto sono riuscito a provare) di ID3 , il codice è un po' sporcato da cose che non vengono utilizzate nella classe ma solo nel resto del programma, ma se ti sembera' interessante posso anche vedere di sistemarlo. Purtroppo non sono del tutto sicuro che la stringa di normalizzazione dei nomi venga letta correttamente nel forum phpBB, per sicurezza uppo il file anche su www.sideralis.net/blackman/philips.py

Come dipendenza ha mad e id3reader, l'indirizzo e' nei commenti.
Allego anche il normalizer.py per la normalizzazione dei nomi qualora intendessi utilizzare questo codice.

Code:

#!/usr/bin/env python
# -*- coding: iso-8859-1 -*-

# Code from Federico Galli <fede@sideralis.net>
# Many bugs solved by Riccardo Galli <riquito@sideralis.net>
# Developed for Sideralis Programs - http://www.sideralis.net

# Write songs on Philips HDD <100 (60,65,70 ...)
# Thanks to http://nedbatchelder.com/ for the id3reader module
# and to http://dhat.webpark.cz/ for his sourcecode.

# Beta Version -First time full running : mon 10 jan 2005
# jan 11 2005 code cleand and more power to the parser

import os,sys,re, shutil
import sqlite
import mad,id3reader
from normalizer import fix_unicode

from time import time

MOUNT_POINT='/mnt/philipsMp3_1'
HDD_DIR='_system/media/audio'

#MOUNT_POINT='tmp'
#HDD_DIR=''

MAX_QUERY="\
SELECT cSongTitle,cArtistName,cAlbumTitle,iTrackNr,iTrackLength,iNrPlayed,\
        cFilename,iDirId,iYear,cGenreName,iBitRate,iSampleRate,iFileSize,iMediaType \
FROM SongTable \
  INNER JOIN GenreTable ON SongTable.iGenreId=GenreTable.iGenreId \
  INNER JOIN ArtistTable ON SongTable.iArtistId=ArtistTable.iArtistId \
  INNER JOIN AlbumTable ON SongTable.iAlbumId=AlbumTable.iAlbumId\
"

verbose=1

#This is for normalizing names
noaccents="""\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\
\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !"#$%&'()*+,-./0123456789\
:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7f\
\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\
\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ\
¶·¸¹º»¼½¾¿AAAAAA\xc6CEEEEIIII\xd0NOOOOO\xd7\xd8UUUUY\xde\xdfaaaaaa\xe6ceeeeiiii\
\xf0nooooo\xf7\xf8uuuuy\xfey"""

#Regular Ex about music genres
reGenre=re.compile('\((?P<idIfName>\d+)\)\s?(?P<nameIfId>.+)|\((?P<idNoName>\d+)\)|(?P<nameNoId>.+)')

class MP3(object):
    __slots__=['Artist','Album','Title','FileName','TrackNum','Genre',
               'Year','Bitrate','Samplerate','Length','Size','MediaType']

    def __str__(self):
        text=[]
        for i in MP3.__slots__:
            value=getattr(self,i)
            if i in ('Year','TrackNum','Length','Size','Samplerate','Bitrate','MediaType'):
                text.append(('%s: %s' % (i,value)).encode('ascii','replace'))
            else:
                if isinstance(value,unicode):
                    text.append('%s: %s' % (i,value.encode('iso-8859-1','replace')))
                else:
                    text.append('%s: %s' % (i,value.decode('iso-8859-1','replace').encode('iso-8859-1','replace')))
        try:
            bau='\n'.join(text)
        except UnicodeDecodeError,e:
            for line in text:
                sys.stdout.write(repr(line))
                print
            raise e
        return bau
   
    def __cmp__(self,other):
        if isinstance(other,MP3):
            for i in MP3.__slots__:
                if cmp(getattr(self,i),getattr(other,i))!=0:
                    return cmp(getattr(self,i),getattr(other,i))
            return 0
        else:
            return cmp(self,other)

def debug(text):
    global verbose
    if verbose:
        print text

RISCHIOOO=[]

def read_id3(dirname,filename):
    #
    # STRONG AND POWERFUL PARSER
    #
   
    #debug('Dirname: '+dirname) #Strippare a 260 caratteri
   
    pathToFile=os.path.join(dirname,filename)
    mp3File=MP3()
    now=time()
    print 'ID3 READER'
    id3r = id3reader.Reader(pathToFile)
    tot=time()-now
    print ' ',tot
    if tot>2:
        global RISCHIOOO
        RISCHIOOO.append(pathToFile)
   
    #mp3File.FileName=filename[:100].translate(noaccents)
    mp3File.FileName=fix_unicode(filename[:100].decode(sys.getfilesystemencoding()))
   
    mp3File.Album=(id3r.getValue('album') or 'No Album Found').lower().strip()
    if isinstance(mp3File.Album,str):
        mp3File.Album=mp3File.Album.translate(noaccents)
    else:
        mp3File.Album=mp3File.Album.encode('latin-1').translate(noaccents)
       
    mp3File.Artist=(id3r.getValue('performer') or 'No Artist Found').lower().strip()
    if isinstance(mp3File.Artist,str):
        mp3File.Artist=mp3File.Artist.translate(noaccents)
    else:
        mp3File.Artist=mp3File.Artist.encode('latin-1').translate(noaccents)
   
    # Se 'No Title Found' Il nome del titolo è strippato a 100 caratteri, lo strip a 4 toglie l'estensione.
    # Qui mettiamo il file name per rendere migliore la lettura
    mp3File.Title=(id3r.getValue('title') or filename[:-4][:100]).lower().strip()
    if isinstance(mp3File.Title,str):
        mp3File.Title=mp3File.Title.translate(noaccents)
    else:
        mp3File.Title=mp3File.Title.encode('latin-1').translate(noaccents)
       
    # Procedura per "tuplare" le tracce :) Il secondo dato, la traccia finale, qualora presente,
    # viene perso durante la procedura. Il software del lettore utilizza solo il primo campo.
    mp3File.TrackNum=id3r.getValue('track')
    if mp3File.TrackNum:
        track = mp3File.TrackNum.split('/')
        if int(track[0])=='0': # La traccia 0 è un po' stupida :)
            #debug('Porto la traccia 0 a 1')
            track[0]=1
        mp3File.TrackNum=int(track[0])
    else:
        mp3File.TrackNum=1
   
    year=id3r.getValue('year')
    if year:
        try:
            year+1
        except TypeError:
            year=year.strip()
            if not year: year=0
            else:
                try: year=int(year)
                except ValueError:
                    year=0
    else:
        year=0
           
    mp3File.Year=year #Se non presente il lettore accetta 0
   
    # Parsing del genere
    mp3File.Genre=id3r.getValue('genre') or '(255)' #No Genre Found
    tmpGenre=reGenre.findall(mp3File.Genre)[0]
    if tmpGenre[1]:
        mp3File.Genre=tmpGenre[1]
    elif tmpGenre[2]:
        if tmpGenre[2]=='255':
            mp3File.Genre='No Genre Found'
        else:
            tmpGenreIso=int(tmpGenre[2].encode('iso-8859-1','replace'))
            mp3File.Genre=id3reader._genres[tmpGenreIso]
    elif tmpGenre[3]:
        mp3File.Genre=tmpGenre[3]
    # Formattazione lower strip e translate del genere
    mp3File.Genre=mp3File.Genre.lower().strip()
    if isinstance(mp3File.Genre,str):
        mp3File.Genre=mp3File.Genre.translate(noaccents)
    else:
        mp3File.Genre=mp3File.Genre.encode('latin-1').translate(noaccents)
   
    now=time()
    print 'MAD'
    madr = mad.MadFile(pathToFile)
    mp3File.Bitrate=madr.bitrate()/1000
    mp3File.Samplerate=madr.samplerate()
    mp3File.Length=madr.total_time()/1000
    print ' ',time()-now
    mp3File.Size=os.path.getsize(pathToFile)/1024
    mp3File.MediaType=1 # 1=MP3, 0=WMA. Attualmente e probabilmente anche in futuro supporterò solo mp3.
   
    return mp3File


normalizer.py
Code:

#code found in the Python CoockBook. It's a comment in the recipe
#http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/251871
#wrote by Andrew Dalke

# If the character doesn't exist in the dictionary, add it as None
# and also return None.  This tells the translate to delete the character
# and makes the next lookup for that character faster.
class XLate(dict):
    def __getitem__(self, c):
        try:
            return dict.__getitem__(self, c)
        except KeyError:
            self[c] = None
            return None

# Define the translation table.  I needed to hammer unicode going to
# NCBI's web services (for Biopython's EUtils package) so I used the
# table defined at
#  http://www.nlm.nih.gov/databases/dtd/medline_character_database.utf8
# This is not as extensive as the original conversion set.
class XLate(dict):
    def __getitem__(self, c):
        try:
            return dict.__getitem__(self, c)
        except KeyError:
            self[c] = None
            return None

# Convert these unicode characters into ASCII
xlate = XLate({
    # The note at the bottom of the page says "the inverted question
    # mark represents a questionable character found as a result of
    # NLM's conversion from its legacy extended EBCDIC character set
    # to UNICODE UTF-8."  I do not use it but leave it here for
    # completeness.
    ord(u"\N{INVERTED QUESTION MARK}"): None,

    ord(u"\N{LATIN CAPITAL LETTER O WITH STROKE}"): u"O",
    ord(u"\N{LATIN SMALL LETTER A WITH GRAVE}"): u"a",
    ord(u"\N{LATIN SMALL LETTER A WITH ACUTE}"): u"a",
    ord(u"\N{LATIN SMALL LETTER A WITH CIRCUMFLEX}"): u"a",
    ord(u"\N{LATIN SMALL LETTER A WITH TILDE}"): u"a",
    ord(u"\N{LATIN SMALL LETTER A WITH DIAERESIS}"): u"a",
    ord(u"\N{LATIN SMALL LETTER A WITH RING ABOVE}"): u"a",
    ord(u"\N{LATIN SMALL LETTER C WITH CEDILLA}"): u"c",
    ord(u"\N{LATIN SMALL LETTER E WITH GRAVE}"): u"e",
    ord(u"\N{LATIN SMALL LETTER E WITH ACUTE}"): u"e",
    ord(u"\N{LATIN SMALL LETTER E WITH CIRCUMFLEX}"): u"e",
    ord(u"\N{LATIN SMALL LETTER E WITH DIAERESIS}"): u"e",
    ord(u"\N{LATIN SMALL LETTER I WITH GRAVE}"): u"i",
    ord(u"\N{LATIN SMALL LETTER I WITH ACUTE}"): u"i",
    ord(u"\N{LATIN SMALL LETTER I WITH CIRCUMFLEX}"): u"i",
    ord(u"\N{LATIN SMALL LETTER I WITH DIAERESIS}"): u"i",
    ord(u"\N{LATIN SMALL LETTER N WITH TILDE}"): u"n",
    ord(u"\N{LATIN SMALL LETTER O WITH GRAVE}"): u"o",
    ord(u"\N{LATIN SMALL LETTER O WITH ACUTE}"): u"o",
    ord(u"\N{LATIN SMALL LETTER O WITH CIRCUMFLEX}"): u"o",
    ord(u"\N{LATIN SMALL LETTER O WITH TILDE}"): u"o",
    ord(u"\N{LATIN SMALL LETTER O WITH DIAERESIS}"): u"o",
    ord(u"\N{LATIN SMALL LETTER O WITH STROKE}"): u"o",
    ord(u"\N{LATIN SMALL LETTER U WITH GRAVE}"): u"u",
    ord(u"\N{LATIN SMALL LETTER U WITH ACUTE}"): u"u",
    ord(u"\N{LATIN SMALL LETTER U WITH CIRCUMFLEX}"): u"u",
    ord(u"\N{LATIN SMALL LETTER U WITH DIAERESIS}"): u"u",
    ord(u"\N{LATIN SMALL LETTER Y WITH ACUTE}"): u"y",
    ord(u"\N{LATIN SMALL LETTER Y WITH DIAERESIS}"): u"y",
    ord(u"\N{LATIN SMALL LETTER A WITH MACRON}"): u"a",
    ord(u"\N{LATIN SMALL LETTER A WITH BREVE}"): u"a",
    ord(u"\N{LATIN SMALL LETTER C WITH ACUTE}"): u"c",
    ord(u"\N{LATIN SMALL LETTER C WITH CIRCUMFLEX}"): u"c",
    ord(u"\N{LATIN SMALL LETTER E WITH MACRON}"): u"e",
    ord(u"\N{LATIN SMALL LETTER E WITH BREVE}"): u"e",
    ord(u"\N{LATIN SMALL LETTER G WITH CIRCUMFLEX}"): u"g",
    ord(u"\N{LATIN SMALL LETTER G WITH BREVE}"): u"g",
    ord(u"\N{LATIN SMALL LETTER G WITH CEDILLA}"): u"g",
    ord(u"\N{LATIN SMALL LETTER H WITH CIRCUMFLEX}"): u"h",
    ord(u"\N{LATIN SMALL LETTER I WITH TILDE}"): u"i",
    ord(u"\N{LATIN SMALL LETTER I WITH MACRON}"): u"i",
    ord(u"\N{LATIN SMALL LETTER I WITH BREVE}"): u"i",
    ord(u"\N{LATIN SMALL LETTER J WITH CIRCUMFLEX}"): u"j",
    ord(u"\N{LATIN SMALL LETTER K WITH CEDILLA}"): u"k",
    ord(u"\N{LATIN SMALL LETTER L WITH ACUTE}"): u"l",
    ord(u"\N{LATIN SMALL LETTER L WITH CEDILLA}"): u"l",
    ord(u"\N{LATIN CAPITAL LETTER L WITH STROKE}"): u"L",
    ord(u"\N{LATIN SMALL LETTER L WITH STROKE}"): u"l",
    ord(u"\N{LATIN SMALL LETTER N WITH ACUTE}"): u"n",
    ord(u"\N{LATIN SMALL LETTER N WITH CEDILLA}"): u"n",
    ord(u"\N{LATIN SMALL LETTER O WITH MACRON}"): u"o",
    ord(u"\N{LATIN SMALL LETTER O WITH BREVE}"): u"o",
    ord(u"\N{LATIN SMALL LETTER R WITH ACUTE}"): u"r",
    ord(u"\N{LATIN SMALL LETTER R WITH CEDILLA}"): u"r",
    ord(u"\N{LATIN SMALL LETTER S WITH ACUTE}"): u"s",
    ord(u"\N{LATIN SMALL LETTER S WITH CIRCUMFLEX}"): u"s",
    ord(u"\N{LATIN SMALL LETTER S WITH CEDILLA}"): u"s",
    ord(u"\N{LATIN SMALL LETTER T WITH CEDILLA}"): u"t",
    ord(u"\N{LATIN SMALL LETTER U WITH TILDE}"): u"u",
    ord(u"\N{LATIN SMALL LETTER U WITH MACRON}"): u"u",
    ord(u"\N{LATIN SMALL LETTER U WITH BREVE}"): u"u",
    ord(u"\N{LATIN SMALL LETTER U WITH RING ABOVE}"): u"u",
    ord(u"\N{LATIN SMALL LETTER W WITH CIRCUMFLEX}"): u"w",
    ord(u"\N{LATIN SMALL LETTER Y WITH CIRCUMFLEX}"): u"y",
    ord(u"\N{LATIN SMALL LETTER Z WITH ACUTE}"): u"z",
    ord(u"\N{LATIN SMALL LETTER W WITH GRAVE}"): u"w",
    ord(u"\N{LATIN SMALL LETTER W WITH ACUTE}"): u"w",
    ord(u"\N{LATIN SMALL LETTER W WITH DIAERESIS}"): u"w",
    ord(u"\N{LATIN SMALL LETTER Y WITH GRAVE}"): u"y",
    })

# These are the ASCII characters NCBI knows about.  Note that I'm
# building one unicode string here, and not a tuple of unicode
# characters.
for c in (u"\N{SPACE}"
          u"\N{EXCLAMATION MARK}"
          u"\N{QUOTATION MARK}"
          u"\N{NUMBER SIGN}"
          u"\N{DOLLAR SIGN}"
          u"\N{PERCENT SIGN}"
          u"\N{AMPERSAND}"
          u"\N{APOSTROPHE}"
          u"\N{LEFT PARENTHESIS}"
          u"\N{RIGHT PARENTHESIS}"
          u"\N{ASTERISK}"
          u"\N{PLUS SIGN}"
          u"\N{COMMA}"
          u"\N{HYPHEN-MINUS}"
          u"\N{FULL STOP}"
          u"\N{SOLIDUS}"
          u"\N{DIGIT ZERO}"
          u"\N{DIGIT ONE}"
          u"\N{DIGIT TWO}"
          u"\N{DIGIT THREE}"
          u"\N{DIGIT FOUR}"
          u"\N{DIGIT FIVE}"
          u"\N{DIGIT SIX}"
          u"\N{DIGIT SEVEN}"
          u"\N{DIGIT EIGHT}"
          u"\N{DIGIT NINE}"
          u"\N{COLON}"
          u"\N{SEMICOLON}"
          u"\N{LESS-THAN SIGN}"
          u"\N{EQUALS SIGN}"
          u"\N{GREATER-THAN SIGN}"
          u"\N{QUESTION MARK}"
          u"\N{COMMERCIAL AT}"
          u"\N{LATIN CAPITAL LETTER A}"
          u"\N{LATIN CAPITAL LETTER B}"
          u"\N{LATIN CAPITAL LETTER C}"
          u"\N{LATIN CAPITAL LETTER D}"
          u"\N{LATIN CAPITAL LETTER E}"
          u"\N{LATIN CAPITAL LETTER F}"
          u"\N{LATIN CAPITAL LETTER G}"
          u"\N{LATIN CAPITAL LETTER H}"
          u"\N{LATIN CAPITAL LETTER I}"
          u"\N{LATIN CAPITAL LETTER J}"
          u"\N{LATIN CAPITAL LETTER K}"
          u"\N{LATIN CAPITAL LETTER L}"
          u"\N{LATIN CAPITAL LETTER M}"
          u"\N{LATIN CAPITAL LETTER N}"
          u"\N{LATIN CAPITAL LETTER O}"
          u"\N{LATIN CAPITAL LETTER P}"
          u"\N{LATIN CAPITAL LETTER Q}"
          u"\N{LATIN CAPITAL LETTER R}"
          u"\N{LATIN CAPITAL LETTER S}"
          u"\N{LATIN CAPITAL LETTER T}"
          u"\N{LATIN CAPITAL LETTER U}"
          u"\N{LATIN CAPITAL LETTER V}"
          u"\N{LATIN CAPITAL LETTER W}"
          u"\N{LATIN CAPITAL LETTER X}"
          u"\N{LATIN CAPITAL LETTER Y}"
          u"\N{LATIN CAPITAL LETTER Z}"
          u"\N{LEFT SQUARE BRACKET}"
          u"\N{REVERSE SOLIDUS}"
          u"\N{RIGHT SQUARE BRACKET}"
          u"\N{LOW LINE}"
          u"\N{LATIN SMALL LETTER A}"
          u"\N{LATIN SMALL LETTER B}"
          u"\N{LATIN SMALL LETTER C}"
          u"\N{LATIN SMALL LETTER D}"
          u"\N{LATIN SMALL LETTER E}"
          u"\N{LATIN SMALL LETTER F}"
          u"\N{LATIN SMALL LETTER G}"
          u"\N{LATIN SMALL LETTER H}"
          u"\N{LATIN SMALL LETTER I}"
          u"\N{LATIN SMALL LETTER J}"
          u"\N{LATIN SMALL LETTER K}"
          u"\N{LATIN SMALL LETTER L}"
          u"\N{LATIN SMALL LETTER M}"
          u"\N{LATIN SMALL LETTER N}"
          u"\N{LATIN SMALL LETTER O}"
          u"\N{LATIN SMALL LETTER P}"
          u"\N{LATIN SMALL LETTER Q}"
          u"\N{LATIN SMALL LETTER R}"
          u"\N{LATIN SMALL LETTER S}"
          u"\N{LATIN SMALL LETTER T}"
          u"\N{LATIN SMALL LETTER U}"
          u"\N{LATIN SMALL LETTER V}"
          u"\N{LATIN SMALL LETTER W}"
          u"\N{LATIN SMALL LETTER X}"
          u"\N{LATIN SMALL LETTER Y}"
          u"\N{LATIN SMALL LETTER Z}"
          u"\N{VERTICAL LINE}"
          u"\N{TILDE}"):
    xlate[ord(c)] = c
   
def fix_unicode(s):
    return str(s.translate(xlate))

_________________
Sideralis www.sideralis.org
Pic http://blackman.amicofigo.com/gallery
Arduino http://www.arduino.cc
Chi aveva potuto aveva spaccato
2000 pezzi buttati là
Molti saluti,qualche domanda
Semplice come musica punk
Back to top
View user's profile Send private message
Ic3M4n
Advocate
Advocate


Joined: 02 Nov 2004
Posts: 3489
Location: Bergamo.

PostPosted: Thu Sep 08, 2005 4:17 pm    Post subject: Reply with quote

beh, diciamo allora che iniziamo domani... perchè adesso ho da:
Code:
[ebuild     U ] x11-libs/gtk+-2.8.3-r1 [2.6.8]
[ebuild  N    ] media-libs/libao-0.8.5
[ebuild  N    ] media-sound/mpg321-0.2.10-r2
[ebuild  N    ] dev-python/eyeD3-0.6.2
[ebuild  N    ] dev-python/pycairo-0.9.0
[ebuild     U ] dev-python/pygtk-2.7.4 [2.6.1]
[ebuild  N    ] media-sound/321GtK-0.1

emergere queste simpatiche cosette... cmq una cosa: solitamente programmi in alfa ci si aspetterebbe anche un ~x86 come minimo, invece me lo fa emergere senza aggiungerlo all /etc/portage/package.keywords. così è più comodo, di sicuro, però di solito li si mette masked no?
Back to top
View user's profile Send private message
xchris
Advocate
Advocate


Joined: 10 Jul 2003
Posts: 2824

PostPosted: Thu Sep 08, 2005 4:21 pm    Post subject: Reply with quote

ho usato come player mpg321 perche':

1 - generalmente funziona bene
2 - supporta diversi sound-system
3 - ha un modo di funzionamento REMOTE fatto apposta
4 - un po' cosi'... :)


id3reader me lo avevi consigliato ma ha un problema a mio avviso.
Legge solo i tag e non puo' scriverli.
Siccome in futuro li scrivero' penso che rimarro' su eyeD3.

Ho contattato lo sviluppatore di eyeD3 e mi ha detto che supportera i 2.2 in lettura.

Visto che i 2.2 sono deprecati penso che li leggero' e li riscrivero' nella versione + appropriata.

Se dovessi aver casini con eyeD3 e' un attimo cambiare (il tutto e' principalmente in 4 file: gui,mpg321_lib (creata ad hoc),aux_class (un po' di roba),321gtk (la principale)

Grazie mille!
Christian
_________________
while True:Gentoo()
Back to top
View user's profile Send private message
federico
Advocate
Advocate


Joined: 18 Feb 2003
Posts: 3272
Location: Italy, Milano

PostPosted: Thu Sep 08, 2005 4:21 pm    Post subject: Reply with quote

Chi e' che usa pycairo tra quei programmi li ?
_________________
Sideralis www.sideralis.org
Pic http://blackman.amicofigo.com/gallery
Arduino http://www.arduino.cc
Chi aveva potuto aveva spaccato
2000 pezzi buttati là
Molti saluti,qualche domanda
Semplice come musica punk
Back to top
View user's profile Send private message
xchris
Advocate
Advocate


Joined: 10 Jul 2003
Posts: 2824

PostPosted: Thu Sep 08, 2005 4:24 pm    Post subject: Reply with quote

Ic3M4n wrote:

emergere queste simpatiche cosette... cmq una cosa: solitamente programmi in alfa ci si aspetterebbe anche un ~x86 come minimo, invece me lo fa emergere senza aggiungerlo all /etc/portage/package.keywords. così è più comodo, di sicuro, però di solito li si mette masked no?


hai pienamente ragione.
Pero' considerato il fatto che al momento e' un pacchetto decisamente "sotto controllo" (da parte di chi lo installa) e non e' distribuito in modo ampio l'ho lasciato x86 per non sporcarvi il sistema. (io spesso mi rompo le palle se per provare un ebuild devo andare a sminchiare 3000 cose)

pycairo & co sono dovuti al nuovo pygtk credo...

io non lo uso perche' sono fermo a quello prima.
Mi auguro non ci siano pb...
_________________
while True:Gentoo()
Back to top
View user's profile Send private message
federico
Advocate
Advocate


Joined: 18 Feb 2003
Posts: 3272
Location: Italy, Milano

PostPosted: Thu Sep 08, 2005 4:32 pm    Post subject: Reply with quote

Chi ha pygtk e gtk nuove (per intenderci quelle derivanti dall'utilizzo dell'ultimo gnome) dovrebbe verde al limite un po' di warning, voci mi han gia' detto che su sidesms per esempio saltano fuori una paccata di warning ma che continua a funzionare tutto.

Per il resto, ho emerso il programma senza problemi e mi e' partito pure, ora lo provo un po' e vediamo se riesco a schiantarlo :)

Fede
_________________
Sideralis www.sideralis.org
Pic http://blackman.amicofigo.com/gallery
Arduino http://www.arduino.cc
Chi aveva potuto aveva spaccato
2000 pezzi buttati là
Molti saluti,qualche domanda
Semplice come musica punk
Back to top
View user's profile Send private message
xchris
Advocate
Advocate


Joined: 10 Jul 2003
Posts: 2824

PostPosted: Thu Sep 08, 2005 4:34 pm    Post subject: Reply with quote

federico wrote:

Per il resto, ho emerso il programma senza problemi e mi e' partito pure, ora lo provo un po' e vediamo se riesco a schiantarlo :)

Fede



di sicuro riuscirai...
alcuni bug li conosco pure io.. ;)

ma ho preferito iniziare a renderlo pub per raccoglieri abbastanza in fretta.
Spero non vi offendiate se vi sfrutto un pochino :o

Grazie Mille!!!!
_________________
while True:Gentoo()
Back to top
View user's profile Send private message
federico
Advocate
Advocate


Joined: 18 Feb 2003
Posts: 3272
Location: Italy, Milano

PostPosted: Thu Sep 08, 2005 4:46 pm    Post subject: Reply with quote

Anche io amo sfruttare :) la gente di questo forum perche' sono tutti ottimi tester .)
Dunque, PENSO di aver configurato correttamente il programma prima dell'utilizzo, e poi sono passato ad un sync del database.

Inesorabilmente ad un certo punto, sempre lo stesso il programma inizia a consumare il 100% di cpu e buonanotte al secchio. Ecco un po' di debug:

Code:

utf8 problems with /home/blackman/share/mp3/HardCore/HARDCORE - Gabber - Neophyte - Antimix.mp3
utf8 problems with /home/blackman/share/mp3/HardCore/Rotterdam Terror Corps - Motherfuckers.mp3
--> stop
--> quit

User Abort Request!

Cannot retrive file info: /home/blackman/share/mp3/HardCore/Rotterdam terror corps - Industrial life 2040.mp3
--> stop
--> quit


(Cavoli se passo per tabbozzo, questa e' la dir della festa :) )

Ho provato a passare quella canzone al mio macinatore postato sopra e la prende correttamente, forse c'e' un qualche tipo di errore di parsing nel codice?
_________________
Sideralis www.sideralis.org
Pic http://blackman.amicofigo.com/gallery
Arduino http://www.arduino.cc
Chi aveva potuto aveva spaccato
2000 pezzi buttati là
Molti saluti,qualche domanda
Semplice come musica punk
Back to top
View user's profile Send private message
xchris
Advocate
Advocate


Joined: 10 Jul 2003
Posts: 2824

PostPosted: Thu Sep 08, 2005 4:53 pm    Post subject: Reply with quote

credo di no...
a parte i warning su utf8.

Ho idea che eyeD3 si blocchi su un mp3 specifico.
magari prova a modificare /usr/local/share/321GtK/aux_class.py
e in linea 68 metti (sotto def retrieve)

print self.file


cosi' vediamo che mp3 e'... e poi se me lo passi vedo cosa c'e' che non va.
(e poi lo cancello signori della SIAE)

ciao e grazie

eventualmente prova quickscandir su altra dir... tanto per vederlo andare.
_________________
while True:Gentoo()
Back to top
View user's profile Send private message
.:deadhead:.
Advocate
Advocate


Joined: 25 Nov 2003
Posts: 2963
Location: Milano, Italy

PostPosted: Thu Sep 08, 2005 5:27 pm    Post subject: Reply with quote

Fede fede, secondo me il gtk321 dopo una sana infanzia a suon di rock [basta vedere gli screen di xchris per capire che è cresciuto bene], appena ha messo piede in quella cartella da girone infernale, s'è spaventato :-D Metti il solito, lascia stare la festa. Punk & Rock fanno bene al python :D
_________________
Proudly member of the Gentoo Documentation Project: the Italian Conspiracy ! ;)
Back to top
View user's profile Send private message
federico
Advocate
Advocate


Joined: 18 Feb 2003
Posts: 3272
Location: Italy, Milano

PostPosted: Thu Sep 08, 2005 5:31 pm    Post subject: Reply with quote

.:deadhead:. wrote:
Fede fede, secondo me il gtk321 dopo una sana infanzia a suon di rock [basta vedere gli screen di xchris per capire che è cresciuto bene], appena ha messo piede in quella cartella da girone infernale, s'è spaventato :-D

Si, infatti ora gli ho dato in pasto i "Funeral for a friend" ( http://www.funeralforafriend.com/ ) un gruppo che ha una sonorita' punk melodico con qualche spruzzo di doppio pedale e growl alla black metal (li ho sentiti al rock in idro e mi strippano) e funziona il programma :) Farei un po' di modifiche ma mi rendo conto che ci saranno prima altre priorita' :)

Fede
_________________
Sideralis www.sideralis.org
Pic http://blackman.amicofigo.com/gallery
Arduino http://www.arduino.cc
Chi aveva potuto aveva spaccato
2000 pezzi buttati là
Molti saluti,qualche domanda
Semplice come musica punk
Back to top
View user's profile Send private message
codadilupo
Advocate
Advocate


Joined: 05 Aug 2003
Posts: 3135

PostPosted: Thu Sep 08, 2005 5:48 pm    Post subject: Reply with quote

per ora tutto bene ;-)
per cui mi permetto la prima richiesta (nel caso, prenditela con randomaze, che me l'ha involontariamente suggerito ;-)): che sarebbe possibile dare in pasto anche archivi ? tipo, io ho molte canzoni archiviate in tar.bz2, o zip, o tar,gz, (per risparmiare spazio, e per rendere le cose piu' semplici agl'EMuliani, e sarebbe comodo non dover decomprimere a mano quello che voglio sentire, ma, ad esempio, farglielo decomprimere al volo, magari in swap, o RAM.

Coda
Back to top
View user's profile Send private message
.:deadhead:.
Advocate
Advocate


Joined: 25 Nov 2003
Posts: 2963
Location: Milano, Italy

PostPosted: Thu Sep 08, 2005 7:58 pm    Post subject: Reply with quote

Ottima cosa! Bella idea coda! un po' come fà già su win foobar2000
_________________
Proudly member of the Gentoo Documentation Project: the Italian Conspiracy ! ;)
Back to top
View user's profile Send private message
xchris
Advocate
Advocate


Joined: 10 Jul 2003
Posts: 2824

PostPosted: Thu Sep 08, 2005 9:12 pm    Post subject: Reply with quote

@coda: la feature e' interessante anche se a dire il vero non so quanto possa interessare... (e' un po' di nicchia)
e poi quanto spazio salvi?? ok per emule...

earcar mi ha fatto notare un bug: non salva il db dopo il resync.E' una stupidata di bug.. domani posto una ver corretta. (ora basta pigiare save)

grazie a tutti :)
ciao
_________________
while True:Gentoo()
Back to top
View user's profile Send private message
Ic3M4n
Advocate
Advocate


Joined: 02 Nov 2004
Posts: 3489
Location: Bergamo.

PostPosted: Fri Sep 09, 2005 12:26 am    Post subject: Reply with quote

una domanda... forse mi è sfuggito, ma è normale che tutti gli mp3 rimangano mischiati insieme? e soprattutto: è normale che me li elenchi in base al nome del file e non seguendo artista e titolo? più che altro mi sembra scomodo dover cercare in un elenco lunghissimo una canzone, contando anche che se utilizzo la funzione "cerca" non mi seleziona il file che vorrei sentire ma sembra non fare niente.
Back to top
View user's profile Send private message
xchris
Advocate
Advocate


Joined: 10 Jul 2003
Posts: 2824

PostPosted: Fri Sep 09, 2005 7:10 am    Post subject: Reply with quote

le colonne sono "sortabili" cliccando sul nome della colonna.
In alto poi puoi fare la ricerca secondo diversi criteri.

Ultimo tipo di ricerca...e' quella offerta da gtk stessa. (anche se devo ammettere che devo risolvere un bug stupido)
Ovvero...

Cambiando nella combobox su artista ad esempio e cliccando su un elemento della lista e iniziando a digitare...
fa il match dalla prima lettera.

(il bug e' che di default non lo fa subito sul titolo...dovete spostarlo su artist e rimetterlo su title... coreggo...)

Ciao


EDIT: in che senso la funzione ricerca non va? a me pare vada... altre esperienze in merito?
EDIT2: con eyeD3-0.6.8 (non presente in portage :S ... legge i tag 2.2)
_________________
while True:Gentoo()
Back to top
View user's profile Send private message
earcar
Guru
Guru


Joined: 20 Sep 2004
Posts: 425
Location: Bologna, Italy

PostPosted: Fri Sep 09, 2005 8:10 am    Post subject: Reply with quote

Oltre a qualche buggetto di gioventù, 321GtK (cambia nome per favore! :wink:) è un'app che promette bene! Poi considerando il tempo in cui è stata scritta... :D

Per farla promettere anche meglio :wink: mi piacerebbe che avesse un paio di funzionalità in più:

Avete presente la funzione "Tieni organizzata la cartella iTunes Music"?
Code:
<cartella musica>/<artista>/<album>/<numero della traccia> <titolo del brano>.mp3

In aggiunta a "Copia i file nella cartella iTunes Music quando vengono aggiunti alla libreria" IMHO diventa fondamentale x l'organizzazione della musica (specie se si ha qlcs com 3000 mp3) anche xkè è molto comodo fare doppio click (o drag n drop) sul brano e vederselo già copiato nella partizione dedicata alla musica, sotto la cartella giusta :wink: (per non parlare del fatto che quando cambi un tag id3 come artista o album cambia anche la cartella....)

L'altra funzione che su linux trovo indispensabile è un'interfaccia con l'esterno stile dcop...
Ho una tastiera mutimediale e uso hotkeys configurato in maniera che quando premo un tasto tra quelli stop, play ecc. si avvia uno script che verifica quale player è attivo (uso amarok e mpd in genere) e lancia il comando apposito per quel programma.
Poi ho la mania di avere sotto controllo il mio sistema tramite torsmo e non può certo mancare il nome della canzone che sta suonando! :wink:

Ultima cosa: l'icona nella taskbar! così clicchi e sparisce la finestra dal desktop :wink:

Sono un pigrone eh? :D

Ciauz
earcar :wink:
_________________
Bip... bip... bip... -- Sputnik 1
Back to top
View user's profile Send private message
neon
l33t
l33t


Joined: 04 Aug 2003
Posts: 759
Location: Catania, Italy, Europe

PostPosted: Fri Sep 09, 2005 12:36 pm    Post subject: Reply with quote

earcar wrote:
Avete presente la funzione "Tieni organizzata la cartella iTunes Music"?
Code:
<cartella musica>/<artista>/<album>/<numero della traccia> <titolo del brano>.mp3

In aggiunta a "Copia i file nella cartella iTunes Music quando vengono aggiunti alla libreria" IMHO diventa fondamentale x l'organizzazione della musica (specie se si ha qlcs com 3000 mp3) anche xk� � molto comodo fare doppio click (o drag n drop) sul brano e vederselo gi� copiato nella partizione dedicata alla musica, sotto la cartella giusta :wink: (per non parlare del fatto che quando cambi un tag id3 come artista o album cambia anche la cartella....)

Si, sono delle funzioni molto comode ma vedendo che ultimamente si discute anche su come vengono implementate le playlist nei lettori mp3 e chi ne detiene il brevetto non vorrei che il povero xchris si vedesse accusato dalla mammina di itunes di scopiazzatura di idee o simili...
_________________
Io credo che le tecnologie siano moralmente neutrali fino a quando non le utilizziamo - William Gibson

LINEE GUIDA DEL FORUM
Back to top
View user's profile Send private message
federico
Advocate
Advocate


Joined: 18 Feb 2003
Posts: 3272
Location: Italy, Milano

PostPosted: Fri Sep 09, 2005 1:30 pm    Post subject: Reply with quote

Io tra le features che ho desiderato ieri utilizzandolo parecchio ci sarebbero:
-Maggiore funzionalita' dello skip
-Leggere il titolo della canzone nell'icona relativa alla finestra nella taskbar
MA SOPRATTUTTO
Vorrei che le canzoni con lo stesso album venissero caricate sortate in ordine di numero e non in ordine di nome :) Questo sarebbe figo.

Fede
_________________
Sideralis www.sideralis.org
Pic http://blackman.amicofigo.com/gallery
Arduino http://www.arduino.cc
Chi aveva potuto aveva spaccato
2000 pezzi buttati là
Molti saluti,qualche domanda
Semplice come musica punk
Back to top
View user's profile Send private message
xchris
Advocate
Advocate


Joined: 10 Jul 2003
Posts: 2824

PostPosted: Fri Sep 09, 2005 1:35 pm    Post subject: Reply with quote

senza tener conto che io quella funzionalità la disabilito subito su Itunes...
:)

l'idea dei tar.gz & co non e' male ma non la vedo come una priorita adesso. (potrei eventualmente fare una versione iniziale con lo scompattamento in /tmp (o dir personalizzata) e l'aggiunta delle song in modalita' quickscan e poi si eventualmente si fa pulizia alla chiusura/apertura del prg.

le priorita' sono:
- la stabilità di questa versione
- il corretto funzionamento dei tag
- eventualmente una trayicon (e la scelta di chiusura o minimizzazione su on_delete)

- l'editing dei tag con musicbrainz

DCOP se non sbaglio e' roba di kde... (quindi...)

eventualmente metto come opzione il salvataggio del brano corrente (e di tutte le info relative) in un file temporaneo in modo tale da essere recuperato in modo agevole per qualunque scopo.Per il controllo ci penso su..
_________________
while True:Gentoo()
Back to top
View user's profile Send private message
xchris
Advocate
Advocate


Joined: 10 Jul 2003
Posts: 2824

PostPosted: Fri Sep 09, 2005 1:40 pm    Post subject: Reply with quote

federico wrote:
Io tra le features che ho desiderato ieri utilizzandolo parecchio ci sarebbero:
-Maggiore funzionalita' dello skip

in che senso? (ah.. ho aggiustato la barra ballerina)
federico wrote:

-Leggere il titolo della canzone nell'icona relativa alla finestra nella taskbar

ok.. ci avevo gia' pensato.. ma me so' dimentica'
federico wrote:

MA SOPRATTUTTO
Vorrei che le canzoni con lo stesso album venissero caricate sortate in ordine di numero e non in ordine di nome :) Questo sarebbe figo.
Fede


questo e' sicuramente realizzabile ma richiede degli extra-cicli che mal si sposerebbero con delle prestazioni decenti.
Cmq ci penso su...

eventualmente chi si intende di GTK o pyGTK mi puo' dire come caspita faccio a salvare un ListStore di botto?

(ora io salvo un "dict" con shelve e ripristino da quello...ma non e' velocissimo e mi spiace... perche' prima di tutto vorrei favorire le prestazioni)

Ciauz e grazie
_________________
while True:Gentoo()
Back to top
View user's profile Send private message
flocchini
Veteran
Veteran


Joined: 17 May 2003
Posts: 1124
Location: Milano, Italy

PostPosted: Fri Sep 09, 2005 1:53 pm    Post subject: Reply with quote

provato ora... Direi che e' stabile, l'ho maltrattato un po' ma non crasha (amd64), peccato per l'assenza di playlist (lo so che e' una scelta, ma te lo dico lo stesso :P) ma risulta comodo comunque seppur essendo gtk non credo diventera' mai la mia scelta preferenziale. Ho anche io un po' di warning sui caratteri utf-8 ma alla fine si mangia tutto.

veniamo ai bachi:

- problemi con l'ordinamento per titolo, stranamente per lui la "u" viene prima della "A".
- problemi con i db: lo crea, dice di salvarlo all'uscita ma alla riapertura
Code:
* Loading preferences
adjust redirect!!!
* Loading from /home/flocchini/.321GtK/database
!!! Problem reading Database

E mi chiedo anche cosa voglia dire "adjust redirect!" :)

Il resto e' gia' stato detto :P

Mi associo anche io a coloro che richiedono una funzione per gli albun zippati, e poi potresti trovare un nome piu' in linea alle tue consuetudini :wink:
_________________
~~ Per amore della rosa si sopportano le spine... ~~
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) Forum di discussione italiano All times are GMT
Goto page 1, 2, 3, 4  Next
Page 1 of 4

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum