[Projet] Contrôle Audio des applications

juillet 2009 modifié dans Vos applications #1
Bonjour à  tous,

J'ai une idée qui me trotte sur le coup...
L'idée de l'application serait de pouvoir contrôler le son des applications.
C'est quelque chose qui avait souvent été demandé sur des forums il y a très longtemps, ducoup je ne sais pas si ça existe maintenant, mais je sais qu'il a déjà  des applis qui permettent d'enregistrer, par exemple, uniquement le son qui provient de Safari.

En gros, on pourrait choisir par exemple de mute Adium, de baisser le volume qui provient de iChat, afin de profiter pleinement d'un film via QuickTime tout en étant alerté discrétement si quelqu'un vous parle sur iChat.

Je ne sais pas ce que vous en pensez, mais moi ça me plairait bien de faire un truc comme ça.

Bref si vous avez des pistes (CoreAudio?)
Louka.

Réponses

  • AliGatorAliGator Membre, Modérateur
    16:42 modifié #2
    Hello,

    Juste pour info, je sais pas si tu connais Airfoil (logiciel " payant " permettant de transmettre le son provenant de ton mac en général ou d'une appli en particulier via le réseau pour récupérer ce son sur un autre mac, en gros), mais côté technos ça me semble être dans le même domaine que ce que tu veux faire (récupération du son provenant d'une appli, rebalancé ensuite soit sur le réseau... soit sur le mac en local, ce que sait faire Airfoil aussi)

    Je viens donc de lancer un "otool -L" dessus pour te donner une idée des libs et frameworks utilisés :
    AliMBP:~ olivier$ otool -L /Applications/Airfoil/Airfoil.app/Contents/MacOS/Airfoil
    /Applications/Airfoil/Airfoil.app/Contents/MacOS/Airfoil:
    /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 11.0.0)
    @executable_path/../Frameworks/Protein.framework/Versions/A/Protein (compatibility version 1.0.0, current version 1.0.0)
    @executable_path/../Frameworks/auverse.framework/Versions/A/auverse (compatibility version 1.0.0, current version 1.0.0)
    /usr/lib/libcrypto.0.9.7.dylib (compatibility version 0.9.7, current version 0.9.7)
    /System/Library/Frameworks/AudioUnit.framework/Versions/A/AudioUnit (compatibility version 1.0.0, current version 1.0.0)
    @executable_path/../Frameworks/sw4fx.framework/Versions/A/sw4fx (compatibility version 1.0.0, current version 1.0.0)
    @executable_path/../Frameworks/AudioHijackKit.framework/Versions/A/AudioHijackKit (compatibility version 1.0.0, current version 1.0.0)
    /System/Library/Frameworks/Security.framework/Versions/A/Security (compatibility version 1.0.0, current version 29774.0.0)
    /System/Library/Frameworks/Carbon.framework/Versions/A/Carbon (compatibility version 2.0.0, current version 128.0.0)
    @executable_path/../Frameworks/FXViews.framework/Versions/A/FXViews (compatibility version 1.0.0, current version 1.0.0)
    @executable_path/../Frameworks/ExtrasInstaller.framework/Versions/A/ExtrasInstaller (compatibility version 1.0.0, current version 1.0.0)
    /System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio (compatibility version 1.0.0, current version 1.0.0)
    /System/Library/Frameworks/QTKit.framework/Versions/A/QTKit (compatibility version 1.0.0, current version 1.0.0)
    /System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration (compatibility version 1.0.0, current version 1.0.0)
    /System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox (compatibility version 1.0.0, current version 1.0.0)
    @executable_path/../Frameworks/MusicSharing.framework/Versions/A/MusicSharing (compatibility version 1.0.0, current version 1.0.0)
    /System/Library/Frameworks/OSAKit.framework/Versions/A/OSAKit (compatibility version 1.0.0, current version 42.0.0)
    /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.4.0)
    /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 88.3.10)
    /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 18.0.0)
    /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 227.0.0)
    /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 368.33.0)
    /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 824.47.0)
    /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices (compatibility version 1.0.0, current version 22.0.0)
    /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 567.37.0)
    En conclusion on voit du AudioUnit et CoreAudio, mais aussi du AudioToolBox, et même du QTKit.

    - Parmi les Frameworks privés qu'on voit d'utilisés (auverse, sw4fx, ...)
    ils utilisent CoreAudio, AudioUnit et AudioToolbox aussi (et Accelerate pour tout j'imagine les calculs parallèles optimisés genre Altivec)
    - Pour le framework AudioHijack (Audio Hijack étant un truc qu'on doit installer en plus permettant à  Airfoil de directement patcher une appli même déjà  lancée pour pouvoir récupérer ses buffers son, car sinon sans Audio Hijack si tu veux récupérer le son d'une appli une fois l'appli choisie das Airfoil faut que tu quittes et relancer l'appli ciblée...), y'a en plus d'utilisé dans ce fw les frameworks QuickTime, DiscRecording (oh?), IOKit.

    Voilà , donc tout ça pour dire qu'à  mon avis pour ce genre de choses CoreData + AudioToolBox + AudioUnit est un bon mix
    Après pour récupérer les buffers son de chaque appli et diminuer ou augmenter leur volume avant de les rebalancer sur la sortie audio... bah faut voir comment faire (surtout pour la partie récup du flux audio, d'autant que Airfoil laisse penser " en obligeant à  installer AudioHijack si on veut pas quitter l'appli " que c'est fait par les InputManagers donc une sorte de hack de l'appli). Allez hop, au boulot :P
  • 16:42 modifié #3
    Tu veux dire CoreAudio et non pas CoreData  ;D
    (Oui, j'aime trouver l'erreur dans tes longs posts :p )
  • AliGatorAliGator Membre, Modérateur
    16:42 modifié #4
    C'était pour voir si t'allais lire  ;D
  • mnuagesmnuages Membre
    16:42 modifié #5
    salut,

    je ne sais pas pourquoi elle n'est pas plus connue mais il existe déjà  une appli qui fait ça : Hear
    +


  • juillet 2009 modifié #6
    Super, dommage qu'il y a trop de trucs :) mais sinon c'est exactement ce que je cherchais :)
    Par contre ouaip je pense pas l'acheter... moi je veux juste cette fonction.. et payer 40$ pour ça ça fait mal  ;D

    Edit : ça m'a bousillé le son de Call of Duty 4... meme en n'ayant pas l'application de lancée
Connectez-vous ou Inscrivez-vous pour répondre.