OVH Cloud OVH Cloud

Marquage de l'heure par un son systéme

31 réponses
Avatar
lerochet
Bonjour à tous(tes)

J'aimerai que mon Mac marque l'heure avec un son systéme comme cela se
faisait avec feu les versions antérieures à X. Quelqu'un ici même, il y
a un petit moment, m'avait donné la maniére de faire, mais je l'ai
malheureusement perdu.

Merci de vos éventuelles réponses.

10 réponses

1 2 3 4
Avatar
sebastienmarty
Nina Popravka wrote:

On Thu, 8 Nov 2007 22:55:01 +0100, (JiPaul) wrote:

En l'occurence pour un événement toutes les heures, ça donne :

0 * * * * commande


Oui mais, comment je fais pour que ça fasse glouglou autant de fois
que l'heure qu'il est ? (i.e. 5 glouglous à 5 heure)
:-)


Je viens d'imaginer ce que ça pourrait donner à 12h00... l'horreur...

--
[SbM]
<http://sebastienmarty.free.fr> - <http://tradintosh.free.fr>
<http://sbm.ordinotheque.free.fr> - <http://palmiciel.free.fr>
"If the French were really intelligent, they'd speak English" (W. Sheed)


Avatar
blanc
Nina Popravka wrote:

Oui mais, comment je fais pour que ça fasse glouglou autant de fois
que l'heure qu'il est ? (i.e. 5 glouglous à 5 heure)


0 1 * * * glouglou
0 2 * * * glouglou ; glouglou
0 3 * * * glouglou ; glouglou ; glouglou
0 4 * * * glouglou ; glouglou ; glouglou ; glouglou
0 5 * * * glouglou ; glouglou ; glouglou ; glouglou ; glouglou

etc...
D'ailleurs, c'est pas mal avec la commande say que j'ai indiquée :

say gluglu gluglu gluglu gluglu gluglu! :-)))


--
JiPaul.
/ /--/--// Jean-Paul Blanc
|/| L | quelquepart en (somewhere in)
/|| = ||| FRANCE

Avatar
Nina Popravka
On Thu, 8 Nov 2007 23:34:00 +0100, (JiPaul) wrote:

0 1 * * * glouglou
0 2 * * * glouglou ; glouglou
0 3 * * * glouglou ; glouglou ; glouglou
0 4 * * * glouglou ; glouglou ; glouglou ; glouglou
0 5 * * * glouglou ; glouglou ; glouglou ; glouglou ; glouglou


Abavi...
Méthode moi : un bout d'Excel pour générer le truc
Méthode barbu : un script shell (brrrrrrrr.............)
:-)
--
Nina

Avatar
Olivier Croquette
lerochet wrote, On 8/11/07 17:29:
Si tu as besoin d'un coup de main, fais le savoir!


Eh bien un ptit coup de main, c'est pas de refus. Si globalement j'ai
compris ce qu'il fallait faire, je n'ai pas idée du comment procéder
pour lui indiquer de faire jouer le son choisi toutes les heures. En
fait c'est la syntaxe à taper dans crontab qui me pose soucis.
Une idée ?


Essaie de copier/coller le script suivant dans le terminal (Pomme
C-Pomme V).

Tu dois remplacer d'abord FICHIER par le fichier son que tu veux.
(par exemple '/Applications/Mail.app/Contents/Resources/Mail Sent.aiff')

Tu peux toujours par la suite éditer le fichier coucou dans le
répertoire "bin" de ton répertoire utilisateur pour change le son.

Pour lancer le coucou manuellement, tape ~/bin/coucou dans un terminal.

