Why is there no Multi-Core support?

GoldWave general discussions and community help
Post Reply
wysiwyg
Posts: 2
Joined: Wed Apr 28, 2010 7:03 pm

Why is there no Multi-Core support?

Post by wysiwyg »

I have an i7 and two i3 PC's here at home and I'd think, since we're in 2010, that the program you're selling begin to show some multi-core CPU support. For example: it would really help me with the conversions FLAC-to-MP3, that I make very often. You should be able to tell the program to batch-convert as many files as you want, as long as you have the CPU cores for them -> 2 cores = 2 MP3's simultaneously, 4 cores = 4 MP3's, etc. Is it so hard to add this option to the program?! You're no developers to me if you can't make your program work with multi-core CPU's, and it can't since April 1993!
Tristan
Posts: 497
Joined: Mon Jun 01, 2009 8:20 pm
Location: Southeast Michigan

Re: Why is there no Multi-Core support?

Post by Tristan »

My guess is that, if you looked around, you could find something with multi-core support that did the batch conversions you wanted for free. Or maybe you should buy a copy of 'Sound Forge' which, no doubt, has multi-core support by now.
I don't want to read the manual either, but, then, it isn't my problem, is it?
DougDbug
Posts: 2172
Joined: Wed Feb 16, 2005 3:33 pm
Location: Silicon Valley

Re: Why is there no Multi-Core support?

Post by DougDbug »

