Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion. Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules. |
29th December 2005, 16:43 | #1 | Link |
Retired AviSynth Dev ;)
Join Date: Nov 2001
Location: Dark Side of the Moon
Posts: 3,480
|
Sox Audio Effect Filters v1.1 beta
This christmas holiday brought a new filter to extend sound processing support in AviSynth.
This plugin will allow you to run SOX effects within AviSynth. Most effects are supported, and multiple effects can be stacked after eachother. You can download it here: http://forum.doom9.org/showthread.ph...154#post761154 Usage SoxFilter(clip, string effect1 [, string effect 2, string effect 3...]) Any number of effects can be entered, and they will be executed in the order they are specified. Effect syntax is just like SOX. See Effect Overview and Filter Reference below. A simple filter could look like this: Code:
AviSource("movie.avi") SoxFilter("bandpass 500 100") convertAudioTo16Bit() Multiple effects can be stacked like this: Code:
AviSource("movie.avi") SoxFilter("bandpass 2000 1000", "vol 2.0", "reverb 1.0 600.0 180.0 200.0 220.0 240.0") ConvertAudioTo16Bit() * Linear access is heavily recommended. SOX filters doesn't support seeking, so stream is restarted every time a samples previous to the last one is requested. * The AviSynth version is VERY picky about spaces. If you make double spaces or a space before or after the quotes the command will not be recognized. * If one filter doesn't support multichannel audio the entire chain is converted to mono filters, this might affect some filters like "earwax". Use multiple filter instaces instead. * Some filters have been removed since they were incompatible with the AviSynth version. All these filters have internal Avisynth equivalents. * compand is very unstable in the current interface, and doesn't support restarts (distorted audio). Don't use this together with other effetcs. * The length of audio cannot be modified. Feedback and bugs here, but please check if it is not a SOX problem, if possible.
__________________
Regards, sh0dan // VoxPod Last edited by sh0dan; 3rd January 2006 at 00:06. |
29th December 2005, 16:49 | #2 | Link |
BeHappy/MeGUI developer
Join Date: Oct 2003
Location: Moscow, Russia
Posts: 1,727
|
WOW! Thanx a lot!
__________________
BeHappy - AviSynth-based audio transcoding tool Audio encoding via AviSynth On2 VP7 is great in quality but it is unusable for long-term video backup puposes! Sincerely Yours, MCPD/MCTS |
29th December 2005, 17:07 | #3 | Link |
Retired AviSynth Dev ;)
Join Date: Nov 2001
Location: Dark Side of the Moon
Posts: 3,480
|
Just realised I'd left out some options in the docs of the newest version. I'll add them now.
Edit: Page and archives updated.
__________________
Regards, sh0dan // VoxPod Last edited by sh0dan; 29th December 2005 at 17:34. |
3rd January 2006, 00:02 | #6 | Link |
Retired AviSynth Dev ;)
Join Date: Nov 2001
Location: Dark Side of the Moon
Posts: 3,480
|
v 1.1:
* Solved issue with earwax refusing to play. * Solved problem with time alternating effects. * Solved issues with some filters producing clicks. * Made sure compand and mcompand doesn't crash. Still quite buggy though. Attached. Please test, and report your findings here!
__________________
Regards, sh0dan // VoxPod |
3rd January 2006, 03:08 | #7 | Link |
interlace this!
Join Date: Jun 2003
Location: i'm in ur transfers, addin noise
Posts: 4,555
|
that's awesome! thanks a lot!
i'll have to play around with this a tad now. the noise reduction looks interesting, as does the compander/ multiband companding (is there a peak limit as well?). looks like i might be able to speed up some of my audio stuff now btw, happy new year
__________________
sucking the life out of your videos since 2004 |
3rd January 2006, 15:05 | #8 | Link |
interlace this!
Join Date: Jun 2003
Location: i'm in ur transfers, addin noise
Posts: 4,555
|
excellent
it seems its frequency filters are perfectly reconstructible. i would expect it that way anyway, but it's good to know. try this line - it cuts a source into 3 bands, then mixes them back together, then subtracts that from the source. the point being that if you hear anything at all, the filters are not PR. Code:
mixaudio(last,\ mixaudio(last.soxfilter("filter 3000-6000 128"),\ mixaudio(last.soxfilter("filter 0-3000 128"),last.soxfilter("filter 6000-24000 128"),1,1)\ ,1,1)\ ,1,-1) [edit] disregard that. it's because i couldn't find a decent source on my home machine.... ensureVBRmp3sync fixed it. all is right with the world. [edit 2] i'm playing with this a fair bit (as you can no doubt tell), and have noticed that mixaudio seems to be returning 16-bit even though it's fed with float audio. is something amiss? i'm doing my own multiband compression (sox's one seems to only support 2 bands, which is enough for speech but not music if you really want to smash it but avoid pumping) and i need mixaudio at the end to put the bands back together again. i'm getting clipping in the bass and 16-bit audio output though here's my script: Code:
avisource("blah.avi").ensurevbrmp3sync() audiodub(last,wavsource("Led Zeppelin - II.wav")) convertaudiotofloat() c=last band1 = c.soxfilter("filter 0-250 192","compand .05,1. -30,-30,-0,-27.3") band2 = c.soxfilter("filter 250-2500 192","compand .01,.5 -34.3,-34.3,-0,-31.3") band3 = c.soxfilter("filter 2500-12000 192","compand .01,.5 -38.3,-38.3,-0,-34.8") band4 = c.soxfilter("filter 12000-24000 192","compand .01,.5 -34.9,-34.9,-0,-31.8") band2 mixaudio(mixaudio(band1,band2,1,1),mixaudio(band3,band4,1,1),1,1) just in case you're interested, the numbers in the compander are exported from audition, and based on -20dB pink noise with 8:1 compression above -20dB (numbers are different due to each band having different power... i wish i had the maths to do this analytically). the idea behind it is no matter how much you amplify the input (assuming float values that don't have a problem with positive dB), it will always give you a nice eq curve. works okay in audition, but it's hellishly slow and requires intermediate files.
__________________
sucking the life out of your videos since 2004 Last edited by Mug Funky; 3rd January 2006 at 16:42. |
3rd January 2006, 21:22 | #9 | Link | |
Retired AviSynth Dev ;)
Join Date: Nov 2001
Location: Dark Side of the Moon
Posts: 3,480
|
Quote:
__________________
Regards, sh0dan // VoxPod |
|
4th January 2006, 03:36 | #10 | Link |
interlace this!
Join Date: Jun 2003
Location: i'm in ur transfers, addin noise
Posts: 4,555
|
hmm. i could have sworn i was seeing 32 bit audio when not using mixaudio...? i'm trying it here at work and it appears you're right about it returning 16 bit. is it possible my (newer) version of virtualdub at home is actually accepting 32 bits? or is it more likely i was looking at it wrong
btw, is it possible to get 32 bit audio out using avs2wav? sorry to bug you with these questions. i'm quite eager to replace a 2 hour cool edit operation with a 5 min avs one . i'm already getting nice results, but perhaps i should ease back on the loudness and the clipping will go away (i'm still not sure it isn't coming from mixaudio... how does that deal with beyond fullscale stuff in float?)
__________________
sucking the life out of your videos since 2004 |
5th March 2007, 10:40 | #11 | Link |
Registered User
Join Date: Jan 2002
Posts: 112
|
Silence Hangs Sox Plugin
I've been trying to use the compander filter via this sox plugin to do some DRC on some videos I'm splicing together with Aligned Splices. I have to that make avisynth / sox / compander lock up with ++ but not with +. Do you have any suggestions how I might accomplish the aligned splice without causing compander to go off in the weeds?
Thanks! More Info: Okay, it looks like the pure silence that AlignedSplice adds is sending the compander off to never-never land. Here is an example of what bombs when encoding in MeGUI and how to hack around it: Code:
clipA = DirectShowSource("clipA.avi").ConvertToMono().SoxFilter("compand 0.1,0.3 -90,-90,-70,-55,-50,-35,-31,-31,-21,-21,0,-20 0 0 0.1") # NOTE: clipA audio duration < clipA video duration clipB = DirectShowSource("clipB.avi").ConvertToMono().SoxFilter("compand 0.1,0.3 -90,-90,-70,-55,-50,-35,-31,-31,-21,-21,0,-20 0 0 0.1") blank = BlankClip(A) tonal = Tone(blank.AudiolengthF/blank.Audiorate, 440, clipA.Audiorate, 1, "silence", 0.0) works1 = clipA + clipB hangs1 = clipA ++ clipB hangs2 = AudioDubEx(clipA, MixAudio(blank, clipA, 0.0, 1.0)) + clipB works2 = AudioDubEx(clipA, MixAudio(tonal, clipA, 0.0, 1.0)) + clipB Solution: It seems that the last parameter in the "compand" function is what is causing the problem. I copied this black magic from this post: http://forum.doom9.org/showpost.php?...5&postcount=60 As it turns out, even after my ++ replacement hackery, it was still crashing on other samples. Increasing that last parameter from 0.1 to 0.2 made the filter able to accept more and more of my test samples. So far, at 0.2, I am not getting any hangs. Last edited by TheBashar; 5th March 2007 at 21:13. Reason: Added Solution |
14th December 2011, 05:14 | #15 | Link |
Warm and fuzzy
Join Date: Apr 2010
Location: Moscow, Russia
Posts: 201
|
sh0dan
Need following. . I have two video clip with sound track in each. Parameters of sound tracks in different video clips are equal. I need following with sound tracks in video clips, like as video contetnt, Sound1 - Sound2 (mines) or similar to function Subtract() in video content, but for sound tracks... Sound1=A1 * Sin(2 * PI * f1 * t1 + fi1) Sound2=A2 * Sin(2 * PI * f2 * t2 + fi2) where A1, A2 - amplitude of sound wave f1, f2 - frequency of sound wave t1, t2 - time, in our case are equal t1 = t2 = t fi1, fi2 - phase of sound wave PI = 3.1415926 Sound = Sound1 - Sound2 = A1 * Sin(2 * PI * f1 * t + fi1) - A2 * Sin(2 * PI * f2 * t + fi2) for each time counting How can I do this ? Maybe update SoxFilter() for subtraction audio tracks in clips, for (as) example, SoxFilter(clip1, clip2, string "subtract") and return result subtraction clip (audio subtraction), if (clip2 != NULL) ... And so on... Last edited by Jenyok; 14th December 2011 at 10:22. |
14th December 2011, 12:18 | #16 | Link |
Avisynth language lover
Join Date: Dec 2007
Location: Spain
Posts: 3,431
|
|
14th December 2011, 16:57 | #17 | Link |
Warm and fuzzy
Join Date: Apr 2010
Location: Moscow, Russia
Posts: 201
|
This is a simple Pseudo Stereo Algorythm for mono audio track.
Based on physic's laws. For you usage... It works fine (for me)... . Code:
# # Pseudo Stereo algorythm # Based on physic's laws # audio = BassAudioSource("...your sound file...") audio = GetChannel(audio, 1) # Get MONO signal Left channel -> Получаем левый канал, звук "МОНО" audio = ConvertToMono(audio) left_channel = audio right_channel = DelayAudio(audio, 0.0121) # t=0.0121 sec (v=331 m/sec) ~4 m between sound source L and R in room -> 0.0121 сек (331 м/сек) ~ 4 м между источниками звука L и R left_channel = Normalize(left_channel, 0.99) right_channel = Normalize(right_channel, 0.99) left_channel_delay = DelayAudio(left_channel, 0.000755) # t=0.000775 sec (v=331 m/sec) ~0.25 m between ears -> 0.000755 сек (331 м/сек) ~ 0.25 м (25 см) среднее расстояние между "ушами" right_channel_delay = DelayAudio(right_channel, -0.000755) # t=0.000775 sec (v=331 m/sec) ~0.25 m between ears -> 0.000755 сек (331 м/сек) ~ 0.25 м (25 см) среднее расстояние между "ушами" left_channel = MixAudio(left_channel, right_channel_delay, 0.6, 0.4) right_channel = MixAudio(right_channel, left_channel_delay, 0.6, 0.4) left_channel = Normalize(left_channel, 0.99) right_channel = Normalize(right_channel, 0.99) stereo = MergeChannels(left_channel, right_channel) stereo = Normalize(stereo, 0.99) This is a New Pseudo Stereo Algorythm for mono audio track. Algorythm is described in Russian magazine "Radio" №7 1982 year. For you usage... It works fine (for me)... . Code:
# # New pseudo Stereo algorythm # Radio Magazine 07-1982, page 47-50 # # # Plugins: # # SoxFilter() # LoadPlugin("C:\PROGRAM FILES\AVISYNTH 2.5\PLUGINS\SOXFILTER_11\soxfilter.dll") # Constants # K2 = 0.5 # K2 = [0.00 .. 1.00] FNCH = 300.00 # Low Pass Filter (ФНЧ) = [150 .. 500] Hz (Гц) SLevel = 1.00 # Sound Volume Level (Уровень звука) = [0.75 .. 1.00] # Constants # ! Do not change this constants ! # Kf1 = 0.17 # ! Do not change this constant ! Kf2 = 0.83 # ! Do not change this constant ! Kf3 = 1.83 # ! Do not change this constant ! Kf4 = 2.00 # ! Do not change this constant ! KLevel = 0.85 # ! Do not change this constant ! # Требует небольшой подстройки под конктретный звук SQRT2 = 1.414 # Square root 2 (Корень из 2) # Constants # LChannel = 1 # Get Left Channel (Левый канал) LowPass = "lowpass " # Low Pass Filter (ФНЧ) HighPass = "highpass " # High Pass Filter (ФВЧ) VLevel = "vol " # Volume Level normalization # Constants # SLevel2 = 2.00 # Sound Volume Level (Уровень звука) = [1.00 .. 3.00] # First Sound Volume Level normalization SLevel3 = 10.0 # Final Sound Volume Level normalization # Variables # # RightChannel # LeftChannel # LeftChannel2 # Mono signal (Моно сигнал), work variable... # Afnch # Bfvch # Stereo # # EqC1 # Variable # EqC2 # Variable # EqC3 # Variable # EqC4 # Variable # # EqZL # Variable # EqZR # Variable K2 = (K2 < 0.00) ? 0.00 : (K2 > 1.00) ? 1.00 : K2 FNCH = (FNCH < 150.00) ? 150.00 : (FNCH > 500.00) ? 500.00 : FNCH SLevel = (SLevel < 0.75) ? 0.75 : (SLevel > 1.00) ? 1.00 : SLevel SLevel2 = (SLevel2 < 1.00) ? 1.00 : (SLevel2 > 3.00) ? 3.00 : SLevel2 BlankClip(length=72250, width=768, height=576, audio_rate=44100, fps=25.0) # Only for test Left=WAVSource("C:\Z_DISK_C\PICTURE\JENYOK\SCHOOL_47_KURGAN\VIDEO\DVD 25YEARS DISK6 ФИЛЬМ УЧИТЕЛЬ V1_00 (OLD, +AVI, +AVS)\ZAVS\teacher t01 2_0ch 256kbps 44.1khz.wav") LeftChannel2 = Left.KillVideo() # Get Audio Channel, kill Video content #LeftChannel2 = GetChannel(LeftChannel2, LChannel).KillVideo() # Get Audio Channel, kill Video content LeftChannel2 = ConvertToMono(LeftChannel2) LeftChannel2 = SoxFilter(LeftChannel2, VLevel+String(SLevel2)) # Normalize sound Volume Level = SLevel2 # # Afnch = LowPass_Filter(LeftChannel2, FNCH) # # # Bfvch = LeftChannel2 - Afnch # # Bfvch = HighPass_Filter(Bfvch, FNCH) # # # LeftChannel = SQRT(2) * (Afnch - 2 * K2 * Afnch + 1.83 * K2 * LeftChannel2 - 0.83 * K2 * K2 * LeftChannel2) # # RightChannel = SQRT(2) * (Bfvch + 2 * K2 * Afnch - 0.17 * K2 * LeftChannel2 - 0.83 * K2 * K2 * LeftChannel2) # Afnch = SoxFilter(LeftChannel2, LowPass+String(FNCH)) # 300 Hz (Гц) Low Pass Filter (ФНЧ 300 Гц) Afnch = SoxFilter(Afnch, VLevel+String(SLevel)) # Normalize sound Volume Level = SLevel Bfvch = MixAudio(LeftChannel2, Afnch, 1.0, -1.0) # Bfvch = SoxFilter(Bfvch, VLevel+String(SLevel*KLevel)) # Normalize sound Volume Level = SLevel*KLevel Bfvch = SoxFilter(Bfvch, HighPass+String(FNCH)) # 300 Hz (Гц) High Pass Filter (ФВЧ 300 Гц) Bfvch = SoxFilter(Bfvch, VLevel+String(SLevel)) # Normalize sound Volume Level = SLevel EqC1 = SoxFilter(Afnch, VLevel+String(Kf4 * K2)) EqC2 = SoxFilter(LeftChannel2, VLevel+String(Kf3 * K2)) EqC3 = SoxFilter(LeftChannel2, VLevel+String(Kf2 * K2 * K2)) EqC4 = SoxFilter(LeftChannel2, VLevel+String(Kf1 * K2)) EqZL = MixAudio(Afnch, EqC1, 1.0, -1.0) EqZL = SoxFilter(EqZL, VLevel+String(SLevel)) # Normalize sound Volume Level = SLevel EqZL = MixAudio(EqZL, EqC2, 0.5, 0.5) EqZL = SoxFilter(EqZL, VLevel+String(SLevel)) # Normalize sound Volume Level = SLevel EqZL = MixAudio(EqZL, EqC3, 1.0, -1.0) EqZL = SoxFilter(EqZL, VLevel+String(SLevel)) # Normalize sound Volume Level = SLevel EqZR = MixAudio(Bfvch, EqC1, 0.5, 0.5) EqZR = SoxFilter(EqZR, VLevel+String(SLevel)) # Normalize sound Volume Level = SLevel EqZR = MixAudio(EqZR, EqC4, 1.0, -1.0) EqZR = SoxFilter(EqZR, VLevel+String(SLevel)) # Normalize sound Volume Level = SLevel EqZR = MixAudio(EqZR, EqC3, 1.0, -1.0) EqZR = SoxFilter(EqZR, VLevel+String(SLevel)) # Normalize sound Volume Level = SLevel LeftChannel = SoxFilter(EqZL, VLevel+String(SQRT2)) RightChannel = SoxFilter(EqZR, VLevel+String(SQRT2)) Stereo = MergeChannels(LeftChannel, RightChannel) Stereo = SoxFilter(Stereo, VLevel+String(SLevel3)) # Normalize sound Volume Level = SLevel3 Stereo = ConvertAudioTo16bit(Stereo) AudioDub(last, Stereo) ConvertToYUY2() Last edited by Jenyok; 15th December 2011 at 20:40. |
8th January 2012, 12:35 | #19 | Link |
Warm and fuzzy
Join Date: Apr 2010
Location: Moscow, Russia
Posts: 201
|
This is a 5.1 Audio Algorythm for stereo audio track.
Algorythm is described in internet. For you usage... It works fine (for me)... Only it is needed more better reverberation effect from SoxFolter() function, such as for example, "Adobe Audition CS5.5 -> Effects -> Reverb -> Big Drum Room" ... Reverberation effect in SoxFilter() function is very slow. Code:
# # 5.1 Audio Algorythm for stereo audio track # # # Plugins: # # SoxFilter() # LoadPlugin("C:\PROGRAM FILES\AVISYNTH 2.5\PLUGINS\SOXFILTER_11\soxfilter.dll") function StereoTo51(clip clp) { # Output # # 5.1 sound 24 bits # Constants # # WAV 2.0 stereo # 1 - Left channel # 2 - Right channel # # WAV 5.1 channels # 1 - Lf Front Left channel # 2 - Rf Front Right channel # 3 - C Front Central channel # 4 - LFE Subwoofer # 5 - Ls Rear Left channel # 6 - Rs Rear Right channel # LChannel = 1 # Set default Left Channel (Левый канал) RChannel = 2 # Set default Right Channel (Правый канал) VLevel0 = "vol 0.0 dB" # Volume Level normalization to 0.0 dB VLevel03 = "vol 3.0 dB" # Volume Level normalization to 3.0 dB VLevel361 = "vol 3.61 dB" # Volume Level normalization to 3.61 dB VLevel6 = "vol 6.0 dB" # Volume Level normalization to 6.0 dB VLevel9 = "vol 9.0 dB" # Volume Level normalization to 9.0 dB VLevel3 = "vol -3.0 dB" # Volume Level normalization to -3.0 dB VLevel12 = "vol -12.0 dB" # Volume Level normalization to -12.0 dB HPass = "highpass 200.0" # HighPass Filter 200 Hz "/---" LPass = "lowpass 200.0" # LowPass Filter 200 Hz "---\" Reverb = "reverb 0.4 700 262 350 175" # reverbe time 700 -> delay time [350 .. 175] Stereo = KillVideo(clp) # Get Audio Channels, kill Video content Stereo = GetChannels(Stereo, LChannel, RChannel) # Get Left and Right Audio Channels (stereo) # Convert audio stereo signal to 32 bits (SoxFilter() function) # Normalize to 0.0 dB # Stereo = SoxFilter(Stereo, VLevel0) # Normilize audio Stereo to 0.0 dB # Work audio stereo signal # Normalize to -12.0 dB # LR = SoxFilter(Stereo, VLevel12) # Normilize audio LR to -12.0 dB # Work audio stereo signal2 # LRm = HighPass_Filter(LR, 200) # LRm = SoxFilter(LR, HPass) # HighPass Filter 200 Hz LRm "/---" # LFE = LR - LRm # LFE = LowPass_Filter(LFE, 200) # LFE = MixAudio(LR, LRm, 1.0, -1.0) # LFE = LR - LRm LFE = SoxFilter(LFE, LPass) # LowPass Filter 200 Hz LFE "---\" LFE = SoxFilter(LFE, VLevel9) # Normilize audio LFE to 9.0 dB LFEl = GetChannel(LFE, LChannel) # LFEl = Left_channel(LFE) LFEl = ConvertToMono(LFEl) LFEr = GetChannel(LFE, RChannel) # LFEr = Right_channel(LFE) LFEr = ConvertToMono(LFEr) LFE = MixAudio(LFEl, LFEr, 0.5, 0.5) # LFE = LFEl + LFEr LFE = ConvertToMono(LFE) LFE = ConvertAudioTo24bit(LFE) # LFE (Subwoofer) audio mono signal 24 bits # # C = SoxFilter(LRm, VLevel3) # Normilize audio C to -3.0 dB Cl = GetChannel(C, LChannel) # Cl = Left_channel(C) Cl = ConvertToMono(Cl) Cr = GetChannel(C, RChannel) # Cr = Right_channel(C) Cr = ConvertToMono(Cr) C = MixAudio(Cl, Cr, 0.5, 0.5) # C = 0.707 * Cl + 0.707 * Cr C = SoxFilter(C, VLevel03) # Normilize audio C to 3.0 dB C = ConvertToMono(C) C = ConvertAudioTo24bit(C) # C central audio mono signal 24 bits # # Lc1 = GetChannel(LRm, LChannel) # Lc1 = Left_channel(LRm) Lc1 = ConvertToMono(Lc1) Rc1 = GetChannel(LRm, RChannel) # Rc1 = Right_channel(LRm) Rc1 = ConvertToMono(Rc1) NLc1 = MixAudio(Lc1, Rc1, 0.99, -0.33) # Lc = 0.99 * Lc - 0.33 * Rc NRc1 = MixAudio(Rc1, Lc1, 0.99, -0.33) # Rc = 0.99 * Rc - 0.33 * Lc LfRf = MergeChannels(NLc1, NRc1) # Merge channels to stereo singal LfRf LfRf = SoxFilter(LfRf, VLevel361) # Normilize audio LfRf to 3.61 dB, 32 bits # # LRm_reverb = SoxFilter(LRm, Reverb) # LRm_reverb = Reverberation(LRm) LRm_reverb = MixAudio(LRm_reverb, LRm, 1.0, -1.0) # LRm_reverb = LRm_reverb - LRm LRm_reverb = SoxFilter(LRm_reverb, VLevel6) # Normilize audio LRm_reverb to 6.0 dB Ls = GetChannel(LRm_reverb, LChannel) # Ls = Left_channel(LRm_reverb) Ls = ConvertToMono(Ls) Ls = ConvertAudioTo24bit(Ls) # Ls rear left channel mono signal 24 bits Rs = GetChannel(LRm_reverb, RChannel) # Rs = Right_channel(LRm_reverb) Rs = ConvertToMono(Rs) Rs = ConvertAudioTo24bit(Rs) # Rs rear right channel mono signal 24 bits # # LfRf = MixAudio(LfRf, LRm_reverb, 1.0, -1.0) # LfRf = LfRf - LRm_reverb Lf = GetChannel(LfRf, LChannel) # Lf = Left_channel(LfRf) Lf = ConvertToMono(Lf) Lf = ConvertAudioTo24bit(Lf) # Lf front left channel mono signal 24 bits Rf = GetChannel(LfRf, RChannel) # Rf = Right_channel(LfRf) Rf = ConvertToMono(Rf) Rf = ConvertAudioTo24bit(Rf) # Rf front right channel mono signal 24 bits Lf = SoxFilter(Lf, VLevel0) Rf = SoxFilter(Rf, VLevel0) C = SoxFilter(C, VLevel0) LFE = SoxFilter(LFE, VLevel0) Ls = SoxFilter(Ls, VLevel0) Rs = SoxFilter(Rs, VLevel0) Sound51 = MergeChannels(Lf, Rf, C, LFE, Ls, Rs) Sound51 = ConvertAudioTo24bit(Sound51) return (Sound51) # Only for debugging # return (ConvertAudioTo16bit(MergeChannels(Lf, Rf, C, LFE, Ls, Rs))) # return (ConvertAudioTo16bit(Stereo)) # return (ConvertAudioTo16bit(LR)) # return (ConvertAudioTo16bit(LRm)) # return (ConvertAudioTo16bit(LFE)) # return (ConvertAudioTo16bit(C)) # return (ConvertAudioTo16bit(LfRf)) # return (ConvertAudioTo16bit(LRm_reverb)) } sh0dan If you are not hard, please, see "Adobe Audition CS5.5 -> Effects -> Reverb -> Big Drum Room" function and try to do SoxFilter() as copy of this Adobe function... Very very need it !!! 5.1 Audio Algorythm will work more good, more better... . Thanks a lot... Last edited by Jenyok; 8th January 2012 at 13:10. |
Thread Tools | Search this Thread |
Display Modes | |
|
|