Page 1 sur 2

Scripts Audio

Posté : mer. 31 oct., 2007 17:11
par Dirk-Pitt

Code : Tout sélectionner

function MonoToStereo( clip C )
{
  Assert( C.AudioChannels == 1, "This clip must have 1 audio channel" )
  A1=GetChannel( C, 1 )
  A=MergeChannels( A1, A1 )
  Return( C.HasVideo ? AudioDub( C, A ) : A )
}

Posté : mer. 31 oct., 2007 17:15
par Dirk-Pitt

Code : Tout sélectionner

function UpMix( clip C, bool "Reverb" )
{
  Reverb=Default( Reverb, false )
  Assert( C.AudioChannels == 2, "This clip must have 2 audio channels" )
  P=GetLibPath( )
  A1=GetChannel( C, 1 )
  A2=GetChannel( C, 2 )
  A3=MixAudio( SuperEq( A1, P+"CENTER.FEQ" ), SuperEq( A2, P+"CENTER.FEQ" ) )
  A4=MixAudio( SuperEq( A1, P+"LFE.FEQ" ), SuperEq( A2, P+"LFE.FEQ" ) )
  A5=SuperEq( A1, P+"SURROUND.FEQ" )
  A6=SuperEq( A2, P+"SURROUND.FEQ" )
  A1=Reverb ? A1.SoxFilter( "reverb 1.0 600.0 150.0" ) : A1
  A2=Reverb ? A2.SoxFilter( "reverb 1.0 600.0 150.0" ) : A2
  A3=Reverb ? A3.SoxFilter( "reverb 1.0 600.0 280.0" ) : A3
  A5=Reverb ? A5.SoxFilter( "reverb 1.0 600.0 120.0" ) : A5
  A5=Reverb ? A6.SoxFilter( "reverb 1.0 600.0 120.0" ) : A6
  # === WAV, AAC Order === L R C LFE SL SR =============================
  A=MergeChannels( A1, A2, A3, A4, A5, A6 )
  # === AC3, OGG Order === L C R SL SR LFE =============================
  # A=MergeChannels( A1, A3, A2, A5, A6, A4 )
  Return( C.HasVideo ? AudioDub( C, A ) : A )
}
Remplacer P=GetLibPath( ) par la valeur appropriée.

Posté : mer. 31 oct., 2007 17:16
par Dirk-Pitt
CENTER.FEQ

Code : Tout sélectionner

-20
-20
-20
-20
-20
-20
-10
-10
-10
-10
-10
-10
-10
-10
-10
-10
-10
-10

Posté : mer. 31 oct., 2007 17:16
par Dirk-Pitt
SURROUND.FEQ

Code : Tout sélectionner

-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3

Posté : mer. 31 oct., 2007 17:17
par Dirk-Pitt
LFE.FEQ

Code : Tout sélectionner

-3
-3
-3
-20
-20
-20
-20
-20
-20
-20
-20
-20
-20
-20
-20
-20
-20
-20

Posté : mer. 31 oct., 2007 17:18
par Dirk-Pitt

Code : Tout sélectionner

function DownMix( clip C )
{
  Assert( C.AudioChannels == 6, "This clip must have 6 audio channels" )
  A1=GetChannel( C, 1 )
  A2=GetChannel( C, 2 )
  A3=GetChannel( C, 3 )
  A4=GetChannel( C, 4 )
  A5=GetChannel( C, 5 )
  A6=GetChannel( C, 6 )
  A1=MixAudio( MixAudio( A1, A5, 0.2698, 0.2698 ), MixAudio( A3, A4, 0.1907, 0.2698 ) )
  A2=MixAudio( MixAudio( A2, A6, 0.2698, 0.2698 ), MixAudio( A3, A4, 0.1907, 0.2698 ) )
  A=MergeChannels( A1, A2 )
  Return( C.HasVideo ? AudioDub( C, A ) : A )
}

Posté : mer. 31 oct., 2007 17:19
par Dirk-Pitt

