Re: channel manipulation
"Patrick Shirkey" <[email protected]>
| Newsgroups | gmane.comp.audio.ecasound.general |
|---|---|
| Message-ID | <[email protected]> |
On Sat, September 29, 2012 7:56 pm, Joel Roth wrote: > On Sat, Sep 29, 2012 at 07:41:02PM +1000, Patrick Shirkey wrote: >> >> On Sat, September 29, 2012 7:25 pm, Joel Roth wrote: >> > On Sat, Sep 29, 2012 at 06:54:11PM +1000, Patrick Shirkey wrote: >> > >> >> On Sat, September 29, 2012 6:14 pm, Joel Roth wrote: >> >> > Hi Patrick, >> >> > >> >> > You mention the learning curve of Ecasound. I think it >> >> > reflects the curve of learning to think in >> >> > terms of audio streams and operators for manipulating >> >> > them. Similar difficulties dog those who would exercise >> >> > the full capabilities of ALSA using .alsarc files. >> >> > >> >> >> >> It's more about the syntax. Being text based it is easy to make >> mistakes >> >> in the signal flow but I am getting my head around it now. It's an >> >> elegant >> >> way of getting things done once you know what you are doing. >> > >> > Yes, elegant and yes, with syntactical requirements like >> > any programming language. >> > >> >> The input file is a stereo track. The output file is a 6 channel >> track. >> > >> > Oops. >> > >> >> >> converter script: >> >> >> >> >> >> ecasound -t 5 -f:s16_be,6,48000 \ >> >> >> -a:1,2,3,4,5,6 -i TEST_1-2.aif \ # each chain 1-6 gets a copy of >> six >> >> >> channel audio >> >> >> -a:1 -chmute:2 \ # chain 1, channel 2 is muted, other 5 channels >> >> alive >> >> >> -a:2 -chmute:1 \ # chain 2, channel 1 is muted, other 5 channels >> >> alive >> >> >> -a:3 -chmix:3 \ # chain 3, all six channels mixed to channel 3 >> >> >> -a:4 -chmix:4 \ # chain 4, all six channels mixed to channel 4 >> >> >> -a:5 -chmute:1 \# chain 5, channel 1 is muted, other 5 channels >> >> alive >> >> >> -a:6 -chmute:2 \ # chain 6, channel 2 is muted, other 5 channels >> >> alive >> >> >> -a:5,6 -o loop,1 \ # chains 5 and 6 summed to loop device loop,1 >> >> >> -a:7,8 -i loop,1 \ # chains 7 and 8 each get copy of loop,1 stream >> >> >> -a:7 -ea:200 -chmix:5 \ # chain 7, all channels amplified, then >> >> > # summed in channel 5 >> >> >> -a:8 -chmix:6 \ # chain 8, all channels summed in channel >> 6 >> >> >> -a:all -o test-out.wav # all channels in all chains summed to >> >> >> test-out.wav >> >> > >> >> > >> >> > I think this may not be what you want to accomplish, because >> >> > you're summing lots of copies of the same channels. >> >> > >> >> >> >> The input track is a stereo track so I am only summing copies of the >> >> left >> >> and right signal input signal. The output track is a 6 channel >> track. I >> >> have removed all the additional processing filters to minimise >> confusion >> >> ;-) >> > >> > Okay, well the comments above still apply, even if the input >> > is just two channels. :-) >> > >> >> Yep. So should that result in silence on channels 5,6 ? >> >> > >> >> >> +++ >> >> >> >> >> >> ecasound: ERROR: [ECA-SESSION] : "Invalid argument, unable to >> parse: >> >> >> "-chmix:5"" >> >> >> >> >> >> ecasound -t 5 -f:s16_be,6,48000 \ >> >> >> -a:1,2,3,4,5,6 -i TEST_1-2.aif \ >> >> >> -a:1 -chmute:2 \ >> >> >> -a:2 -chmute:1 \ >> >> >> -a:3 -chmix:3 \ >> >> >> -a:4 -chmix:4 \ >> >> >> -a:5 -chmute:1 \ >> >> >> -a:6 -chmute:2 \ >> >> >> -a:5,6 -chmix:5 -chcopy:5,6 \ >> >> >> -a:all -o test-out.wav >> >> >> >> >> >> +++ >> >> > >> >> > Not sure what differently you want to accomplish >> >> > with this second command. >> >> >> >> With the first command I get silence on channels 5,6 output. With the >> >> second command I am trying to chmix a:5,6 to channel 5 to see if that >> >> gives me an audible signal on the output track. However it fails for >> >> some >> >> reason. It doesn't want to chmix chain 5 and 6 at the same time. It >> is >> >> happy to do them individually for chain 3 and 4. I'm not sure why >> that >> >> would be a problem though. >> > >> > I would try creating your setup in small pieces and testing >> > each piece. If you can get a good result processing >> > chains separately, I would go for that. >> > >> >> Ok, With the multi pass approach I have to do the following: >> >> 1: Create a four channel track with the correct filters >> 2: Create a mono track with the left signal inverted >> 3: Create a new mono track with the track from step 2 summed with the >> right channel from the original file >> 4: Apply my filters on the mono track from step 3 and output a stereo >> track >> 5; Combine the 4 channel track from step 1 with the stereo track from >> step >> 4 and write a new 6 channel track > > Good to read your complete requirement. I agree with your > decision to solve them at the Ecasound chain setup level rather > than with Ardour, Nama etc. > > What I'm recommending is that you write and test in small > pieces, adding functionality in each iteration. When it's all > running well, you can do your big processing in one go. > processing channels 1-4 works fine. It's just 5,6 that are not working for me. Has anyone else had any luck with 6 channel output? >> That by itself is not a problem but it will add a lot more time to my >> processing task I have over 30 hours of audio to process, so I would >> prefer to use a single pass solution if possible. Anyway for now I will >> program the steps above and if someone has an idea on why the single >> pass >> chain does not work then I will be happy to modify it. >> >> > You may also find it easier (as I do) to write your commands to a file >> > (e.g. Setup.ecs) and load it with >> > >> > ecasound -c -s Setup.ecs >> > >> >> I already have a bash script so I'm running it like this: >> >> sh convert.sh > > If you do it as I recommend, you can use Ecasound's > diagnostic commands (es, cs, fs) to check if your > written setup matches what you actually want. > > Then you can use the 'start' command to run > the audio engine. > Can I load multiple chain setups and run them in parallel with this method? -- Patrick Shirkey Boost Hardware Ltd ------------------------------------------------------------------------------ How fast is your code? 3 out of 4 devs don\\\'t know how their code performs in production. Find out how slow your code is with AppDynamics Lite. http://ad.doubleclick.net/clk;262219672;13503038;z? http://info.appdynamics.com/FreeJavaPerformanceDownload.html _______________________________________________ Ecasound-list mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/ecasound-list