# Utiliser AppleScript pour un novice.



## nakatalinho (18 Septembre 2009)

Bonjour à toutes et tous,

Musicien, je passe une bonne partie de mon temps à exporter (bouncer) des fichiers audio plus ou moins volumineux, parfois, qqs secondes seulement de son/ musique (aiff, wav, 16 ou 24 bits, 44,1 ou 48 kz etc) depuis Logic, Live, Ardour etc puis à les convertir en mp3 (j' utilise Soundconverter, petit shareware très stable) afin de les envoyer par mail ou ftp à mes petits camarades afin de recueillir leur avis sur un travail en cours et d' apporter les modifs adhoc.
Ces manips me prennent un temps fou et j' aimerais savoir s' il est possible d' automatiser cette tâche via Applescript:
J' exporterais alors tous mes fichiers vers un dossier unique, Soundconverter se lancerait automatiquement à "l' arrivée" d' un nouveau fichier et le convertirait dans un format que j' aurais prédéfini dans le même dossier, en changeant l' extension.

. est-ce "techniquement" réalisable ?
. par une bille comme moi qui n' entends rien à Applescript ?

Merci d' avance.


----------



## DualG4 (18 Septembre 2009)

J'ai l'impression qu'AudioConverter n'est pas scriptable.
Tu peux te tourner vers Automator pour faire ça.


----------



## PA5CAL (18 Septembre 2009)

Bonjour

SoundConverter est scriptable, ce qui rend techniquement possible ce que tu souhaites faire. Le dictionnaire de SoundConverter donne d'ailleurs une commande pour réaliser des conversions, avec la syntaxe suivante :

*convertSound*&#8194;v : convert a file
¨¨¨¨*convertSound* text : inFilePath
¨¨¨¨*outFormat* text :
¨¨¨¨[*channels* text] :
¨¨¨¨[*sampleRate* text] :
¨¨¨¨[*bitsPerSecond* text] :
¨¨¨¨[*bitsPerSample* text] :
¨¨¨¨[*encoding* text] :
¨¨¨¨[*variableBitRateQuality* text] :
¨¨¨¨&#8594; text : returns yes if conversion successful, error message otherwise

J'ai fait quelques essais, et je suis parvenu à réaliser quelques conversions en utilisant la syntaxe :

¨¨¨¨*tell* application "SoundConverter" to convertSound "_/le_chemin/_vers_/mon_fichier.mp3_" outFormat "wav"

pour convertir au format WAV le fichier "_mon_fichier.mp3_" du dossier "_/le_chemin/_vers_/_", et encore celle-ci :

¨¨¨¨*tell* application "SoundConverter" to convertSound "/_le_chemin/_vers_/mon_dossier/_" outFormat "wav"

pour convertir au format WAV tous les fichiers du dossier "_/le_chemin/_vers_/mon_dossier/_".

On peut donc envisager de créer une action de dossier de manière à convertir automatiquement tous les fichiers qui tomberaient dans un dossier spécifié.


Il faudrait se pencher un peu plus avant sur la question pour exploiter les autres paramètres de  la commande _convertSound_ et pour réaliser le script voulu.


----------



## nakatalinho (18 Septembre 2009)

Bonjour et merci,

je viens d' essayer avec Automator, ça n' est pas très simple; j' ai réussis à faire en sorte que Soundconverter se lance automatiquement lorsque j' ajoute un fichier à mon dossier mais pas à lui 'intimer l' ordre" de convertir ce fichier. Après que j' aie converti ce fichier (manuellement), Soundconverter quitte automatiquement, c' est donc l' étape intermédiaire qui ne colle pas !

L' action de dossier me parait presque plus simple à utiliser ! 
(ça, c' est sans doute dû au fait que je n' ai pas encore mis les mains dans le cambouis...).
Que signifie le_chemin ?
Est-ce le nom du dossier dans lequel se trouve le fichier audio à convertir (dans mon cas, du wav ou aiff au mp3) ?


----------



## PA5CAL (18 Septembre 2009)

nakatalinho a dit:


> Que signifie le_chemin ?
> Est-ce le nom du dossier dans lequel se trouve le fichier audio à convertir (dans mon cas, du wav ou aiff au mp3) ?


Dans mon premier exemple, "/le_chemin/_vers_/" est le dossier où se trouve le fichier "mon_fichier.mp3" à convertir.

Dans mon second exemple, "/le_chemin/_vers_/mon_dossier/" est le chemin du dossier où se trouvent tous les fichiers à convertir d'un coup.


Pour obtenir rapidement le nom du chemin du dossier qui t'intéresse, il suffit que tu glisses ce dossier depuis le Finder vers la fenêtre de l'éditeur de texte.


----------



## nakatalinho (18 Septembre 2009)

Hmmm, tout cela est fort complexe pour un novice comme moi !

Je pense avoir réussis à faire en sorte qu' Automator lance SoundConverter lorsqu' un nouveau fichier "tombe" dans le dossier sélectionné dans mon "processus" (ainsi, lorsque j' exporte un fichier .wav depuis live 7, Soundconverter se lance brièvement puis, quitte sans avoir converti ce fichier en mp3).
Je viens de comprendre qu' il est possible de lancer un script applescript à l' intérieur d' un procès Automator.
Ne serait-ce pas plus simple dans mon cas ?
A quoi pourrait ressembler une telle ligne de commande et comment l' intégrer à mon procès ?
Comment faire en sorte que les seuls fichiers convertis soient les nouveaux fichiers entrants dans le dossier car, à défaut, (ou plus exactement, si la reconnaissance se fait sur la base de l' extension du fichier, i.e.: .wav), SoundConverter risque de convertir tous les .wav déjà présents dans mon dossier non ?

Merci, en tous cas, pour l' intérêt porté à ma question


----------



## nakatalinho (19 Septembre 2009)

j' ai tenté d' entrer ce script Applescript dans un processus Automator mais, à l' arrivée, il n' y a toujours qu' un fichier .wav dans mon dossier.

run {input, parameters}

	(* ¨tell application "SoundConverter" to convertSound "/Users/maitemenard/Music/NikaExport/Sans titre.wav" outFormat "mp3" *)
	return input
end run

Qu' est-ce qui ne colle pas, n' est pas cohérent ou logique ?


Ben déjà, le forum où tu as ouvert ce topic, ne colle pas, j'y ai pourtant fait figurer cette annonce "à lire avant de poster" qui l'explique par le menu, et offre un lien vers la table d'orientation !

Bon, la suite dans ""Développement sur Mac" !


----------

