|
Remember, I'm the audiot of the group, but I've had this idea for a
while now and thought I'd give it a go. Since I did the FindClipping effect, I always thought it would be a simple matter of integrating the guts of Dominic's Repair effect to create a clipping fixer. After all, that's actually what the Repair effect was before Dominic made it more generalized. Problem was you had to fix each clip manually. So, I hacked together the Find Clipping and Repair effects and it seems to work okay. If it doesn't appear to fix the clipping the first time, just do it again. You can grab it here: http://homerow.net/audacity/fixclipping.zip Now, here's the bonus... This is a dynamically loadable effect. Within the zip, Windows users will find a DLL that you just copy over to the Audacity Modules directory. Then, get back into Audacity and you should find a "Fix Clipping..." item on the Effects menu. (Mac and Linux users will have to build the .so themselves.) For rebuilding, look at the readme.txt file. The Windows project for this is a decent example of how to build modules outside of the Audacity source tree. There needs to be some cleanup in the Audacity source so that the list of includes could be shortened (we shouldn't have to include PortAudio or PortMixer for an Effect), but it just shows how one might build these animals. Leland ------------------------------------------------------------------------------ This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword _______________________________________________ audacity-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/audacity-devel |
|
Administrator
|
Excellent, especially that you implemented it as a module. Should
provide a model for Simone's work? - V Leland wrote: > Remember, I'm the audiot of the group, but I've had this idea for a > while now and thought I'd give it a go. Since I did the FindClipping > effect, I always thought it would be a simple matter of integrating the > guts of Dominic's Repair effect to create a clipping fixer. After all, > that's actually what the Repair effect was before Dominic made it more > generalized. Problem was you had to fix each clip manually. > > So, I hacked together the Find Clipping and Repair effects and it seems > to work okay. If it doesn't appear to fix the clipping the first time, > just do it again. > > You can grab it here: > > http://homerow.net/audacity/fixclipping.zip > > Now, here's the bonus... > > This is a dynamically loadable effect. Within the zip, Windows users > will find a DLL that you just copy over to the Audacity Modules > directory. Then, get back into Audacity and you should find a "Fix > Clipping..." item on the Effects menu. (Mac and Linux users will have > to build the .so themselves.) > > For rebuilding, look at the readme.txt file. > > The Windows project for this is a decent example of how to build modules > outside of the Audacity source tree. There needs to be some cleanup in > the Audacity source so that the list of includes could be shortened (we > shouldn't have to include PortAudio or PortMixer for an Effect), but it > just shows how one might build these animals. > > Leland > > > > > > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by: > SourcForge Community > SourceForge wants to tell your story. > http://p.sf.net/sfu/sf-spreadtheword > _______________________________________________ > audacity-devel mailing list > [hidden email] > https://lists.sourceforge.net/lists/listinfo/audacity-devel > > ------------------------------------------------------------------------------ This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword _______________________________________________ audacity-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/audacity-devel |
|
In reply to this post by Leland (Audacity Team)
Quoting Leland <[hidden email]>:
> Now, here's the bonus... > > This is a dynamically loadable effect. Within the zip, Windows users > will find a DLL that you just copy over to the Audacity Modules > directory. Then, get back into Audacity and you should find a "Fix > Clipping..." item on the Effects menu. (Mac and Linux users will have > to build the .so themselves.) Forgot to mention...you need to update Audacity from CVS and rebuild. It didn't export the necessary interfaces to make this a module. Leland ------------------------------------------------------------------------------ This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword _______________________________________________ audacity-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/audacity-devel |
|
In reply to this post by Vaughan Johnson
Quoting Vaughan Johnson <[hidden email]>:
> Excellent, especially that you implemented it as a module. Should > provide a model for Simone's work? > Actually, depending on what his code depends on, he could do everything as a module. The main problem that he would run into is that the module "interface" hasn't been "standardized", so he may need to change his code as we change ours. For instance, if he built his code today and we changed one of the Audacity classes in the "wrong" way, his DLL may not load anymore. However, off the top of my head, there are some other things that would be difficult to do in a module (at this time), like adding a new track type or toolbar. We probably won't know about most of these kinds of things until we start fiddling around with modules more. For this module all I needed to do was export a few things like Effect, EffectManager, and InterpolateAudio. Leland ------------------------------------------------------------------------------ This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword _______________________________________________ audacity-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/audacity-devel |
|
In reply to this post by Vaughan Johnson
Quoting Vaughan Johnson <[hidden email]>:
> Excellent, especially that you implemented it as a module. Should > provide a model for Simone's work? > I skimmed all of the Aurora plugins at this link: http://www.aurora-plugins.com/Aurora_XP/Features.htm And I see no reason that those can't be created as dynamic modules. Someone else will have to determine if the "scientific functions" that he want's to add are appropriate in the Audacity base or not since I not next to nothing about that sort of thing. And Martyn should probably review the changes to the Ruler since he's been dealing with that beasty. Leland ------------------------------------------------------------------------------ This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword _______________________________________________ audacity-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/audacity-devel |
|
In reply to this post by Leland (Audacity Team)
Genius! I defined AUDACITY_DIR, fired up the sln and it compiled fine
and put the dll in the appropriate place. Then I opened the normal Audacity.sln and ran it. The menu item is there and it does affect the audio, for sure. Dynamically loadable effects are the way to go! I've been waiting for somebody to actually make one for some time! So now it's running, how do I debug it? Do I temporarily include it into the main solution? I would like to see how it works. Unfortunately the algorithm doesn't actually 'work' audibly, of course, as there is no headroom to 'repair' into. It might be fixable if you identified the clipped bits, turn the gain of the entire piece down, fix the clipped bits then re-normalized (giving a smaller signal than you started with). TTFN Martyn Leland wrote: > Remember, I'm the audiot of the group, but I've had this idea for a > while now and thought I'd give it a go. Since I did the FindClipping > effect, I always thought it would be a simple matter of integrating the > guts of Dominic's Repair effect to create a clipping fixer. After all, > that's actually what the Repair effect was before Dominic made it more > generalized. Problem was you had to fix each clip manually. > > So, I hacked together the Find Clipping and Repair effects and it seems > to work okay. If it doesn't appear to fix the clipping the first time, > just do it again. > > You can grab it here: > > http://homerow.net/audacity/fixclipping.zip > > Now, here's the bonus... > > This is a dynamically loadable effect. Within the zip, Windows users > will find a DLL that you just copy over to the Audacity Modules > directory. Then, get back into Audacity and you should find a "Fix > Clipping..." item on the Effects menu. (Mac and Linux users will have > to build the .so themselves.) > > For rebuilding, look at the readme.txt file. > > The Windows project for this is a decent example of how to build modules > outside of the Audacity source tree. There needs to be some cleanup in > the Audacity source so that the list of includes could be shortened (we > shouldn't have to include PortAudio or PortMixer for an Effect), but it > just shows how one might build these animals. > > Leland > > > > > > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by: > SourcForge Community > SourceForge wants to tell your story. > http://p.sf.net/sfu/sf-spreadtheword > _______________________________________________ > audacity-devel mailing list > [hidden email] > https://lists.sourceforge.net/lists/listinfo/audacity-devel > ------------------------------------------------------------------------------ This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword _______________________________________________ audacity-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/audacity-devel |
|
Martyn Shaw wrote:
> So now it's running, how do I debug it? Do I temporarily include it > into the main solution? I would like to see how it works. > Unfortunately the algorithm doesn't actually 'work' audibly, of > course, as there is no headroom to 'repair' into. It might be fixable > if you identified the clipped bits, turn the gain of the entire piece > down, fix the clipped bits then re-normalized (giving a smaller signal > than you started with). > Just attach your MSVS (with the DLL solution open) to running Audacity.exe. When Audacity loads the DLL, MSVS will hook up with it and you will be able to debug it. ------------------------------------------------------------------------------ This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword _______________________________________________ audacity-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/audacity-devel |
|
Quoting LRN <[hidden email]>:
> Martyn Shaw wrote: > > So now it's running, how do I debug it? Do I temporarily include it > > into the main solution? I would like to see how it works. > > Unfortunately the algorithm doesn't actually 'work' audibly, of > > course, as there is no headroom to 'repair' into. It might be fixable > > if you identified the clipped bits, turn the gain of the entire piece > > down, fix the clipped bits then re-normalized (giving a smaller signal > > than you started with). > > > Just attach your MSVS (with the DLL solution open) to running Audacity.exe. > When Audacity loads the DLL, MSVS will hook up with it and you will be > able to debug it. > click the "Start Debugging" toolbar button. (Writing this from memory, so you might have to adjust...still at work here.) I the FixClipping project properties, you will find a Debugging entry just above the C++ entry. For the command line use: $(AUDACITY_DIR)\win\$(ConfigurationName)\audacity.exe And set the working directory to: $(AUDACITY_DIR)\win\$(ConfigurationName) Then, you can make changes to FixClipping and debug just like you would if it were part of the tree. Leland ------------------------------------------------------------------------------ This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword _______________________________________________ audacity-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/audacity-devel |
|
In reply to this post by Martyn Shaw-2
Quoting Martyn Shaw <[hidden email]>:
> Unfortunately the algorithm doesn't actually 'work' audibly, of > course, as there is no headroom to 'repair' into. It might be fixable > if you identified the clipped bits, turn the gain of the entire piece > down, fix the clipped bits then re-normalized (giving a smaller signal > than you started with). > Uhm, you'll have to look into that. All I did was wedge the two effects together. And when I see the little red clipping indicators disappear, I just have to assume it's doing it right. :-) Leland ------------------------------------------------------------------------------ This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword _______________________________________________ audacity-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/audacity-devel |
|
Leland wrote: > Quoting Martyn Shaw <[hidden email]>: > >> Unfortunately the algorithm doesn't actually 'work' audibly, of >> course, as there is no headroom to 'repair' into. It might be fixable >> if you identified the clipped bits, turn the gain of the entire piece >> down, fix the clipped bits then re-normalized (giving a smaller signal >> than you started with). >> > Uhm, you'll have to look into that. All I did was wedge the two effects > together. And when I see the little red clipping indicators disappear, I just > have to assume it's doing it right. > > :-) It's a valid idea (well I've seen worse ;-) ) but making it work is much less important than the way it works, I think. Maybe I'll work on it in the future. I'd have to get into the details of Repair first. TTFN Martyn > Leland > > ------------------------------------------------------------------------------ This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword _______________________________________________ audacity-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/audacity-devel |
|
In reply to this post by Leland (Audacity Team)
Thanks LRN and Leland. Are you checking this in to CVS as an example?
Martyn Leland wrote: > Quoting LRN <[hidden email]>: > >> Martyn Shaw wrote: >>> So now it's running, how do I debug it? Do I temporarily include it >>> into the main solution? I would like to see how it works. >>> Unfortunately the algorithm doesn't actually 'work' audibly, of >>> course, as there is no headroom to 'repair' into. It might be fixable >>> if you identified the clipped bits, turn the gain of the entire piece >>> down, fix the clipped bits then re-normalized (giving a smaller signal >>> than you started with). >>> >> Just attach your MSVS (with the DLL solution open) to running Audacity.exe. >> When Audacity loads the DLL, MSVS will hook up with it and you will be >> able to debug it. >> > Or you can set the FixClipping project to automatically start Audacity when you > click the "Start Debugging" toolbar button. > > (Writing this from memory, so you might have to adjust...still at work here.) > > I the FixClipping project properties, you will find a Debugging entry just above > the C++ entry. > > For the command line use: > > $(AUDACITY_DIR)\win\$(ConfigurationName)\audacity.exe > > And set the working directory to: > > $(AUDACITY_DIR)\win\$(ConfigurationName) > > Then, you can make changes to FixClipping and debug just like you would if it > were part of the tree. > > Leland > > > > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by: > SourcForge Community > SourceForge wants to tell your story. > http://p.sf.net/sfu/sf-spreadtheword > _______________________________________________ > audacity-devel mailing list > [hidden email] > https://lists.sourceforge.net/lists/listinfo/audacity-devel > ------------------------------------------------------------------------------ This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword _______________________________________________ audacity-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/audacity-devel |
|
Martyn Shaw wrote:
> Thanks LRN and Leland. Are you checking this in to CVS as an example? Hadn't thought that really. But, I'd sort of be embarrassed to do it if the actual declipping part was bogus. Maybe I should make one that actually does something useful? Leland ------------------------------------------------------------------------------ This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword _______________________________________________ audacity-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/audacity-devel |
|
How about an 'Amplify' function that has options to remove the dc
offset? (Confusing that issue still further ;-). ) Martyn Leland wrote: > Martyn Shaw wrote: >> Thanks LRN and Leland. Are you checking this in to CVS as an example? > > Hadn't thought that really. But, I'd sort of be embarrassed to do it if > the actual declipping part was bogus. Maybe I should make one that > actually does something useful? > > Leland > > ------------------------------------------------------------------------------ This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword _______________________________________________ audacity-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/audacity-devel |
|
Now that 1.3.7 is up, can I discuss a clipping feature?
Audacity records to 32 bit floats, but if it clips and we normalize/amplify after the fact, it doesn't do the generous restoration the waveform by using the >1.0 values as headroom like some other audio recorders do. I've read the forums and someone said this was due to the fact that the devs wanted the same behavior for all representation types (16bit int, etc). If we actually do use a float rep, I can't see why this would be; it seems like it is a consistency that is not helping anyone. This has caused me embarrassment a few times (yes, I should have checked my levels better, but still.) It seems like a feature that would be easy to implement. Although it only has one vote on the feature request wiki, (Allow 32 bit floating point samples to go over 0 dB without forced clipping,) It looks like a bunch of people on forums want itimplemented too. Anyone have objections or input to implementing this? Michael On Wed, Jan 28, 2009 at 7:43 PM, Martyn Shaw <[hidden email]> wrote: How about an 'Amplify' function that has options to remove the dc ------------------------------------------------------------------------------ This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword _______________________________________________ audacity-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/audacity-devel |
|
Hi Michael
Are you talking about clipping that happens when you record or when you mix? The latter is obviously fixable, the former isn't (since you sampled a clipped signal). If other recorders can recover clipping in the way that you seem to be saying, then presumably they are 'hiding' some of their dynamic range above 0dB and then 'generously' giving it back, at the expense of quantization error at the bottom end. Or have I got the wrong end of the stick? TTFN Martyn Michael Chinen wrote: > Now that 1.3.7 is up, can I discuss a clipping feature? > > Audacity records to 32 bit floats, but if it clips and we > normalize/amplify after the fact, it doesn't do the generous restoration > the waveform by using the >1.0 values as headroom like some other audio > recorders do. I've read the forums and someone said this was due to the > fact that the devs wanted the same behavior for all representation types > (16bit int, etc). If we actually do use a float rep, I can't see why > this would be; it seems like it is a consistency that is not helping anyone. > > This has caused me embarrassment a few times (yes, I should have checked > my levels better, but still.) It seems like a feature that would be > easy to implement. Although it only has one vote on the feature request > wiki, (*Allow 32 bit floating point samples to go over 0 dB without > forced clipping,) *It looks like a bunch of people on forums want > itimplemented too. > > Anyone have objections or input to implementing this? > > Michael > > On Wed, Jan 28, 2009 at 7:43 PM, Martyn Shaw > <[hidden email] <mailto:[hidden email]>> wrote: > > How about an 'Amplify' function that has options to remove the dc > offset? (Confusing that issue still further ;-). ) > > Martyn > > Leland wrote: > > Martyn Shaw wrote: > >> Thanks LRN and Leland. Are you checking this in to CVS as an > example? > > > > Hadn't thought that really. But, I'd sort of be embarrassed to > do it if > > the actual declipping part was bogus. Maybe I should make one that > > actually does something useful? > > > > Leland > > > > > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by: > SourcForge Community > SourceForge wants to tell your story. > http://p.sf.net/sfu/sf-spreadtheword > _______________________________________________ > audacity-devel mailing list > [hidden email] > <mailto:[hidden email]> > https://lists.sourceforge.net/lists/listinfo/audacity-devel > > > > ------------------------------------------------------------------------ > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by: > SourcForge Community > SourceForge wants to tell your story. > http://p.sf.net/sfu/sf-spreadtheword > > > ------------------------------------------------------------------------ > > _______________________________________________ > audacity-devel mailing list > [hidden email] > https://lists.sourceforge.net/lists/listinfo/audacity-devel ------------------------------------------------------------------------------ This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword _______________________________________________ audacity-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/audacity-devel |
|
On Thu, Jan 29, 2009 at 4:31 PM, Martyn Shaw <[hidden email]> wrote: Hi Michael I see the point you are making, Martyn, and poking around in the code, I couldn't find an easy way around this, since everything seems to go thru port audio. It appears the portaudio gain is a hardware gain, in which case there would be nothing that could be done to a clipped signal.
I did have the wrong idea initally, that with the slider bar audacity was adding >1.0 gain, thus introducing clipping at the software level, and this does not seem to be the case.
'Hiding' for int based things does seem pretty bad, but I wonder if it doesn't have as bad an effect for floats, since they go much deeper. Granted, this depends on what the DA converter is like. My intuition is that audio nuts won't like it, but that it might save novice and sloppy but experienced users many a recording, so perhaps it could be an option.
Any more thoughts? Michael
------------------------------------------------------------------------------ This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword _______________________________________________ audacity-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/audacity-devel |
|
I'm not on my main machine tonight, so forgive me for a tiny response.
This in AudioIO.cpp does 'software clipping' and may be a bit stringent // // Clip output to [-1.0,+1.0] range (msmeyer) // for( i = 0; i < framesPerBuffer*numPlaybackChannels; i++) { float f = outputFloats[i]; if (f > 1.0) outputFloats[i] = 1.0; else if (f < -1.0) outputFloats[i] = -1.0; } I haven't looked at how often it operates etc, but if you wanted to you could look into doing similar operations at the output stage, and keeping the full range internally. That would mean that any clpping during processes such as Amplify or filtering wouldn't throw information away, which would be good. Just a thought Martyn 2009/1/30 Michael Chinen <[hidden email]>: > > > On Thu, Jan 29, 2009 at 4:31 PM, Martyn Shaw <[hidden email]> > wrote: >> >> Hi Michael >> >> Are you talking about clipping that happens when you record or when >> you mix? The latter is obviously fixable, the former isn't (since you >> sampled a clipped signal). >> >> If other recorders can recover clipping in the way that you seem to be >> saying, then presumably they are 'hiding' some of their dynamic range >> above 0dB and then 'generously' giving it back, at the expense of >> quantization error at the bottom end. Or have I got the wrong end of >> the stick? > > I see the point you are making, Martyn, and poking around in the code, I > couldn't find an easy way around this, since everything seems to go thru > port audio. It appears the portaudio gain is a hardware gain, in which case > there would be nothing that could be done to a clipped signal. > I did have the wrong idea initally, that with the slider bar audacity was > adding >1.0 gain, thus introducing clipping at the software level, and this > does not seem to be the case. > 'Hiding' for int based things does seem pretty bad, but I wonder if it > doesn't have as bad an effect for floats, since they go much deeper. > Granted, this depends on what the DA converter is like. My intuition is > that audio nuts won't like it, but that it might save novice and sloppy but > experienced users many a recording, so perhaps it could be an option. > Any more thoughts? > Michael > >> >> TTFN >> Martyn >> >> Michael Chinen wrote: >> > Now that 1.3.7 is up, can I discuss a clipping feature? >> > >> > Audacity records to 32 bit floats, but if it clips and we >> > normalize/amplify after the fact, it doesn't do the generous restoration >> > the waveform by using the >1.0 values as headroom like some other audio >> > recorders do. I've read the forums and someone said this was due to the >> > fact that the devs wanted the same behavior for all representation types >> > (16bit int, etc). If we actually do use a float rep, I can't see why >> > this would be; it seems like it is a consistency that is not helping >> > anyone. >> > >> > This has caused me embarrassment a few times (yes, I should have checked >> > my levels better, but still.) It seems like a feature that would be >> > easy to implement. Although it only has one vote on the feature request >> > wiki, (*Allow 32 bit floating point samples to go over 0 dB without >> > forced clipping,) *It looks like a bunch of people on forums want >> > itimplemented too. >> > >> > Anyone have objections or input to implementing this? >> > >> > Michael >> > >> > On Wed, Jan 28, 2009 at 7:43 PM, Martyn Shaw >> > <[hidden email] <mailto:[hidden email]>> >> > wrote: >> > >> > How about an 'Amplify' function that has options to remove the dc >> > offset? (Confusing that issue still further ;-). ) >> > >> > Martyn >> > >> > Leland wrote: >> > > Martyn Shaw wrote: >> > >> Thanks LRN and Leland. Are you checking this in to CVS as an >> > example? >> > > >> > > Hadn't thought that really. But, I'd sort of be embarrassed to >> > do it if >> > > the actual declipping part was bogus. Maybe I should make one >> > that >> > > actually does something useful? >> > > >> > > Leland >> > > >> > > >> > >> > >> > ------------------------------------------------------------------------------ >> > This SF.net email is sponsored by: >> > SourcForge Community >> > SourceForge wants to tell your story. >> > http://p.sf.net/sfu/sf-spreadtheword >> > _______________________________________________ >> > audacity-devel mailing list >> > [hidden email] >> > <mailto:[hidden email]> >> > https://lists.sourceforge.net/lists/listinfo/audacity-devel >> > >> > >> > >> > ------------------------------------------------------------------------ >> > >> > >> > ------------------------------------------------------------------------------ >> > This SF.net email is sponsored by: >> > SourcForge Community >> > SourceForge wants to tell your story. >> > http://p.sf.net/sfu/sf-spreadtheword >> > >> > >> > ------------------------------------------------------------------------ >> > >> > _______________________________________________ >> > audacity-devel mailing list >> > [hidden email] >> > https://lists.sourceforge.net/lists/listinfo/audacity-devel >> >> >> ------------------------------------------------------------------------------ >> This SF.net email is sponsored by: >> SourcForge Community >> SourceForge wants to tell your story. >> http://p.sf.net/sfu/sf-spreadtheword >> _______________________________________________ >> audacity-devel mailing list >> [hidden email] >> https://lists.sourceforge.net/lists/listinfo/audacity-devel > > ------------------------------------------------------------------------------ This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword _______________________________________________ audacity-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/audacity-devel |
|
In reply to this post by Michael Chinen
There was some discussion about this issue on the Audacity forum some time ago. An audacity user had a sound sample (available from http://www.acoustics.net/ir/ir_samp.asp?ir_id=142 ) which is 32bit float. The recordings are apparently not clipped, but importing it into Audacity clips the sample because they go higher than 0dB.
There was some lively discussion about whether the user should ever allow the level to exceed 0dB (since it will almost certainly distort when played), but the issue remains that some audio programs can produce 32 bit audio that exceeded 0dB, and for Audacity they are too hot to handle. Removing the 0dB limit (for 32 bit float) in Audacity would have several other benefits. It is not uncommon for effects to have an unpredictable output level (for example reverb, resonant filters, "ClipFix"...) If Audacity did not automatically clip the output to 1.0, then the user could safely use the Amplify effect to bring the waveform back into the normal range without experiencing clipping. Steve <quote author="Michael Chinen"> On Thu, Jan 29, 2009 at 4:31 PM, Martyn Shaw <martynshaw99@googlemail.com>wrote: > Hi Michael > > Are you talking about clipping that happens when you record or when > you mix? The latter is obviously fixable, the former isn't (since you > sampled a clipped signal). > > If other recorders can recover clipping in the way that you seem to be > saying, then presumably they are 'hiding' some of their dynamic range > above 0dB and then 'generously' giving it back, at the expense of > quantization error at the bottom end. Or have I got the wrong end of > the stick? > I see the point you are making, Martyn, and poking around in the code, I couldn't find an easy way around this, since everything seems to go thru port audio. It appears the portaudio gain is a hardware gain, in which case there would be nothing that could be done to a clipped signal. I did have the wrong idea initally, that with the slider bar audacity was adding >1.0 gain, thus introducing clipping at the software level, and this does not seem to be the case. 'Hiding' for int based things does seem pretty bad, but I wonder if it doesn't have as bad an effect for floats, since they go much deeper. Granted, this depends on what the DA converter is like. My intuition is that audio nuts won't like it, but that it might save novice and sloppy but experienced users many a recording, so perhaps it could be an option. Any more thoughts? Michael |
|
In reply to this post by Martyn Shaw-2
Audacity 1.3.8 alpha (cvs)
First order filters work correctly - for example: (hp s 1000) but higher order filters do not - for example: (highpass4 s 1000) The debug output from "highpass4" shown below: error: unbound function - SND-BIQUADFILT if continued: try evaluating symbol again Function: #<FSubr-LET: #aa4f028> Arguments: ((A0R (/ 1 A0))) (SND-BIQUADFILT X (* A0R B0) (* A0R B1) (* A0R B2) (* A0R A1) (* A0R A2) 0 0) Function: #<Closure-NYQ:BIQUAD: #aa5de78> Arguments: #<Sound: #b5491ae0> 0.998929 -1.99786 0.998929 1.06043 1.99572 -0.939572 Function: #<Closure-NYQ:BIQUAD-M: #aa5d908> Arguments: #<Sound: #b5491ae0> 0.998929 -1.99786 0.998929 1.06043 -1.99572 0.939572 Function: #<FSubr-LET*: #aa4eff8> Arguments: ((W (* 2 PI (/ HZ (SND-SRATE X)))) (CW (COS W)) (SW (SIN W)) (ALPHA (* SW (SINH (/ 0.5 Q)))) (A0 (+ 1 ALPHA)) (A1 (* -2 CW)) (A2 (- 1 ALPHA)) (B1 (- -1 CW)) (B0 (* -0.5 B1)) (B2 B0)) (NYQ:BIQUAD-M X B0 B1 B2 A0 A1 A2) Function: #<Closure-NYQ:HIGHPASS2: #aa5ae74> Arguments: #<Sound: #b5491ae0> 1000 0.604923 Function: #<Subr-APPLY: #aa4ffc4> Arguments: #<Closure-NYQ:HIGHPASS2: #aa5ae74> (#<Sound: #b5491ae0> 1000 0.604923) Function: #<FSubr-COND: #aa4f0e8> Arguments: (LEN (SETF RESULT (MAKE-ARRAY LEN)) (DOTIMES (I LEN) (SETF (AREF RESULT I) (APPLY FN (MAPCAR (FUNCTION (LAMBDA (A) (COND ((ARRAYP A) (AREF A I)) (T A)))) ARGS)))) RESULT) (T (APPLY FN ARGS)) Function: #<FSubr-LET: #aa4f028> Arguments: (LEN NEWLEN RESULT) (DOLIST (A ARGS) (COND ((ARRAYP A) (SETF NEWLEN (LENGTH A)) (COND ((AND LEN (/= LEN NEWLEN)) (ERROR (FORMAT NIL "In ~A, two arguments are vectors of differing length." FN)))) (SETF LEN NEWLEN)))) (COND (LEN (SETF RESULT (MAKE-ARRAY LEN)) (DOTIMES (I LEN) (SETF (AREF RESULT I) (APPLY FN (MAPCAR (FUNCTION (LAMBDA (A) (COND ((ARRAYP A) (AREF A I)) (T A)))) ARGS)))) RESULT) (T (APPLY FN ARGS))) Function: #<Closure-MULTICHAN-EXPAND: #aa8cff4> Arguments: #<Closure-NYQ:HIGHPASS2: #aa5ae74> #<Sound: #b5491ae0> 1000 0.604923 Function: #<Closure-HIGHPASS2: #aa5b468> Arguments: #<Sound: #b5491ae0> 1000 0.604923 Function: #<Closure-HIGHPASS4: #aa66290> Arguments: #<Sound: #b5491ae0> 1000 1> ------------------------------------------------------------------------------ This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword _______________________________________________ audacity-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/audacity-devel |
|
In reply to this post by Martyn Shaw-2
Audacity 1.3.8 alpha (cvs)
Ubuntu 8.10 Display problems with the Equalization effect. When in "Graphic Eq" display mode, some of the sliders get stuck at the top of their travel. Moving them down to a mid way position will change the line display, but on releasing the mouse button, the slider jumps back up to the top. Steve ------------------------------------------------------------------------------ This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword _______________________________________________ audacity-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/audacity-devel |
| Free forum by Nabble | Edit this page |