Chris (GoldWave's developer) didn't write LAME, and doubt he wrote his own FLAC CODEC either!

Here are multicore MP3 & FLAC encoders, but they probably don't work with GoldWave.

For conversion, XRECODE II ($15) also supports multicore conversion when converting multiple files. (If you search, you can find the older FREE version of XRECODE.)

GoldWave is an audio editor. Typically, users like me are spending lots of time editing and it's no big deal if it takes a couple of minutes to open or save a file. And since editing takes human interaction and careful listening, you can't really edit more than one "program" at a time.

If your main use is batch converting, perhaps GoldWave isn't the best choice for you. If GoldWave doesn't meet your needs, there are plenty of alternatives. (GoldWave is my main audio editor, but I use other tools when I need to do something that GoldWave can't do.)

As a long-time GoldWave user, I can say that Chris is an excellent programmer! Goldwave is a basic entry-level/hobbyist program, but it's easy to use and rock-solid! When users have trouble, it's almost always a 3rd-party CODEC and not GoldWave itself. I wish my video editing program was as trouble-free as GoldWave!

And, GoldWave has top-notch technical support! Most software companies provide terrible tech support, from low-skilled staff reading from a "script". With GoldWave I can get help directly from the program developer! (This is mostly a user-to-user forum, but direct support is also available.)
Kilmatead
Posts: 38
Joined: Thu May 29, 2008 4:15 am
Location: Dublin

Re: Why is there no Multi-Core support?

Post by Kilmatead »

While the OP was a little tactless by insisting upon a feature that (as pointed out above) is not used often in the milieu of editing, he raises a valid point. I have often thought that spawning multiple instances of lame (or whatever - the actual codec need not be multi-core supportive) when exporting large numbers of .CUE entries would be a more practical approach than the current linear one.

This idea is similar to how Adobe recently cheated on their x64 support in video transcoding in Premier... for customers who have spurious amounts of memory - instead of actually producing a custom x64 version of the application itself, they just spawn multiple processes of an x86 application and let the OS itself sort out the core affinities (Win7 does this better than Vista, and even Snoopy could do it better than XP) and memory handling.

The end result is a type of multi-core support (without the headache of sorting out concurrencies in your own code) which scales (mostly memory-wise) automatically to whatever hardware the user happens to have.

Again, I'm mindful that GoldWave is designed for editing and this doesn't much play a part in that, but for some operations it could prove handy (such as CUE splitting or even when opening 10 or 12 files at a time into the editor itself).

Like any child worth his salt, if I could have figured out how to fit more than 3 chocolate chip cookies into my mouth at a time, I would have. :D
mh
Posts: 133
Joined: Thu Aug 10, 2006 6:20 pm

Re: Why is there no Multi-Core support?

Post by mh »

Firstly, as has been said, it's down to the codecs being used, and whether or not they have multicore support.

Secondly, GW actually does have multicore support in the program itself. Don't believe me? Run an intensive noise reduction/spectrum filter/EQ or whatever and watch all cores peak at 100%. That's multicore support.

Thirdly, programming multicore support is hard. It's not just a matter of ticking a box that says "can I have 5 pints of multicore support and a packet of peanuts please", you need to examine the entire architecture of your program, synchronise threads, ensure that all routines are thread safe, create mutexes on critical areas of memory (such as the file you're opening or editing), etc etc etc, as well as ensure that the processor overhead from all this baggage doesn't outweigh any gains you get. And then you need to deal with all the subtle (and not-so-subtle) bugs that arise out of such a radical overhaul of your program. This is not easy stuff.

So even if GW didn't have multicore support (which is an academic point because it does) I would vote in favour of a more stable program any day of the week.
GoldWave Inc.
Site Admin
Posts: 4372
Joined: Wed Mar 10, 2004 6:43 pm
Location: St. John's, NL
Contact:

Re: Why is there no Multi-Core support?

Post by GoldWave Inc. »

GoldWave has been developed on dual processor systems for nearly 10 years. GoldWave v5 has always been a multithreaded program capable of using multiple processors. Significant improvements have been made in recent versions to use dual cores and accelerated processing for some of the effects as well (such as Noise Reduction, Spectrum Filter, Time Warp, etc.) increasing performance by an order of magnitude in some cases.

GoldWave can and will use separate processors for playback, recording, rendering visuals, and redrawing waveforms. In fact, playback and recording have been multithreaded in GoldWave since 1996.

How many hard drives do you have, wysiwyg? Just one perhaps? So you have multiple processors trying to read and write hundreds of megabytes of data through a slow mechanical device. Even worse, if you batch process a lot of files concurrently on multiple processors, then you usually end up putting the hard drive in a state of heavy fragmentation. However, if you don't care about that, there's nothing stopping you from running multiple instances of GoldWave and having each one run batch conversions on a different folder or group of files.
wysiwyg wrote:You're no developers to me if you can't make your program work with multi-core CPU's, and it can't since April 1993!
You might want to get your facts straight before posting such silly remarks.

Chris
wysiwyg
Posts: 2
Joined: Wed Apr 28, 2010 7:03 pm

Re: Why is there no Multi-Core support?

Post by wysiwyg »

GoldWave Inc. wrote:How many hard drives do you have, wysiwyg? Just one perhaps? So you have multiple processors trying to read and write hundreds of megabytes of data through a slow mechanical device. Even worse, if you batch process a lot of files concurrently on multiple processors, then you usually end up putting the hard drive in a state of heavy fragmentation. However, if you don't care about that, there's nothing stopping you from running multiple instances of GoldWave and having each one run batch conversions on a different folder or group of files.
I have one SSD, and 3 barracudas, one of them 2TB XT model. The hard drives are fast enough to handle multiple read/write operations, that was never the problem with conversions to-MP3, because it has never been fast enough to achieve the available HDD speed even with 4 instances of WAV-to-FLAC, which automatically means 4-5 times larger files than MP3''s.

Sorry about the earlier comment about multi-core support, I suppose GW supports it, but not everywhere it can. You should think of upgrading other things that could be done faster. I remember that at some point GW was supposed to do many things to an opened file immediately, which it still doesn't. What happened to this idea?

Image

Uploaded with ImageShack.us

As people say - a picture says more than thousands of words, so ...
GoldWave Inc.
Site Admin
Posts: 4372
Joined: Wed Mar 10, 2004 6:43 pm
Location: St. John's, NL
Contact:

Re: Why is there no Multi-Core support?

Post by GoldWave Inc. »

GoldWave opens unencoded files immediately (such as PCM Wave files). Encoded (MP3, FLAC, WMA) files cannot be edited, graphed, or processed directly, so those have to be decoded first.

As for not being able to use multiple processors when saving as MP3 or FLAC, that is a limitation of the encoder. You can contact the developers of LAME and FLAC to ask them to support multiple processors. You can then replace the lame_enc.dll or libFLAC.dll files used by GoldWave to get faster encoding.

Chris
Post Reply