Pour éditer le fichier crontab, tape:
crontab -e
(cf les nombreuses aides sur vi, dont http://www.cerfacs.fr/~daget/vi.htm)



mkdir -p ~/bin/
SOURCE=~/bin/playsound.m
BIN=~/bin/playsound
COUCOU=~/bin/coucou

cat > $COUCOU << EOF
#!/bin/sh

i=`date +%I`
while test $i -ne 0 ;do
i=$((i-1))
~/bin/playsound 'FICHIER'
done
EOF
chmod 755 "$COUCOU"

cat > $SOURCE << EOF
#import <Cocoa/Cocoa.h>

@interface Delegate : NSObject { }
@end

@implementation Delegate
- (void) sound: (NSSound *) sound didFinishPlaying: (BOOL) aBool
{
[[NSApplication sharedApplication] terminate: nil];
}
@end


int main (int argc, char *argv[])
{
if(argc!=2) {
NSLog(@"usage: %s cowbell.wav", argv[0]);
exit(1);
}

[[NSAutoreleasePool alloc] init];

NSSound *sound = [[NSSound alloc]
initWithContentsOfFile:
[NSString stringWithCString: argv[1]]
byReference: YES];

[sound setDelegate: [[[Delegate alloc] init] autorelease]];
[sound play];

[[NSRunLoop currentRunLoop] run];

return 1; // failed
}
EOF



gcc "$SOURCE" -o "$BIN" -Wall -Os -framework Cocoa


TMPFILE=`mktemp -t cron`
crontab -l > "$TMPFILE"
echo "0 * * * * ~/bin/coucou" >> "$TMPFILE"
crontab "$TMPFILE" || exit 1
rm "$TMPFILE"


Avatar
news77jll
Pierre-Olivier TAUBATY wrote:

Nina Popravka wrote:

On Wed, 7 Nov 2007 22:15:57 +0100, (SbM)
wrote:

Au quatrième glouglou, il sera exactement...
23h, il a fait qu'un glouglou :-)



ouai^p il faudrait un truc qui fasse "coucou! coucou!"


Alors là tu peux utiliser Cuckoo
http://toastycode.com/files/Cuckoo-111.zip


--
Cordialement A+ JLL (sans le 77 pour me joindre)
iMacIntel 24" - 2Go - MacOS X 10.4.10
MIEUX VAUT ALLUMER UNE CHANDELLE QUE MAUDIRE L'OBSCURITE



Avatar
lerochet
lerochet wrote, On 8/11/07 17:29:
Si tu as besoin d'un coup de main, fais le savoir!


Eh bien un ptit coup de main, c'est pas de refus. Si globalement j'ai
compris ce qu'il fallait faire, je n'ai pas idée du comment procéder
pour lui indiquer de faire jouer le son choisi toutes les heures. En
fait c'est la syntaxe à taper dans crontab qui me pose soucis.
Une idée ?


Essaie de copier/coller le script suivant dans le terminal (Pomme
C-Pomme V).

Tu dois remplacer d'abord FICHIER par le fichier son que tu veux.
(par exemple '/Applications/Mail.app/Contents/Resources/Mail Sent.aiff')

Tu peux toujours par la suite éditer le fichier coucou dans le
répertoire "bin" de ton répertoire utilisateur pour change le son.

Pour lancer le coucou manuellement, tape ~/bin/coucou dans un terminal.

Pour éditer le fichier crontab, tape:
crontab -e
(cf les nombreuses aides sur vi, dont http://www.cerfacs.fr/~daget/vi.htm)



mkdir -p ~/bin/
SOURCE=~/bin/playsound.m
BIN=~/bin/playsound
COUCOU=~/bin/coucou

cat > $COUCOU << EOF
#!/bin/sh

i=`date +%I`
while test $i -ne 0 ;do
i=$((i-1))
~/bin/playsound 'FICHIER'
done
EOF
chmod 755 "$COUCOU"

cat > $SOURCE << EOF
#import <Cocoa/Cocoa.h>

@interface Delegate : NSObject { }
@end

@implementation Delegate
- (void) sound: (NSSound *) sound didFinishPlaying: (BOOL) aBool
{
[[NSApplication sharedApplication] terminate: nil];
}
@end


int main (int argc, char *argv[])
{
if(argc!=2) {
NSLog(@"usage: %s cowbell.wav", argv[0]);
exit(1);
}

[[NSAutoreleasePool alloc] init];

NSSound *sound = [[NSSound alloc]
initWithContentsOfFile:
[NSString stringWithCString: argv[1]]
byReference: YES];

[sound setDelegate: [[[Delegate alloc] init] autorelease]];
[sound play];

[[NSRunLoop currentRunLoop] run];

return 1; // failed
}
EOF



gcc "$SOURCE" -o "$BIN" -Wall -Os -framework Cocoa


TMPFILE=`mktemp -t cron`
crontab -l > "$TMPFILE"
echo "0 * * * * ~/bin/coucou" >> "$TMPFILE"
crontab "$TMPFILE" || exit 1
rm "$TMPFILE"


Ok. Un grand merci à tous pour le coup de main à mon modeste probléme.
N'étant qu'un utilisateur "ordinaire", je ne suis pas du tout
familiarisé avec les commandes du terminal. Ce petit exemple va beaucoup
m'aider à en comprendre un peu plus.



Avatar
cf
JiPaul wrote:

Nina Popravka wrote:

Oui mais, comment je fais pour que ça fasse glouglou autant de fois
que l'heure qu'il est ? (i.e. 5 glouglous à 5 heure)


0 1 * * * glouglou
0 2 * * * glouglou ; glouglou
0 3 * * * glouglou ; glouglou ; glouglou
0 4 * * * glouglou ; glouglou ; glouglou ; glouglou
0 5 * * * glouglou ; glouglou ; glouglou ; glouglou ; glouglou


Quitte à utiliser la solution crontab, il y a moyen de simplifier
notablement avec un script du style :

$ cat > glouglou.sh
i=`date +%H`
while [ $i -gt 0 ] ; do
say gluglu
i=`expr $i - 1`
done
<ctrl-D>

et après, juste :

0 * * * * glouglou.sh

(avec les bons droits et un chemin qui va bien pour glouglou.sh)

A++
--
Christian


Avatar
Olivier Croquette
lerochet wrote, On 9/11/07 10:29:
Ok. Un grand merci à tous pour le coup de main à mon modeste probléme.
N'étant qu'un utilisateur "ordinaire", je ne suis pas du tout
familiarisé avec les commandes du terminal. Ce petit exemple va beaucoup
m'aider à en comprendre un peu plus.


C'est pas le plus simple pour commencer!

Les commandes que je t'ai envoyé font plein de trucs. Ca:
- créé un script (coucou)
- créé le code source d'une programme qui permet de lire les sons
(playsound)
- compile le programme en question
- créé une ligne dans la crontab, qui appelle coucou toutes les heures,
qui lui même appelle playsound

Bon courage :)

Avatar
blanc
Olivier Croquette wrote:

#import <Cocoa/Cocoa.h>

@interface Delegate : NSObject { }
@end

@implementation Delegate
- (void) sound: (NSSound *) sound didFinishPlaying: (BOOL) aBool
{
[[NSApplication sharedApplication] terminate: nil];
}
@end


int main (int argc, char *argv[])
{
if(argc!=2) {
NSLog(@"usage: %s cowbell.wav", argv[0]);
exit(1);
}

[[NSAutoreleasePool alloc] init];

NSSound *sound = [[NSSound alloc]
initWithContentsOfFile:
[NSString stringWithCString: argv[1]]
byReference: YES];

[sound setDelegate: [[[Delegate alloc] init] autorelease]];
[sound play];

[[NSRunLoop currentRunLoop] run];

return 1; // failed
}


Interressant ce programme.
Mais, comment faire pour que :
1) il ne se passe pas 8 ou 9 secondes avant qu'on entende le son ?
2) jouer plusieurs sons (en mettant plusieurs arguments) ?

--
JiPaul.
/ /--/--// Jean-Paul Blanc
|/| L | quelquepart en (somewhere in)
/|| = ||| FRANCE

Avatar
Olivier Croquette
JiPaul wrote, On 10/11/07 10:45:
Interressant ce programme.
Mais, comment faire pour que :
1) il ne se passe pas 8 ou 9 secondes avant qu'on entende le son ?


Chez moi c'est instantané quand je tape:
playsound '/Applications/Mail.app/Contents/Resources/Mail Sent.aiff'

2) jouer plusieurs sons (en mettant plusieurs arguments) ?


Soit tu modifies le programme pour faire une boucle, soit tu l'appelles
plusieurs fois.

1 2 3 4