Newsgroup: it.comp.os.linux.software
Titolo: mp3 player

...sul secondo numero di "Linux & Co.", nell'articolo che
riguarda gli mp3 c'era una bella immagine che faceva vedere
una marea di mp3 player per linux...alcuni proprio molto
carini...
...pero' io ho fatto un po' di ricerche...ma non ho trovato
nulla all'infuori del solito xmms e freeamp...
...non e' che magari qualcuno ha da darmi qualche link?!? ;)
...tnx...
byez
by hawk
--
  "Come girano i colori ed i sapori
               nella vita vera?!?
 Qui per ora e' nero come Angoscia
           e amaro come fiele.
                           E li'?
                - Marlene Kuntz -

 
Non e' che sono sul CD allegato alla rivista?
E` una domanda, io non ci ho guardato. :-)
ciao, Andrea

carini...
Ma non e' che era sempre il frontend gnome di mpg123 mostrato con varie skin
diverse ?
-- 
Andrea

 ciao, Andrea


 --


On Wed, 19 Apr 2000 17:56:21 GMT, hawk wrote
| ...ehm...pero'...un'altra domandina...qual'e' il frontend gnome di mpg123?!? ;-D
Che io sappia, c'e` gqmpeg...
-- 
Zefram	|  
http://zefram.8m.com
			|  Using a RH6.1 on a i586
(at)	|  WARNING: The email address is FAKE.	|  Kernel 2.2.14
Home	| "I think it's time to blow the scene. Gettin' everybody and the
	|  stuff together. Ok, 3, 2, 1... Let's jam!" --The Seatbelts,"Tank!"
GnuPG Key fingerprint = D975 6BBC B550 05B6 6B29  CCC5 7F87 1AF0 AE7D 5C2E

 Che io sappia, c'e` gqmpeg...
Che č piuttosto buono (anche se non digerisce mp3 corrotti come XMMS)
e soprattutto č personalizzabile con skins INCREDIBBILI.
-- 
g...@penguinpowered.com
VENDO LA MIA MAZDA MX3 V6!! 
http://members.xoom.it/admin
Ayrton Senna is still with us

 e soprattutto č personalizzabile con skins INCREDIBBILI.
si si si si...avevate proprio ragione...infatti quelle che c'erano
nell'immagine sulla rivista sono alcune delle skins di gqmpeg (sto
guardando ora il sito)... ;)
...grazie mille per l'aiuto...


On Wed, 19 Apr 2000 22:33:05 GMT, GTi wrote
| 
zef...@wolverine.lohacker.net
 (Zefram) ha scritto:
| 
| > Che io sappia, c'e` gqmpeg...
| 
| Che č piuttosto buono (anche se non digerisce mp3 corrotti come XMMS)
| e soprattutto č personalizzabile con skins INCREDIBBILI.
E` mpg123  che richiede  mp3 perfetti-o-quasi. Purtroppo,  perche`, dato
che passo il  90% del mio tempo  in console, mpg123 e`  una scelta quasi
obbligata, ma i miei mp3 non sono certo di qualita` eccelsa (non, tutti,
perlomeno), e  contando che  li leggo  via smb da  un altro  computer in
rete...


 obbligata,
...mmm...se la memoria non mi tradisce, mi pare ci fosse un altro mp3 player per
console...mi pare fosse mp3blaster...o qualcosa del genere...ne hai gia' sentito
parlare?!?


On Thu, 20 Apr 2000 11:39:57 GMT, hawk wrote
| > E`  mpg123 che  richiede  mp3 perfetti-o-quasi. Purtroppo,  perche`,
| > dato che passo il 90% del mio tempo in console, mpg123 e` una scelta
| > quasi obbligata,
|
| ...mmm...se la  memoria non  mi tradisce,  mi pare  ci fosse  un altro
| mp3  player per  console...mi pare  fosse mp3blaster...o  qualcosa del
| genere...ne hai gia' sentito parlare?!?
Si, ecco perche` ho detto "quasi obbligata"...
Ma non l'ho mai provato, in effetti...


 in effetti...
Io sě, e l'ho trovato ottimo e di facile utilizzo!
Perň non so come si comporti con MP3 un po' schifosetti... 


 wrote:
|> Si, ecco perche` ho detto "quasi obbligata"... Ma non l'ho mai provato,
|> in effetti...
|
| Io sě, e l'ho trovato ottimo e di facile utilizzo!
| Perň non so come si comporti con MP3 un po' schifosetti... 
Lo scarico e faccio sapere, ormai mi e` venuto il dubbio... :-)
-- 
Zefram	|  
http://zefram.8m.com
			|  Using a RH6.1 on a i586
(at)	|  WARNING: The email address is FAKE.	|  Kernel 2.2.14
Home	| "I think it's time I blow the scene. Get everybody and the


...ehm...pero'...un'altra domandina...qual'e' il frontend gnome di mpg123?!? ;-D
gqmpeg.
Già che siamo ti sparo anche freeamp e xmms (se non sbaglio entrambi
supportano gli skin, xmms pure quelli di winamp).
-- 
  Giuseppe "Cowo" Corbelli >> Riding on Linux 2.2.14
