Audio up/downmix,..

  • In der Mixer-Matrix von ffdshow oder von AC3Filter kann man wohl ablesen, mit welchen Faktoren welche Kanäle bei ProLogic und DPL2 in die Ausgabe eingehen; wenn nicht, könnte auch noch in der Dokumentation von Azid bzw. BeSweet eine solche Matrix zu finden sein.

    Allerdings ist Dolby ProLogic (II) mehr als nur zwei gewichtete Summen, wenn es korrekt durchgeführt wird (Rear Channel Filter + 90° Phase Shift, evtl. Delay).

  • Würde am Ende gerne ne Befehlszeile für SoX drauß machen. ;)
    Das mit ffdshow guck ich mir mal an. (aber schon irgendwie merkwürdig, dass das niemand mal genauer dokumentiert hat)
    -> da wird natürlich nix angezeigt,.. :( also Dokumentationen suchen,.. -> in den Doks die mit BeSweetv1.4 kommen steht nix :/

    Cu Selur

    Ps.: hab mal im englischen Forum auch nen thread aufgemacht http://forum.doom9.org/showthread.php?t=152034

  • irgendwie versteh ich nicht wie man von den Matrizen bei:
    http://en.wikipedia.org/wiki/Dolby_Pro_Logic
    mit:
    fl' = FL+(1/2)^(1/2)*C+pi/2*(2/3)^(1/2)*SL+pi/2*(1/3)^(1/2)*SR
    fr' = FR+(1/2)^(1/2)*C-pi/2*(1/3)^(1/2)*SL-pi/2*(2/3)^(1/2)*SR
    auf:
    fl' = 0.3254xFL + 0.2301xC + 0.2818xSL + 0.1627xSR
    fr' = 0.3254xFR + 0.2301xC - 0.1627xSL - 0.2818xSR
    kommt,...
    (ist sicher ganz einfach und logisch, aber irgendwie geht es gerade an mir vorbei)

    -> okay, scheint als ob alles mit 0.3254 skaliert wird,.. aber irgendwie passt es dann auch nicht :/

  • Quelle: http://forum.doom9.org/showthread.php?p=1134992#post1134992
    Jetzt daraus nur noch SOX remix-Aufrufe und downmix wäre fertig. ;)

  • Normalisierungswerte die vom Himmelfallen mag ich nicht,.. :)

    Mist, bei:

    Code
    ffmpeg -y -i "AC3-5.1.ac3" -ac 6 -ar 48000 -acodec pcm_s16le -f wav - | sox -s -b 16 -c 6 -r 48000 --norm -t raw - -t wav - remix -m 1v0.3254,3v0.2301,4v0.2818,5v0.1627 2v0.3254,3v0.2301,4v-0.1627,5v-0.2818 norm | ffmpeg -v -1 -threads 4 -y -i - -ab 128000 -ac 2 -ar 48000 "test.mp3"

    fehlt der Rear-Right aber k.A. warum,... :(

  • Code
    function Dmix5Dpl2(clip a)    # 5 Channels FL,LR,C,SL,SR{  flr = GetChannel(a, 1, 2)  fcc = GetChannel(a, 3, 3)  lrc = MixAudio(flr, fcc, 0.3254, 0.2301)  // 0.3254*FL+0.2301*C  0.3254*FR+0.2301*C  bl  = GetChannel(a, 4)  br  = GetChannel(a, 5)  sl  = MixAudio(bl, br, 0.2818, 0.1627)  // 0.2818*SL 0.1627*SR  sr  = MixAudio(bl, br, -0.1627, -0.2818)  // -0.1627*SL -0.2818*SR  blr = MergeChannels(sl, sr)  //0.2818*SL+0.1627*SR -0.1627*SL-0.2818*SR  return MixAudio(lrc, blr, 1.0, 1.0)  //fl' = 0.3254*FL+0.2301*C+0.2818*SL+0.1627*SR  //fr' = 0.3254*FR+0.2301*C-0.1627*SL-0.2818*SR }


    => SoX:

    Code
    1v0.3254,3v0.2301,4v0.2818,5v0.1627 2v0.3254,3v0.2301,4v-0.1627,5v-0.2818


    Code
    function Dmix6Dpl2Lfe(clip a) # 6 Channels 1FL,2LR,3C,4SL,5SR,6SUB{  flr = GetChannel(a, 1, 2)  fcc = GetChannel(a, 3, 3)  lrc = MixAudio(flr, fcc, 0.2646, 0.1870)  // 0.2646*FL+0.1870*C  0.2646FR+0.1870*C  lfe = GetChannel(a, 4, 4)  lrc = MixAudio(lrc, lfe, 1.0, 0.1870)  // 0.2646*FL+0.1870*C+SL  0.2646*FR+0.1870*C+SL  bl  = GetChannel(a, 5)  br  = GetChannel(a, 6)  sl  = MixAudio(bl, br, 0.2291, 0.1323)  //  0.2291*SR   0.1323*SUB  sr  = MixAudio(bl, br, -0.1323, -0.2291)  //  -0.1323*SR -0.2291*SUB  blr = MergeChannels(sl, sr)  // 0.2291*SR+0.1323*SUB  -0.1323*SR-0.2291*SUB  return MixAudio(lrc, blr, 1.0, 1.0)  //fl' = 0.2646*FL+0.1870*C+SL+0.2291*SR+0.1323*SUB  //fr' = 0.2646*FR+0.1870*C+SL-0.1323*SR-0.2291*SUB}


    => SoX:

    Code
    1v0.2646,3v0.1870,4,5v0.2291,6v0.1323 1v0.2646,3v0.1870,4,5v-0.1323,6v-0.2291

    Falls da noch wer durchblickt: Stimmt das so ?

  • hmmm,.... auch keinen Bock mehr für heute, vielleicht mach ich morgen weiter,... (da ich selber eh so gut wie nie nen DownMix oder UpMix mache ist es zumindest für mich auch nicht soo wichtig ;))

    Cu Selur

    Ps.: Hab auch mal im englischen Forum noch mal gepostet, eventuell kann ja tebasuna51 oder sonst wer noch was konstruktives dazu sagen.

  • vor allem die letzte Formel sieht irgendwie falsch aus,...

    Code
    function Dmix3Stereo(clip a)  # 3 Channels L,R,C or L,R,S{  flr = GetChannel(a, 1, 2)  fcc = GetChannel(a, 3, 3)  return MixAudio(flr, fcc, 0.5858, 0.4142)  //0.5858*FL+0.4142*C 0.5858*FR+0.4142*C}


    SoX:

    Code
    1v0.5858,3v0.4142 2v0.5858,3v0.4142
    Code
    function Dmix3Dpl(clip a)     # 3 Channels only L,R,S{  flr = GetChannel(a, 1, 2)  sl  = GetChannel(a, 3)  sr  = Amplify(sl, -1.0)  blr = MergeChannels(sl, sr)  //S S*-1.0   return MixAudio(flr, blr, 0.5858, 0.4142)  //FL*0.5858+S FR*0.4142+S*-1.0}


    SoX:

    Code
    1v0.5858,3 2v0.4142,3v-1.0
    Code
    function Dmix4qStereo(clip a) # 4 Channels Quadro L,R,SL,SR{  flr = GetChannel(a, 1, 2)  blr = GetChannel(a, 3, 4)  return MixAudio(flr, blr, 0.5, 0.5)  //FL*0.5+SL*0.5 FR*0.5+SR*0.5}


    SoX:

    Code
    1v0.5,3v0.5 2v0.5,3v0.5
    Code
    function Dmix4qDpl(clip a)    # 4 Channels Quadro L,R,SL,SR{  flr = GetChannel(a, 1, 2)  bl  = GetChannel(a, 3)  br  = GetChannel(a, 4)  sl  = MixAudio(bl, br, 0.2929, 0.2929)  //0.2929*SR 0.2929*SL  sr  = MixAudio(bl, br, -0.2929, -0.2929)  //-0.2929*SR -0.2929*SL  blr = MergeChannels(sl, sr)  //0.2929*SR-0.2929*SR 0.2929*SL-0.2929*SL  <- Kann das Sinn machen?  return MixAudio(flr, blr, 0.4142, 1.0)  //0.4142*FL+0.2929*SR-0.2929*SR 0.4142*FR+0.2929*SL-0.2929*SL }


    SoX:

    Code
    1v0.4142,4v0.2929,4v-0.292 2v0.4142,3v0.2929,3v-0.292
  • Euer Merkwürden :)

    Nicht das ich davon irgendwelche Ahnung hätte, aber den "pseudo" upmix kann doch auch Soundkarte oder Verstärker übernehmen, und Downmix sollte auch recht einfach mit FFmpeg oder Mencoder funktionieren.

  • Zitat

    Nicht das ich davon irgendwelche Ahnung hätte,...


    da will Dir sicher niemand widersprechen

    Zitat

    Downmix sollte auch recht einfach mit FFmpeg oder Mencoder funktionieren.


    ffmpeg mach z.B. 5.1 -> Stereo dadurch, dass man alle Kanäle außer FL und FR fallen lässt,... mencoder hat auch so seine Macken beim Up- und Downmuxing.

    => War mal wieder ein Vergnügen Deine Äußerung zu lesen,...

  • Hi,

    Zitat

    1v0.3254,3v0.2301,4v0.2818,5v0.1627 2v0.3254,3v0.2301,4v-0.1627,5v-0.2818


    Das sieht in meinen Augen gut aus.

    Zitat

    1v0.2646,3v0.1870,4,5v0.2291,6v0.1323 1v0.2646,3v0.1870,4,5v-0.1323,6v-0.2291


    Das müsste so aussehen:
    1v0.2646,3v0.1870,4v0.1870,5v0.2291,6v0.1323 2v0.2646,3v0.1870,4v0.1870,5v-0.1323,6v-0.2291

    Gab es da nicht unterschiedliche Anordnung der Kanäle bei verschiedenen Mehrkanalquellen?
    Habe mir mal aufgeschrieben, dass für 5.1 -> AAC folgende anordnung ein muss ist: FL, FR, C, LFE, SL, SR

    Habe hier noch ein Testfile: ftp://ftp1.fraunhofer.de/institute/iis/…_Channel_ID.wav

    Gruß

  • Zitat

    Gab es da nicht unterschiedliche Anordnung der Kanäle bei verschiedenen Mehrkanalquellen?

    Ja, aber nach ffmpeg hat man die Ordnung wie sie in wav existiert und genau da hab ich den Fehler gemacht, weil die ist wie Du es auch anmerktest. (FL, FR, C, LFE, SL, SR)

    Hier mal eine korregierte Version

    Code
    function Dmix6Dpl2Lfe(clip a) # 6 Channels FL, FR, C, LFE, SL, SR{  flr = GetChannel(a, 1, 2)  fcc = GetChannel(a, 3, 3)  lrc = MixAudio(flr, fcc, 0.2646, 0.1870)  // 0.2646*FL+0.1870*C  0.2646FR+0.1870*C  lfe = GetChannel(a, 4, 4)  lrc = MixAudio(lrc, lfe, 1.0, 0.1870)  // 0.2646*FL+0.1870*C+SUB*0.1870  0.2646*FR+0.1870*C+SUB*0.1870  bl  = GetChannel(a, 5)  br  = GetChannel(a, 6)  sl  = MixAudio(bl, br, 0.2291, 0.1323)  //  0.2291*SL   0.1323*SR  sr  = MixAudio(bl, br, -0.1323, -0.2291)  //  -0.1323*SL -0.2291*SR  blr = MergeChannels(sl, sr)  // 0.2291*SL+0.1323*SR  -0.1323*SL-0.2291*SR  return MixAudio(lrc, blr, 1.0, 1.0)  //fl' = 0.2646*FL+0.1870*C+SUB*0.1870+0.2291*SL+0.1323*SR  //fr' = 0.2646*FR+0.1870*C+SUB*0.1870-0.1323*SL-0.2291*SR}


    SoX:

    Code
    1v0.2646,3v0.1870,4v0.1870,5v0.2991,6v0.1323 2v0.2646,3v0.1870,4v0.1870,5v-0.1323,6v-0.2291
  • Hier erst mal alles zusammen:

    Code
    DOWNMIX:--------------------DownMix to Mono:SoX: -function Dmix3Stereo(clip a)  # 3 Channels L,R,C or L,R,S{  flr = GetChannel(a, 1, 2)  fcc = GetChannel(a, 3, 3)  return MixAudio(flr, fcc, 0.5858, 0.4142)  //0.5858*FL+0.4142*C 0.5858*FR+0.4142*C}SoX: 1v0.5858,3v0.4142 2v0.5858,3v0.4142function Dmix3Dpl(clip a)     # 3 Channels only L,R,S{  flr = GetChannel(a, 1, 2)  sl  = GetChannel(a, 3)  sr  = Amplify(sl, -1.0)  blr = MergeChannels(sl, sr)  //S S*-1.0   return MixAudio(flr, blr, 0.5858, 0.4142)  //FL*0.5858+S FR*0.4142+S*-1.0}SoX: 1v0.5858,3 2v0.4142,3v-1.0function Dmix4qStereo(clip a) # 4 Channels Quadro L,R,SL,SR{  flr = GetChannel(a, 1, 2)  blr = GetChannel(a, 3, 4)  return MixAudio(flr, blr, 0.5, 0.5)  //FL*0.5+SL*0.5 FR*0.5+SR*0.5}SoX: 1v0.5,3v0.5 2v0.5,3v0.5function Dmix4qDpl(clip a)    # 4 Channels Quadro L,R,SL,SR{  flr = GetChannel(a, 1, 2)  bl  = GetChannel(a, 3)  br  = GetChannel(a, 4)  sl  = MixAudio(bl, br, 0.2929, 0.2929)  //0.2929*SR 0.2929*SL  sr  = MixAudio(bl, br, -0.2929, -0.2929)  //-0.2929*SR -0.2929*SL  blr = MergeChannels(sl, sr)  //0.2929*SR-0.2929*SR 0.2929*SL-0.2929*SL  <- Kann das Sinn machen?  return MixAudio(flr, blr, 0.4142, 1.0)  //0.4142*FL+0.2929*SR-0.2929*SR 0.4142*FR+0.2929*SL-0.2929*SL }SoX: 1v0.4142,4v0.2929,4v-0.292 2v0.4142,3v0.2929,3v-0.292function Dmix4qDpl2(clip a)   # 4 Channels Quadro L,R,SL,SR{  flr = GetChannel(a, 1, 2)  bl  = GetChannel(a, 3)  br  = GetChannel(a, 4)  sl  = MixAudio(bl, br, 0.3714, 0.2144)  //0.3714*SL 0.2144*SR  sr  = MixAudio(bl, br, -0.2144, -0.3714)  //-0.2144*SL -0.3714*SR  blr = MergeChannels(sl, sr)  //0.3714*SL-0.2144*SL 0.2144*SR-0.3714*SR  return MixAudio(flr, blr, 0.4142, 1.0)  //0.3712*FL+0.3714*SL-0.2144*SL FR+0.2144*SR-0.3714*SR}SoX: 1v0.4142,3v03714,3v-0.2144 2,3v0.2144,3v-0.3714function Dmix4sStereo(clip a) # 4 Channels L,R,C,S{  flr = GetChannel(a, 1, 2)  fcc = GetChannel(a, 3, 3)  lrc = MixAudio(flr, fcc, 0.4142, 0.2929)  //0.4142*FL+0.2929*C 0.4142*FR+0.2929*C  blr = GetChannel(a, 4, 4)  return MixAudio(lrc, blr, 1.0, 0.2929) //<- instead of MixAudio(flr, blr, 1.0, 0.2929)  //0.4142*FL+0.2929*C+0.2929*SUB 0.4142*FR+0.2929*C+0.2929*SUB}SoX: 1v0.4142,3v0.2929,4v02929 2v0.4142,3v0.2929,4v02929function Dmix4sDpl(clip a)    # 4 Channels L,R,C,S{  flr = GetChannel(a, 1, 2)  fcc = GetChannel(a, 3, 3)  lrc = MixAudio(flr, fcc, 0.4142, 0.2929)  //0.4142*FL+0.2929*C 0.4142*FR+0.2929*C  sl  = GetChannel(a, 4)  sr  = Amplify(sl, -1.0)  blr = MergeChannels(sl, sr)  //SUB -1,0*SUB  return MixAudio(flr, blr, 1.0, 0.2929)  //0.4142*FL+0.2929*C+SUB 0.4142*FR+0.2929*C-1.0*SUB}SoX: 1v0.4142,3v0.2929,4 2v0.4142,3v0.2929,4v-1.0function Dmix5Stereo(clip a)  # 5 Channels L,R,C,SL,SR{  flr = GetChannel(a, 1, 2)  fcc = GetChannel(a, 3, 3)  lrc = MixAudio(flr, fcc, 0.3694, 0.2612)  //0.3694*FL+0.2612*C 0.3694*FR+0.2612*C  blr = GetChannel(a, 4, 5)  return MixAudio(lrc, blr, 1.0, 0.3694)  //0.3694*FL+0.2612*C+0.3694*SL 0.3694*FR+0.2612*C+0.3694*SR}SoX: 1v0.3694,3v0.2612,4v0.3694 2v0.3694,3v0.2612,5v0.3694function Dmix5Dpl(clip a)     # 5 Channels L,R,C,SL,SR{  flr = GetChannel(a, 1, 2)  fcc = GetChannel(a, 3, 3)  lrc = MixAudio(flr, fcc, 0.3205, 0.2265)  //0.3205*FL+0.2265*C 0.3205*FR+0.2265*C  bl  = GetChannel(a, 4)  br  = GetChannel(a, 5)  sl  = MixAudio(bl, br, 0.2265, 0.2265)  //0.2265*SL 0.2265*SR  sr  = MixAudio(bl, br, -0.2265, -0.2265)  //-0.2265*SL -0.2265*SR  blr = MergeChannels(sl, sr)  //0.2265*SL-0.2265*SL 0.2265*SR-0.2265*SR  return MixAudio(lrc, blr, 1.0, 1.0)//0.3205*FL+0.2265*C+0.2265*SL-0.2265*SL 0.3205*FR+0.2265*C+0.2265*SR-0.2265*SR}SoX: 1v0.3205,3v0.2265,4v0.2265,4v-0.2265 2v0.3205,3v0.2265,5v0.2265,5v-0.2265function Dmix5Dpl2(clip a)    # 5 Channels FL,LR,C,SL,SR{  flr = GetChannel(a, 1, 2)  fcc = GetChannel(a, 3, 3)  lrc = MixAudio(flr, fcc, 0.3254, 0.2301)  // 0.3254*FL+0.2301*C  0.3254*FR+0.2301*C  bl  = GetChannel(a, 4)  br  = GetChannel(a, 5)  sl  = MixAudio(bl, br, 0.2818, 0.1627)  // 0.2818*SL 0.1627*SR  sr  = MixAudio(bl, br, -0.1627, -0.2818)  // -0.1627*SL -0.2818*SR  blr = MergeChannels(sl, sr)  //0.2818*SL+0.1627*SR -0.1627*SL-0.2818*SR  return MixAudio(lrc, blr, 1.0, 1.0)  //fl' = 0.3254*FL+0.2301*C+0.2818*SL+0.1627*SR  //fr' = 0.3254*FR+0.2301*C-0.1627*SL-0.2818*SR }SoX: 1v0.3254,3v0.2301,4v0.2818,5v0.1627 2v0.3254,3v0.2301,4v-0.1627,5v-0.2818function Dmix6Stereo(clip a) # 6 Channels FL, FR, C, LFE, SL, SR{  flr = GetChannel(a, 1, 2)  fcc = GetChannel(a, 3, 3)  lrc = MixAudio(flr, fcc, 0.3694, 0.2612)  //0.3694*FL+0.2612*C 0.3694*FR+0.2612*C  blr = GetChannel(a, 5, 6)  return MixAudio(lrc, blr, 1.0, 0.3694) //0.3694*FL+0.2612*C+0.3694*SL 0.3694*FR+0.2612*C+0.3694*SR}SoX: 1v0.3694+3v0.2612+4v0.3694 2v0.3694+3v0.2612+5v0.3694function Dmix6Dpl(clip a) # 6 Channels FL, FR, C, LFE, SL, SR{  flr = GetChannel(a, 1, 2)  fcc = GetChannel(a, 3, 3)  lrc = MixAudio(flr, fcc, 0.3205, 0.2265)  //0.3205*FL+0.2265*C 0.3205*FR+0.2265*C  bl  = GetChannel(a, 5)  br  = GetChannel(a, 6)  sl  = MixAudio(bl, br, 0.2265, 0.2265)  //0.2265*SL 0.2265*SR  sr  = MixAudio(bl, br, -0.2265, -0.2265)  //-0.2265*SL -0.2265*SR  blr = MergeChannels(sl, sr)  //0.2265*SL-0.2265*SL 0.2265*SR-0.2265*SR  return MixAudio(lrc, blr, 1.0, 1.0)  //0.3205*FL+0.2265*C+0.2265*SL-0.2265*SL 0.3205*FR+0.2265*C+0.2265*SR-0.2265*SR}SoX: 1v0.3205,3v0.2265+4v0.2265-4v-0.2265 2v0.3205,3v0.2265+5v0.2265-5v-0.2265function Dmix6Dpl2(clip a) # 6 Channels FL, FR, C, LFE, SL, SR{  flr = GetChannel(a, 1, 2)  fcc = GetChannel(a, 3, 3)  lrc = MixAudio(flr, fcc, 0.3254, 0.2301)  //0.3254*FL+0.2301*C 0.3254*FR+0.2301*C  bl  = GetChannel(a, 5)  br  = GetChannel(a, 6)  sl  = MixAudio(bl, br, 0.2818, 0.1627)  //0.2818*SL 1627*SR  sr  = MixAudio(bl, br, -0.1627, -0.2818)  //-0.1627*SL -0.2818*SR  blr = MergeChannels(sl, sr)  //0.2818*SL-0.1627*SL 1627*SR-0.2818*SR  return MixAudio(lrc, blr, 1.0, 1.0)  //0.3254*FL+0.2301*C+0.2818*SL-0.1627*SL 0.3254*FR+0.2301*C+1627*SR-0.2818*SR}SoX: 1v0.3254,3v0.2301,5v0.2818,5v-0.1627 2v0.3254,3v0.2301,6v0.2818,6v-0.1627function Dmix6StereoLfe(clip a) # 6 Channels FL, FR, C, LFE, SL, SR{  flr = GetChannel(a, 1, 2)  fcc = GetChannel(a, 3, 3)  lrc = MixAudio(flr, fcc, 0.2929, 0.2071)  //0.2929*FL+0.2071*C 0.2929*FR+0.2071*C  lfe = GetChannel(a, 4, 4)  lrc = MixAudio(lrc, lfe, 1.0, 0.2071)  //0.2929*FL+0.2071*C+0.2071*SUB 0.2929*FR+0.2071*C+0.2071*SUB  blr = GetChannel(a, 5, 6)  return MixAudio(lrc, blr, 1.0, 0.2929)  //0.2929*FL+0.2071*C+0.2071*SUB+0.2929*SL 0.2929*FR+0.2071*C+0.2071*SUB+0.2929*SR}SoX: 1v0.2929,3v0.2071,4v0.2071,5v0.2929 2v0.2929,3v0.2071,4v0.2071,6v0.2929function Dmix6DplLfe(clip a) # 6 Channels FL, FR, C, LFE, SL, SR{  flr = GetChannel(a, 1, 2)  fcc = GetChannel(a, 3, 3)  lrc = MixAudio(flr, fcc, 0.2613, 0.1847)  //0.2613*FL+0.1847*C  0.2613*FR+0.1847*C  lfe = GetChannel(a, 4, 4)  lrc = MixAudio(lrc, lfe, 1.0, 0.1847)  //0.2613*FL+0.1847*C+0.1847*SUB  0.2613*FR+0.1847*C+0.1847*SUB  bl  = GetChannel(a, 5)  br  = GetChannel(a, 6)  sl  = MixAudio(bl, br, 0.1847, 0.1847)  //0.1847*SL 0.1847*SR  sr  = MixAudio(bl, br, -0.1847, -0.1847)  //-0.1847*SL -0.1847*SR  blr = MergeChannels(sl, sr)  //0.1847*SL-0.1847*SL 0.1847*SR-0.1847*SR  return MixAudio(lrc, blr, 1.0, 1.0)  //0.2613*FL+0.1847*C+0.1847*SUB+0.1847*SL-0.1847*SL 0.2613*FR+0.1847*C+0.1847*SUB+0.1847*SR-0.1847*SR}SoX: 1v0.2613,3v0.1847,4v0.1847,5v0.1847,5v-0.1847 2v0.2613,3v0.1847,4v0.1847,6v0.1847,6v-0.1847function Dmix6Dpl2Lfe(clip a) # 6 Channels FL, FR, C, LFE, SL, SR{  flr = GetChannel(a, 1, 2)  fcc = GetChannel(a, 3, 3)  lrc = MixAudio(flr, fcc, 0.2646, 0.1870)  // 0.2646*FL+0.1870*C  0.2646FR+0.1870*C  lfe = GetChannel(a, 4, 4)  lrc = MixAudio(lrc, lfe, 1.0, 0.1870)  // 0.2646*FL+0.1870*C+SUB*0.1870  0.2646*FR+0.1870*C+SUB*0.1870  bl  = GetChannel(a, 5)  br  = GetChannel(a, 6)  sl  = MixAudio(bl, br, 0.2291, 0.1323)  //  0.2291*SL   0.1323*SR  sr  = MixAudio(bl, br, -0.1323, -0.2291)  //  -0.1323*SL -0.2291*SR  blr = MergeChannels(sl, sr)  // 0.2291*SL+0.1323*SR  -0.1323*SL-0.2291*SR  return MixAudio(lrc, blr, 1.0, 1.0)  //fl' = 0.2646*FL+0.1870*C+SUB*0.1870+0.2291*SL+0.1323*SR  //fr' = 0.2646*FR+0.1870*C+SUB*0.1870-0.1323*SL-0.2291*SR}SoX: 1v0.2646,3v0.1870,4v0.1870,5v0.2991,6v0.1323 2v0.2646,3v0.1870,4v0.1870,5v-0.1323,6v-0.2291
    Zitat

    Wirst Du eine Option einbauen, dass man beim downmix den Subkanal ein- oder ausschliessen kann?

    Man wird je nach Anzahl der Input Kanälen zur Auswahl haben:
    - "toMono"
    - "toStereo"
    - "toStereo (dpl)"
    - "toStereo (dp2)"
    - "toStereo (lfe)"
    - "toStereo (dpllfe)"
    - "toStereo (dpl2fe)"
    genauer:

    Davon ausgegangen das ist soweit alles richtig: Wie sieht das mit dem Upmix aus? Weiß da jemand etwas?
    -> okay was gefunden http://forum.doom9.org/showthread.php?p=787216#post787216 nur wie krieg ich darauf SoX Befehle gebastelt?

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!