#!/bin/bash #NC imcp.ba@free.fr IMCP Blandy Alain #VERSION UTILTAIRE recorder.sh DU 1698394700 # 27/10/2023 08:18:20 UTC # # # CE PROGRAMME recorder.sh # EST DESTINE A PREENREGISTRER UN FICHIER SON # # POUR POUVOIR LE DIFFUSER PLUS TARD ( A LA PLACE DU MICRO ) # DANS LE PROGRAMME microconf .sh # ======================================= # suppose que l'on a charge le module sox # verifier par le commande sox -h # # regler le mixeur pour faire marcher # le petit programme suivant # " rec -t wav - | play -t wav - " # qui envois le son du micro sur le HP ... # avec un bon volume sonore sans saturer !!! # ( dans ce script un barregraphe est disponible ).... # # # ======================================= # ======================================= # MISE A JOUR PAR COPIER COLLER # # FAIRE UN CD Dans un directory approprie # ex : mkdir conference # cd conference # # OUVRIR OU CREER AVEC UN EDITEUR ./recorder.sh # et vider la page ( tout selectionner ; supprimer ) # # AVEC VOTRE SEURFEUR DANS L ENCADRE DE COULEUR # COPIER (CTL+C) tous ce fichier source # # REVENIR dans l'editeur # FAIRE UN COLLER le (CTL+V) (ou boutton central sourie) # ET SAUVEGARDER dans ./recordersh # # EN LIGNE DE COMMANDE : # RENDRE EXECUTABLE le fichier : # chmod +x ./recorder.sh (0755) # ou utiliserr le tar de status # Ouvrir une XTERM # LANCER utilitaire ./recorder.sh # dans des fenetres xterm ou console ALT+F1 .... separees ! # .... # ======================================= # ======================================= fileson='./playback.wav'; #nom du fichier son par defaut # les parametres d appel sont identifies par leur possition # un parameter indefinis ( par defaut) est represente pac le caractere '!' if test "$1" != '' && test "$1" != '!' ; then #parametre 1 si different de ! fileson="$1"; # c'est le nom implicite du fichier son fi; echo " $0 $* PROGRAMME POUR PRENREGISTER SON INTEVENTION CONFERENCE ( usage : $0 $fileson '!' : parametre par defaut) Appel simplifie $0 ON pourras utilisera ensuite le client : microconf... pour diffuser l'enregistrement dans la conference par la commande \"SON $fileson\" "; # par convention les appel simple sous unix exec # $0 represente le path appel du script # et permet ici auto referencement du fichier script source grep '#VERSION' $0 | grep -v grep; echo; tty -s; # attache a une tty if test "$?" != '0' ; then echo " NO in tty !!!"; exit 1; #pour tuer tache plus ou pas attache a une xterm fi; # =================================================================== #pour limiter le debit sans perdre en qualitee !!!!! modemicro=' -c 1 -r 11025 ' ; # decallage 1s (172 kb/s ) (21.5 Ko/s) #modemicro=' -c 1 -r 6000 '; # # ne pas modifier ce parametre !!!! # ( tel quel il permettrais th. d'avoir 5 ecouteurs par mega upload ) # # il est important dans un premier temps que tous les locuteurs est le meme modemicro # =================================================================== # pourrais peut ici inclure fichier # commmun d'inclusion specifique au client !!! # tel que le volume micro commun a ce programme # et micro.....sh echo " Enregistrer du fichier $fileson type wav au Micro .... Arret par CTL+C, Apres une bonne segonde de silence "; #on ne connais pas a priory la dure de enregistrement filetempo="$fileson_ZZtempo.wav"; # fichier temporaire rm -f $filtempo; rec $modemicro -t wav $filetempo; #avec le mode micro voulus #calcul dure fichier arrondis segonde inf nboctest="`ls -l $filetempo | (read a b c d e f; echo $e)`"; herz="` echo $modemicro | (read a b c d e f; echo $d)`"; # quatrieme argument #### depends du format modemicro dure="$[ $[$nboctest - 44 ] / 2 / $herz ]"; # -44 entete / 2 octets par herz modemicro echo "Dure extime $dure s !"; echo; if test "$[$dure > 1]" == '1'; then #ok a priory #racourcir le message pour enlever le bruit du clavisr CTL.C echo " Remise en forme : avec mise a jour entete"; # fabrication d'un fichier raccourcis une segonde; avec unn header complet sox -t wav $filetempo -t wav $fileson trim 0 $dure; rm -f $filetempo; echo " Ecoute de controle ( dure $dure s ) play $fileson; ... : "; # entee wav du fichier indque la duree play $fileson; echo " Peut etre envoye en conference avec le programme microconf....sh par la commande en ligne \"SON $fileson\" "; else #erreur dsp pas libre ???? echo "Pas d'enregistrement fait ??? ; Fichier ./$fileson inchange !"; fi; echo " $0 $* PROGRAMME TERMINE "; # copier coller jusque ici ! # # |