<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Jan 1, 2023 at 5:21 PM Andrew Randrianasulu <<a href="mailto:randrianasulu@gmail.com">randrianasulu@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Jan 1, 2023 at 12:57 PM Paul B Mahol <<a href="mailto:onemda@gmail.com" target="_blank">onemda@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Jan 1, 2023 at 7:36 AM Andrew Randrianasulu <<a href="mailto:randrianasulu@gmail.com" target="_blank">randrianasulu@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto"><div><br><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">вс, 1 янв. 2023 г., 09:10 Terry Corbet <<a href="mailto:tcorbet@ix.netcom.com" rel="noreferrer" target="_blank">tcorbet@ix.netcom.com</a>>:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">I have recently discovered how to use the Audacity Envelope Tool to turn <br>
a standard stereo MP3 file into a modified one in which throughout the <br>
entire duration of the clip the apparent source of the sounds will <br>
traverse from left to right. </blockquote></div></div><div dir="auto"><br></div><div dir="auto">may be pan filter can do something by altering volumes of individual channels but as far as I can see you can't change its parameters at runtime?</div><div dir="auto"><br></div><div dir="auto"><a href="https://ffmpeg.org/ffmpeg-filters.html#Changing-options-at-runtime-with-a-command" rel="noreferrer" target="_blank">https://ffmpeg.org/ffmpeg-filters.html#Changing-options-at-runtime-with-a-command</a><br></div><div dir="auto"><br></div><div dir="auto">====</div><div dir="auto"><div dir="auto">Filter pan</div><div dir="auto">  Remix channels with coefficients (panning).</div><div dir="auto">    Inputs:</div><div dir="auto">       #0: default (audio)</div><div dir="auto">    Outputs:</div><div dir="auto">       #0: default (audio)</div><div dir="auto">pan AVOptions:</div><div dir="auto">   args              <string>     ..F.A......</div><div dir="auto">===</div><div dir="auto"><br></div><div dir="auto">no T , as you can see (ffmpeg 5.1)</div></div><div dir="auto"><br></div><div dir="auto">I wonder if our software (cinelerra-gg, video editor, so a bit heavyweight) can do this via built-in keyframing .. I'll ask on our maillist.</div><div dir="auto"><br></div></div></blockquote><div><br></div><div>Nope, your software can't do it.</div><div><br></div><div>Use ffmpeg's stereotools filter with asendcmd. Supports runtime changing of parameters.</div></div></div></blockquote><div><br></div><div><br></div><div>Thanks for suggestion! Yes, fully automatic panning on variable length clips probably not easy to automate in CinGG <br></div><div>(even in bath mode). But I opened said filter (stereotools) and apparently I can set cingg plugin keyframes for its internal parameters ..</div><div><br></div><div>I do not think we have timeline support for ff filters, but does this system offer any advantage in our case?<br></div></div></div></blockquote><div><br></div><div><br></div><div> Timeline and runtime changeable parameters are different things, they are not same.</div><div><br></div><div>Timeline just disables/bypass processing in certain time frames. While runtime parameters can be changed at any time frame.</div><div>But parameters can also be slowly interpolated so that no artifacts appear upon changes.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto"><div dir="auto"></div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"> While I could use that workflow to <br>
manually perform the same transformation on multiple files, for my own <br>
use as well as to help other family members [who generally have limited <br>
computer skills] I want to automate that workflow.<br>
<br>
Over the past four days I have played as much catch-up on the many <br>
topics and toolkits which appear might permit me to engineer a software <br>
solution to this requirement.  As a newbie, I probably will not <br>
correctly summarize what I believe to be the possible tools and <br>
approaches, so please forgive any misuse to the correct terminology.  I <br>
hope/believe that I might be able to state my concepts/questions in a <br>
manner which will be most considerate of the time of those who <br>
participate in this mailing list and most quickly help me move closer to <br>
a good approach to the challenge.<br>
<br>
01.  I have managed to download the libraries which are used for the <br>
maintenance of the ffmpeg, ffprobe and ffplay triumvirate of tools.<br>
<br>
02.  I have managed to successfully build some sample C programs [taken <br>
from the doc\examples sub-directory and other miscellaneous snippets <br>
found by following the wonderful links from your Wiki] using the <br>
CodeBlocks IDE framework.<br>
<br>
03.  I have squirreled my way through the parts of the Doxygen <br>
documentation which seem like they would be most apropos.<br>
<br>
What I did not discover was any functions or examples of what I assumed <br>
I would be needing to do, which essential would be to process the audio <br>
frames of the FrontLeft [FL]  and FrontRight [FR] channels of coming out <br>
of a stream of packets.  That caused me to think that perhaps I would <br>
find examples of that processing by searching the Audacity sources to <br>
learn when and how they use the ffmpeg libraries.  And somewhere between <br>
the Audacity and FFmpeg sites I stumbled upon some sources and some <br>
documentation concerning what I suppose are two reasonable libraries <br>
devoted to "resampling" -- soxr and swr.<br>
<br>
It was about at that point that I concluded that my modification of the <br>
sampled frames probably does not fall within the ambit of what is meant <br>
by resampling at all and that led to an investigation of what Nyquist <br>
was all about.  Wow, what a guy Mr. Dannenberg must be.  The 2007 <br>
Nyquist Reference Manual is a jaw-dropping read.<br>
<br>
I think that is enough background/context.  Here's were I would <br>
appreciate any suggestions:<br>
<br>
A.  Would it be possible to accomplish the steps necessary to achieve <br>
the desired result just using ffmpeg.exe?  I imagine that, using the <br>
command line tool and an appropriate shell scripting language, it might <br>
be necessary to make multiple passes of the original .mp3 file and/or <br>
the two separate channels.  I am not concerned about that loss of <br>
throughput; it will always be far faster than any manual procedure.<br>
<br>
B.  Nonetheless, there are some advantages that would accrue from <br>
accomplishing the work entirely in an application .exe with a little GUI <br>
glitter to help the user be able to attempt some trial-and-error <br>
[preview] with slight changes in some of the parameters of the task <br>
depending upon the nature of the audio content and the manner in which <br>
the user will eventually play the output on different devices in <br>
different environments.  Since I will not have the capabilities for <br>
building an Envelope in the manner that Nyquist [Lisp] accomplishes <br>
that, can anyone point me to any sample code doing that in C with the <br>
eight ffmpeg .dll libraries?<br>
<br>
C.  Or -- and I appreciate that it is not fair to ask this of this mail <br>
group -- but I would appreciate any experience/advice as to whether the <br>
solution really ought to be accomplished by some scripting and/or macro <br>
facilities wrapped around Audacity?<br>
<br>
Thank you so much for the fantastic capabilities you have provided with <br>
the entire FFmpeg effort and for your patience in reading through my <br>
questions as the bell is about to strike on the New Year.<br>
<br>
_______________________________________________<br>
Libav-user mailing list<br>
<a href="mailto:Libav-user@ffmpeg.org" rel="noreferrer noreferrer" target="_blank">Libav-user@ffmpeg.org</a><br>
<a href="https://ffmpeg.org/mailman/listinfo/libav-user" rel="noreferrer noreferrer noreferrer" target="_blank">https://ffmpeg.org/mailman/listinfo/libav-user</a><br>
<br>
To unsubscribe, visit link above, or email<br>
<a href="mailto:libav-user-request@ffmpeg.org" rel="noreferrer noreferrer" target="_blank">libav-user-request@ffmpeg.org</a> with subject "unsubscribe".<br>
</blockquote></div></div></div>
_______________________________________________<br>
Libav-user mailing list<br>
<a href="mailto:Libav-user@ffmpeg.org" target="_blank">Libav-user@ffmpeg.org</a><br>
<a href="https://ffmpeg.org/mailman/listinfo/libav-user" rel="noreferrer" target="_blank">https://ffmpeg.org/mailman/listinfo/libav-user</a><br>
<br>
To unsubscribe, visit link above, or email<br>
<a href="mailto:libav-user-request@ffmpeg.org" target="_blank">libav-user-request@ffmpeg.org</a> with subject "unsubscribe".<br>
</blockquote></div></div>
_______________________________________________<br>
Libav-user mailing list<br>
<a href="mailto:Libav-user@ffmpeg.org" target="_blank">Libav-user@ffmpeg.org</a><br>
<a href="https://ffmpeg.org/mailman/listinfo/libav-user" rel="noreferrer" target="_blank">https://ffmpeg.org/mailman/listinfo/libav-user</a><br>
<br>
To unsubscribe, visit link above, or email<br>
<a href="mailto:libav-user-request@ffmpeg.org" target="_blank">libav-user-request@ffmpeg.org</a> with subject "unsubscribe".<br>
</blockquote></div></div>
_______________________________________________<br>
Libav-user mailing list<br>
<a href="mailto:Libav-user@ffmpeg.org" target="_blank">Libav-user@ffmpeg.org</a><br>
<a href="https://ffmpeg.org/mailman/listinfo/libav-user" rel="noreferrer" target="_blank">https://ffmpeg.org/mailman/listinfo/libav-user</a><br>
<br>
To unsubscribe, visit link above, or email<br>
<a href="mailto:libav-user-request@ffmpeg.org" target="_blank">libav-user-request@ffmpeg.org</a> with subject "unsubscribe".<br>
</blockquote></div></div>