Code : Tout sélectionner

function AddVideo( clip C )
{
  Assert( C.HasAudio, "This clip must have audio track" )
  L=AudioLength( C )
  R=AudioRate( C )
  V=BlankClip( Length=( L / R ) * 25, Fps=25, Color=$000000 )
  Return( C.HasVideo ? C : AudioDub( V, C ) )
}

Posté : mer. 31 oct., 2007 17:20
par pepsilite
gné? :mdr

Posté : mer. 31 oct., 2007 17:22
par cdoris
Je sens que cela va faire... du bruit ! :band

Posté : mer. 31 oct., 2007 17:23
par Dirk-Pitt
Il n'y a pas de raison que ces scripts soient ailleurs et pas ici. :bzz

Re: Scripts Audio

Posté : mer. 31 oct., 2007 18:32
par leon1789
Dirk-Pitt a écrit :

Code : Tout sélectionner

function MonoToStereo( clip C )
ok :)
Dirk-Pitt a écrit :

Code : Tout sélectionner

function UpMix( clip C, bool "Reverb" )}
Remplacer P=GetLibPath( ) par la valeur appropriée.
Heu... c'est-à-dire ?

C'est aussi une de tes fonctions SuperEq ? Et SoxFilter ?
Dirk-Pitt a écrit :

Code : Tout sélectionner

function DownMix( clip C )
Les 0.2698, 0.2698 0.1907, 0.2698 , etc... sont là pour éviter la saturation ?
Dirk-Pitt a écrit :

Code : Tout sélectionner

function AddVideo( clip C )
ok
Dirk-Pitt a écrit :Il n'y a pas de raison que ces scripts soient ailleurs et pas ici. :bzz
exact ! :)

Re: Scripts Audio

Posté : mer. 31 oct., 2007 18:41
par Dirk-Pitt
leon1789 a écrit :
Dirk-Pitt a écrit :

Code : Tout sélectionner

function UpMix( clip C, bool "Reverb" )}
Remplacer P=GetLibPath( ) par la valeur appropriée.
Heu... c'est-à-dire ?
En général c'est P="C:\Program Files\AviSynth 2.5\plugins" ... c'est là que l'on doit mettre les fichiers .FEQ, mais ce n'est pas obligatoire.

Posté : mer. 31 oct., 2007 18:45
par pepsilite
Dirk-Pitt a écrit :Il n'y a pas de raison que ces scripts soient ailleurs et pas ici. :bzz
étant donné leur (c), ils n'ont même RIEN A FOUTRE ailleurs qu'ici ...........

Re: Scripts Audio

Posté : mer. 31 oct., 2007 18:47
par Dirk-Pitt
leon1789 a écrit :C'est aussi une de tes fonctions SuperEq ? Et SoxFilter ?
Non pour Sox infos ici http://forum.doom9.org/showthread.php?t=104792 et SuperEq ici http://avisynth.org/SuperEQ

SuperEq fait partie d'AVISynth.

Posté : mer. 31 oct., 2007 18:49
par Dirk-Pitt
pepsilite a écrit :
Dirk-Pitt a écrit :Il n'y a pas de raison que ces scripts soient ailleurs et pas ici. :bzz
étant donné leur (c), ils n'ont même RIEN A FOUTRE ailleurs qu'ici ...........
Certes, mais il va être difficile de les enlever. :oups:

Re: Scripts Audio

Posté : mer. 31 oct., 2007 18:50
par Dirk-Pitt
leon1789 a écrit :Les 0.2698, 0.2698 0.1907, 0.2698 , etc... sont là pour éviter la saturation ?
J'ai pris les valeurs de la matrice d'UpMix d'AC3Filter.

Posté : mer. 31 oct., 2007 18:52
par pepsilite
ben ouais, tout ce qui est resté là-bas leur appartient, c'est bien connu, mais c'est pas du vol .... :hop:

Re: Scripts Audio