------------------------------------------------------
ANTI-SPAM: E-Mail address is fake. Substitute cowo with IHATESPAM.
-<= I Swear On Tomorrow If You Take This Chance
      Our Lifes Are This Moment The Music The Dance =>-
		Savatage - Not What You See

carini...
Non e` che era l'incredibile come aspetto (soprattutto con alcune skins riprese da K-Jofol) Gqmpeg ? 
Lo trovi su freshemat... 
-- 
The Hitman - 
http://members.xoom.it/hitman/
e-posta: 
sonic...@tiscalinet.it
 <-- *NUOVO* 
Powered by Slackware 7.0 & installwatch
- Le risposte stanno spesso in /usr/doc -

 E` mpg123  che richiede  mp3 perfetti-o-quasi. 
Perfetti in che senso? 
Grazie e ciao!

obbligata, ma i miei mp3 non sono certo di qualita` eccelsa
Puoi sempre usare reshapemp3:
#!/bin/sh
if [ -z "$1" ]; then
	echo Syntax: reshapemp3 mp3file\(s\)...
	exit 0
fi
do
	if [ -z "$1" ]; then
		echo Done.
		exit 0
	fi
	if [ ! -r $1 ]; then
		echo Cannot read $1
	else
		echo -n Reshaping $1...
		mp3tosnd < $1 | snd2mp3 $OPTIONS > /tmp/temp.mp3
		mv $1 $( basename $1 .mp3 ).old.mp3
		mv /tmp/temp.mp3 $1
		echo OK.
	fi
	shift
done
Leonardo
".signature": bad command or file name

E` mpg123  che richiede  mp3 perfetti-o-quasi. Purtroppo,  perche`, dato
Per questo ho scritto una soluzione.
Attenzione: l'ho scritto per me, non per voi. Quindi non e`
configurabile se non tramite i sorgenti.
Si aspetta in LISTDIR la playlist indicata sulla riga di comando e un
CD montato in /cdrom. Un ulteriore parametro sulla riga di comando
chiede che le canzoni siano suonate a caso.
scamble() e` una piccola meraviglia che ho trovato sul DDJ di qualche
mese fa.
Un ^C passa alla canzone successiva, due ^C terminano il programma.
SIGUSR1 fa suonare in loop la canzone attuale.
Dovrebbe essere BugFree(tm), ma se trovate qualcosa di strano fatemelo
sapere. Richieste di nuove feature saranno ignorate con una risata.
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <stdarg.h>
#include <string.h>
#include <time.h>
#include <errno.h>
#include <signal.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <sys/statfs.h>
#define ISOFS_SUPER_MAGIC 0x9660
#define LISTDIR "/home/md/.xmms"
const char *copyname(char *);
void run_player(const char *);
void scramble(void *[], int);
void haltinc(int);
void haltreset(int);
void toggleloop(int);
void err_quit(const char *, ...);
void err_sys(const char *, ...);
struct node {
    const char *song;
    struct node *next;
};
/* global flags */
int haltflag = 0;
int loop = 0;
int main(int argc, char *argv[])
{
    struct statfs sb;
    FILE *fp;
    char buf[1024];
    struct node *list, *cur, *last;
    int i, elements = 0;
    struct node **songs;
    if (argc < 2)
	err_quit("Usage: mp playlist");
    if (statfs("/cdrom", &sb) < 0)
	err_sys("[!] stat(\"/dev/cdrom\") failed");
    if (sb.f_type != ISOFS_SUPER_MAGIC)
	err_quit("[!] /cdrom is not mounted!");
    if (argv[1][0] == '-' && argv[1][1] == '\0') {
	int newfd;
	if ((newfd = dup(0)) < 0)
	    err_sys("[!] dup(0)");
	if ((fp = fdopen(newfd, "r")) == NULL)
	    err_sys("[!] fdopen(0)");
    } else {
	snprintf(buf, 1024, LISTDIR "/%s", argv[1]);
	if ((fp = fopen(buf, "r")) == NULL)
	    err_sys("[!] Cannot open %s", buf);
    }
    last = list = cur = malloc(sizeof(struct node));
    while (fgets(buf, 1024, fp) != NULL) {
	if ((cur->song = copyname(buf)) == NULL)
	    continue;		/* skip comments */
	last = cur;
	cur = cur->next = malloc(sizeof(struct node));
	elements++;
    }
    last->next = NULL;		/* mark the last element */
    free(cur);			/* this element won't be used */
    if (ferror(fp))
	err_sys("[!] Error while reading playlist file");
    fclose(fp);
    signal(SIGINT, haltinc);
    signal(SIGALRM, haltreset);
    signal(SIGUSR1, toggleloop);
    songs = malloc(elements * sizeof(struct node));
    cur = list;
    for (i = 0; i < elements; i++) {
	songs[i] = cur;
	cur = cur->next;
    }
    if (argv[2]) {
	puts("[*] Scambling playlist...");
	srand(time(NULL));
	scramble((void **) songs, elements);
    }
    for (i = 0; i < elements; i++) {
again:	printf("[*] Playing %s\n", songs[i]->song);
	run_player(songs[i]->song);
	if (haltflag >= 2)
	    err_quit("[*] Program halted. Goodbye.");
	if (loop)
	    goto again;
    }
    exit(0);
}
const char *copyname(char *s)
{
    char *p, *q, *new;
    if (*s == '#' || *s == '\n' || *s == '\0')
	return NULL;
    p = new = malloc(strlen(s) + 1);
    q = s;
    /* copy the file name skipping CR, LF and NULs */
    for (; *q && *q != '\n' && *q != '\r'; *p++ = *q++);
    *p = '\0';
    return new;
}
void run_player(const char *file)
{
    int pid = fork();
    if (pid < 0)
	err_sys("[!] Cannot fork");
    if (pid == 0) {
	execl("/usr/bin/mpg123", "mpg123",
	      "--aggressive", "-v", "-q", file, NULL);
	perror("[!] execl failed");
	abort();
	exit(0);
    }
    while (1) {
	int status;
	if (waitpid(pid, &status, 0) == -1) {
	    if (errno != EINTR)			/* something bad happened */
		err_sys("[!] waitpid failed");
	    printf("\n[?] DEBUG: interrupted\n");
	} else {
	    if (WIFSIGNALED(status))
		printf("\n[!] Child got signal %d", WTERMSIG(status));
	    else if (WIFEXITED(status)) {
		int s = WEXITSTATUS(status);
		if (s)
		    printf("\n[!] Child exited with status %d", s);
	    }
	    printf("\n\n");
	    break;
	}
    }
    return;
}
/* randomize the contents of an array of n pointers */
void scramble(void *x[], int n)
{
    void *temp;
    int src, dest;
    for (dest = n - 1; dest > 0; dest--) {
	src = rand() % (dest + 1);
	temp = x[dest]; x[dest] = x[src]; x[src] = temp;
    }
}
/* Signals handling */
void haltinc(int dummy)
{
    haltflag++;
    alarm(1);
}
void haltreset(int dummy)
{
    haltflag = 0;
}
void toggleloop(int dummy)
{
    if (loop) {
	loop = 0;
	puts("\n\n[*] Looping disabled\n");
    } else {
	loop = 1;
	puts("\n\n[*] Looping enabled\n");
    }
}
/* Error routines */
void err_sys(const char *fmt, ...)
{
    va_list ap;
    va_start(ap, fmt);
    vfprintf(stderr, fmt, ap);
    fprintf(stderr, ": %s\n", strerror(errno));
    va_end(ap);
    exit(1);
}
void err_quit(const char *fmt, ...)
{
    va_list ap;
    va_start(ap, fmt);
    vfprintf(stderr, fmt, ap);
    fputs("\n", stderr);
    va_end(ap);
    exit(1);
}
-- 
ciao, | [Per rispondere togli "toglimi" dal mio indirizzo.]
Marco | * The Internet is full. Go away.  -- Joel Furr *
      | (Ri)scoprire fidonet: 
http://bbs.mi.linux.it

 wrote in message
slrn8fth9h...@wolverine.lohacker.net...
[...]
Prova il vecchio amp. Se hai una Debian lo trovi sul CD
Henryx
--
===ooO===0===Ooo===oO@Oo===ooO===0===Ooo===
IHGGer #885
henr...@CARCERATO.it
Per rispondermi sostituite "CARCERATO" con "libero"
(vale anche per il reply diretto)
===ooO===0===Ooo===oO@Oo===ooO===0===Ooo===
                                                  ^ Copyleft Gas the Prodigy

 wrote:
|> E` mpg123  che richiede  mp3 perfetti-o-quasi. 
|
| Perfetti in che senso? 
"Perfetti" nel senso che non abbiano discontinuita` dovute a un download
"dilazionato" (tramite wget) troppo pesanti, oppure che siano creati con
problemi gia` all'origine (basso livello di registrazione|ripping o etc)
che li fanno andare "a salti"... 
-- 
Zefram 	| WARNING: The email address is FAKE.	 ||   [ 
http://zefram.8m.com
 ]
@ Home	| "I think it's time I blow the scene. Get everybody and the
________| stuff together. Ok, 3, 2, 1... Let's jam!" --The Seatbelts, "Tank!"


 wrote:
[snip]
Grazie, ormai siamo a un milione di birre... :-)
| 		mp3tosnd < $1 | snd2mp3 $OPTIONS > /tmp/temp.mp3
Dove trovo mp3tosnd e snd2mp3 ?
Fanno parte di qualche suite di applicazioni ad hoc?


Fanno parte di qualche suite di applicazioni ad hoc?
Uh... giuro che non me lo ricordo. snd2mp3 e' un encoder, crea un file
mp3 a partire da un file snd. mp3tosnd fa il contrario.
Immagino si possa fare anche con
	cat $1 | mp3toQUALSIASI | QUALSIASItomp3 > ...
con QUALSIASI=wav,au,...


 "dilazionato" (tramite wget) troppo pesanti, oppure 
[snip]
Ok grazie...
Ciao!