I generated a 30 seconds mono 44100 Hz tone then selected all of it and entered (s-save s ny:all “” :play t) in the Nyquist Prompt. I let the progress dialogue complete then a message box popped up saying “Nyquist returned the value 0.800000” and the Debug output was:
Looks just like on windows.
The returned value is the peak of the sound.
Shouldn’t the temporary file be an *.aiff?
An extract from the system.lsp file (from stand-alone Nyquist, Mac folder) shows:
; system.lsp -- machine/system-dependent definitions
; Macintosh
(setf ny:bigendianp t)
;; note that *default-sf-format* is used below by
;; compute-default-sound-file
(if (not (boundp '*default-sf-format*))
(setf *default-sf-format* snd-head-AIFF))
;; note that compute-default-sound-file uses *default-sf-format*,
;; so be sure to set *default-sf-format* first (this was just done)
(if (not (boundp '*default-sound-file*))
(compute-default-sound-file))
(if (not (boundp '*default-sf-dir*))
(setf *default-sf-dir* ""))
(if (not (boundp '*default-sf-mode*))
(setf *default-sf-mode* snd-mode-pcm))
(if (not (boundp '*default-sf-bits*))
(setf *default-sf-bits* 16))
However, this may not be the cause that the play back does not function. I guess it is simply not
implemented (on C++ level). Should we consult RBD?
Thanks again for testing Gale.
Surprisingly the debug output shows no error. Nyquist thinks that it has played the sound, and yet you say that no sound comes out.
As Robert wrote, I think that is a question for RBD.
However, if Nyquist could use Audacity’s audio in/out then there would be no cross-platform problem, which is a question for the Audacity developers (though I doubt it will receive any interest unless RBD takes it up).
It seems common practice to transfer old recordings in stereo and then to mix the track down to mono.
This removes some of the uncorrelated clicks in the two channels.
However, you can do much better than this by using the “Isolate Center” option of the 2D Stereo Tool.
Two examples may illustrate this. The first one is from this Forum; a recording from WW II. The first part is 2 x effect off/on. The second part (after “sky”) is with the additional application of the Noise Removal (20; -9 300 0.01).
The second one is recorded from YouTube, namely from http://www.youtube.com/watch?v=3AKrlaPrg_g
The effect may be not so noticeable as in the first example, but remember that we’ve worked in both cases with diminished quality due to x-fold conversion/data compression.
Maybe there’s a pro somewhere who could test this with an original recording.
Thanks Robert. This is clearly a powerful and useful tool (even if rather slow), but I still feel that the complexity will be daunting to most users. Would you be interested in making a version that is specifically tailored to the tasks of vocal/instrument removal/isolation?
How did you know that we knew that you knew we knew?
I think that there is after all no hinderance from uploading the plug-in as it is as an “Windows only”-version to the wiki.
It would be another case if it served as a replacement for the current Voice Removal.
Then there would be only three controls:
Multiple choice:
Remove Center (mono)
Remove Center (stereo)
Isolate Center
… (if any, such as Analyse)
Help
and the controls for the two Filters of course (HP/LP)
However, it is a regression - but you knew I would say that, didn’t you?
There isn’t a “Windows only” section in the wiki, but I’d be happy to upload it to the wiki as is, provided that it is clearly documented on the wiki that this is an “advanced” tool and that the Play feature may not work on Linux and may cause Audacity to freeze or crash.
To speed up the process of transferring it to the wiki, perhaps you could draft some documentation Robert, following the layout used on the wiki for the other effect (in particular, the more recent effects) Missing features - Audacity Support
However, I’d still like to see a much simplified centre-pan remove/isolate version of this plug-in as I think that it would be very popular.
What are the advantages/user cases for the mono version of centre pan removal?
The mono/stereo entries simply represent the current and the more advanced technique for the Vocal Removal.
In other words, the “classic” method is a integrated part - for those who are content with a dual mono result. The long name should be something like “Center removal from Stereo Source to dual mono output”.
The wording is somewhat difficult because the space is so narrow (about 15 characters if I do not err).
I am aware that there’s no Windows section. It was after all only thought as the first of two version, one with preview enabled (Windows only) and the other without (Linux and Mac).
I’ll try to puzzle something together in the direction of a preliminary sketch for the documentation.
In a more specialised version I think that you could miss out the mono option since we already have a tool for that. Doing so will help to differentiate it from the “standard” vocal remover, and also make it easier to document and understand.
It is meant as the hypothetical case that the current Voice Removal was replaced - so an integration of the old effect would evidently be necessary.
However, I don’t intend to create such a simplified version for the WIKI.
If it is too difficult to just press enter to make an ordinary voice removal with stereo output, then I am really in fear - to paraphrase a title by Roger Waters - that our civilization has automated itself to death.
It would be nice if this could replace the current vocal removal effect, but sadly I think that it is too slow to be a viable replacement. It would be good though if we could point users that want vocal isolation toward a Nyquist plug-in rather than / as well as to third party applications like Knockout / ExtraBoy et al. I’m a bit hesitant to direct users to the current rjh-stereo-tool because I think that many users will find it too difficult/confusing.
Actually I was tickling Steve rather that you Robert, vis-a-vis the need for a Really Simple Silence Finder. But Vocal Remover if anything has a greater number of challenged users than Silence Finder.
I don’t find your effect unreasonably slow on Windows - it is quicker than Sliding Time Scale, so given only a minority are on Linux I would not rule it out as a replacement for vocal removal if the frequency band features from that were kept. What makes this tool particularly slow?
Whether you could combine vocal isolation and vocal removal in one tool for challenged people, I am not sure. If maximum four controls, perhaps.
Yes, not least that KnOckOut / ExtraBoy are Windows only. There is no directly comparable solution for Mac OS X. The Missing features - Audacity Support page says nothing about vocal isolation tools on Linux - is there some LADSPA tool that does it?
I must agree. I did not even realise (not having read much here) that the centre removal is stereo and the center isolation mono (is that correct)? How is the stereo achieved for removal? Perhaps rather than dynamic stereo effects that change over time, users would prefer choice of the stereo method itself?
I know, you want if ever possible avoid words like “Threshold”, “Bias” and so on to keep things grand- parents proof (although my grand pa would most likely not know what karaoke means - even if he would still be alive and could celebrate his 125th birthday).
I won’t use the sound/silence finder because it offers no functionality to me - for the well-known reasons.
Mono and Stereo extraction is like comparing apples with oranges or worse.
The former uses simple subtraction and the latter involves the use of FFT or better short time Fourier transform. For each of the 8192 frequency bands from DC to 22050 Hz (at 44.1 kHz) must a weighting be calculated and with the sum of the two channels be multiplied. In order to avoid beating and time aliasing, the frames do overlap by about 5000 samples.
As you may have seen, the tool already uses a distinct frequency band to preserve the bass and treble for the removed center. It currently does not support the inversion of this band i.e. that only the lower and upper bands are removed.
Anything else than having both - removal and isolation - in one plug-in doesn’t make sense. The method produces in the first place a mono center - as you’ve noticed presently. The removal simply subtracts this gained signal from both channels. It is the same as returning an inverted dual mono center and play it together with the original.
If I count correctly, we will have 3 controls for a minimum or SE version:
A choice control with Voice Removal classic and the new options.
A choice control with the options for the filtering e.g. “Simple” for no Filter at all.
A text box for the two frequencies (as it is now).
The filter choice is tricky because it means the exact opposite for isolation and removal.
Furthermore, a lot of those plug-ins introduce some latency or additional artefacts apart of those audible with the normal Vocal Removal. In other words, they often do not stay neutral with regard to the alignement or frequency content of the source track.
The Center is after all infinitely small and that’s the reason why it is mono.
It is an illusion that the center has a width. The difference to a mono signal is simply that negative left/right ratios are handled such that they are not included in the center. Hence, the isolated signal has in most cases a smaller portion of the sides than the simple summation of L and R.
I’ve created the tool after my own needs and those include special fades (for the purpose of creating audio drama scenes). Other software can add automated controls into their effect slots and I’ve needed a comparable functionality within Audacity. Of course, one could separate all effects into tiny little moduls but this would only clutter the effect menu even more. It is much easier to reach the whole related set with a single keystroke.
The different parameters (rotation, pan, delay and width) can improve the removal significantly.
Nevertheless, they will gradually be removed and replaced by an automatic optimization. I fancy that even in the “advanced” version only one control for a positive/negative amount (percentage?) will survive and interact with the chosen effect.
It’s a matter of using appropriate terminology for the target audience/user group. If your grand pa were still alive, the term “sing-along” may be more appropriate.
Which is why I would like a version that is “an orange” rather than “some fruit”.
I don’t think that the speed is at all unreasonable considering the amount of bit-wise processing that is going on, but on Linux it is a lot slower than most users would find reasonable. If there are any interested C++ developers out there, a C++ implementation could probably be a lot faster.
I agree.
The interface could be as simple as a multi-choice “Retain Vocal / Remove Vocal” (or “retain centre pan / remove centre pan”), and then the filter options as in the shipped Vocal Removal effect.
For ones own use the plug-in can obviously be as simple or complex as you like. (In my production version of Audacity I have replace “high filter” and “low filter” with a combined “high pass, low pass, band pass, band stop” filter (just called “Filter…”) but even that was considered too complicated for general release,
I’m quite keen on the idea of tabbed interfaces for “version 4” plug-ins as this would allow the “simple” settings to be on the default tab, and “advanced options” on additional tabs.
If you don’t feel inspired to write a dumbed down “centre pan remove/isolate” version, then I expect that someone else will do so eventually. The work that you have put into this already is an excellent contribution imho.
It’s partly that, but as I said, I am not opposed to a short “techy” word for a control label in a “Simple” effect if that saves otherwise using six words. But that requires there being a help screen or help button and there not being too many controls.
An interface with nine techy-labelled controls is really not on for Grandma. If you think you can educate the next Grandma that needs help with Silence Finder, I’ll pass her on to you instead.
Since my father is with 97 also beyond reach, I have to see perhaps myself as the generation that shall be addressed with down-dumbed plug-ins.
I guess it isn’t after all not a question of age but of profound interest.
I can understand that the average user only demands that a tool does just what its title promises without a higher grade in physics.
But don’t you think that the decision about downloading a plug-in should remain by the user?
I find it rather questionable to dumb-filter plug-ins before they can be added to the WIKI.
Don’t understand me wrong, the current version has at least 4 controls witch can be removed. I actually only use the 3 first controls and for the 3rd only settings of -/+45° for removal/isolation correction.
It’s only a big difference how the two signals are calculated and not how the result sounds in the end - mono or stereo. The isolation is a nice by-product for different applications like those shown in the examples. It all serves one purpose - an extraction that is more flexible than most things currently available.
As I said before, only one parameter control (apart from multi-choice and filter setting) will survive eventually in the advanced version.
The effect would be much faster if we could always operate with sounds instead of arrays. It is 10 times faster to convert an array into a sound, multiply it and convert it back instead of using a loop. Unfortunately, the conversion results in quantisation errors due to wrong floating point conversion.
Yes, I think so too.
To be correct: vocal removal/isolation is with applied filtering and center removal/isolation is without. The options for the filter choice worry me the most.
I can’t think of a simple way to explain keeping the mid range for center isolation (i.e. the voice) leads to the exact opposite when removing the center (bass/cymbals remain).
I am still differentiating between a WIKI and a release version -which should be clear from the previous posts. I’ve described how a hypothetical “release” version could look like.
The plug-in works quite well on my system, so instead of transferring it to C++, I’d prefer an improved Nyquist implementation on Linux.
The proposal for a source separation tool for Audacity is kicking about for quite some time. Since it is not transparent if there’s any progress in this direction, I’ve decided to do something in my ken - beginning with the “simple” stereo voice removal.
The more advanced user can download plug-ins “as is” here.
Once the plug-ins are on Wiki they become much more visible. If the plug-in seems too complex to the mass of average users, it won’t be downloaded, thereby defeating the objective of the exercise.
However if the plug-in is “simple” enough to replace the currently shipped Vocal Remover, then a bells and whistles Wiki version makes more sense.
I would imagine that could help.
Is this some Nyquist-specific bug, if so do we already know about it?
Can you explain it in a more complex way (but still as simple as possible) then perhaps someone can translate it.
That largely depends on rbd becoming more active again, whereas a wider range of people could perhaps develop a C++ Vocal Removal/Isolation tool.
Thanks again for your efforts with this plug-in, Robert.
I’m not saying that we cannot have “advanced” effects on the wiki, though I think it would be questionable to have plug-ins on the Audacity wiki that the Audacity support team are not able to offer a reasonable level of support for. Thus a complicated plug-in requires adequate support documentation.