Posté : mer. 31 oct., 2007 18:54
par leon1789
Dirk-Pitt a écrit :
leon1789 a écrit :Les 0.2698, 0.2698 0.1907, 0.2698 , etc... sont là pour éviter la saturation ?
J'ai pris les valeurs de la matrice d'UpMix d'AC3Filter.
Oui, c'est ce que je viens de vérifier aussi :mrgreen:

Re: Scripts Audio

Posté : mer. 31 oct., 2007 18:58
par leon1789
Dirk-Pitt a écrit :En général c'est P="C:\Program Files\AviSynth 2.5\plugins" ... c'est là que l'on doit mettre les fichiers .FEQ, mais ce n'est pas obligatoire.
ah ok
Dirk-Pitt a écrit :
leon1789 a écrit :C'est aussi une de tes fonctions SuperEq ? Et SoxFilter ?
Non pour Sox infos ici http://forum.doom9.org/showthread.php?t=104792 et SuperEq ici http://avisynth.org/SuperEQ

SuperEq fait partie d'AVISynth.
ok, merci :)

Posté : lun. 05 nov., 2007 8:21
par Underground78
Cool, je lisais l'autre post sur le test du son et je me disais justement que ça serait cool de retrouver tes scripts de conversion ! :D

Posté : lun. 05 nov., 2007 11:50
par Dirk-Pitt
Ben vala ... :o:

Posté : mer. 09 avr., 2008 8:49
par leon1789
Dirk-Pitt a écrit :

Code : Tout sélectionner

function UpMix( clip C, bool "Reverb" )}
Bonjour

Je pense qu'il y a plusieurs manières d'envisager un upmix 2.0 -> 5.1.

Notons G et D les pistes audios Gauche et Droite de l'audio 2.0 d'origine.
Notons C, L, R, SL, SR, SW les pistes audios Centre, Left, Right, Surround Left, Surround Right, SubWoofer de l'audio 5.1 de sortie.

On peut "upmixer" 2.0 -> 5.1 via pleins de stratégies différentes :
la plus simple : C = rien , L = G, R = D, SL = rien, SR = rien, SW = rien
une stéréo élargie : C = rien , L = G, R = D, SL = G, SR = L, SW = rien
..avec C et W : C = G+D , L = G , R = D, SL = G, SR = L, SW = G+D
...avec "effet" : C = G+D , L = G , R = D, SL = G-L, SR = L-G, SW = G+D
etc etc.

Pourquoi pas un script qui laisse la possibilité à l'utilisateur de prendre en charge la répartition des canaux ? :)

Posté : mer. 09 avr., 2008 16:16
par leon1789
sur http://avisynth.org.ru/docs/english/cor ... hannel.htm, l'ordre des canaux est spécifié ainsi

Code : Tout sélectionner

reference:  	channel 1: 	channel 2: 	channel 3: 	channel 4: 	channel 5: 	channel 6:
5.1 WAV 	front left channel 	front right channel 	front center channel 	LFE 	rear left channel 	rear right channel
5.1 AC3 	front left channel 	front center channel 	front right channel 	rear left channel 	rear right channel 	LFE
5.1 DTS 	front center channel 	front left channel 	front right channel 	rear left channel 	rear right channel 	LFE
5.1 AAC 	front center channel 	front left channel 	front right channel 	rear left channel 	rear right channel 	LFE
5.1 AIFF 	front left channel 	rear left channel 	front center channel 	front right channel 	rear right channel 	LFE
Pour AAC, ça ne correspond pas à ce que Dirk-Pitt propose dans UpMix :beuh: Où est l'erreur ?

Posté : mer. 09 avr., 2008 16:40
par pepsilite
pour le aac l'ordre est 3, 1, 2, 5, 6, 4 et pour l'OGG 1, 3, 2, 5, 6, 4

Posté : mer. 09 avr., 2008 17:23
par leon1789
Merci de confirmer :)
ok, donc Dirk-Pitt devrait changer son script.