mhWaveEdit is a program for playing, editing, and recording sound files. It supports .wav files and a few other formats. It is good at editing both large and small files, and has support for 8/16/24/32-bit signed and unsigned sample formats.
| Tags | multimedia Sound/Audio Editors |
|---|---|
| Licenses | GPL |
| Operating Systems | POSIX Linux |
Recent releases


Release Notes: This release fixes some sample conversion issues and adds a few minor features.


Release Notes: This is a maintenance release containing several bugfixes and minor improvements. It also contains an updated Italian translation and a new Polish translation.


Release Notes: This version fixes a few minor bugs, most notably a cursor positioning bug.


Release Notes: This release fixes a playback bug affecting Jack and OSS, features some other minor bugfixes and improvements, and has an update to the Italian translation.


Release Notes: This release fixes a few bugs, adds support for SoX version 14, and adds an Italian translation.
Recent comments
17 Mar 2010 21:38
A bit late, but I have now discovered that it doesn't build with PortAudio version 19. Those idiots changed the API in a backwards-incompatible way.
20 Jun 2005 09:47
Re: problems compiling
I'm not sure what's causing those errors, but it looks like you unpacked portaudio inside the mhwaveedit source directory. Could you try moving the portaudio directory somewhere else, compile and install portaudio, and then compile and install mhWaveEdit?
Maybe you don't need portaudio at all? mhwe supports both OSS and ALSA directly. If you don't need portaudio, you can run configure with the --without-portaudio option.
08 Jun 2005 21:20
problems compiling
gcc --version
gcc (GCC) 3.3.5
Copyright (C) 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
root@xevilstar:/usr/local/src/mhwaveedit-1.4.1# ls po
po/ portaudio/
root@xevilstar:/usr/local/src/mhwaveedit-1.4.1# ls portaudio/
portaudio_v18_1/
make all-recursive
make[1]: Entering directory `/usr/local/src/mhwaveedit-1.4.1'
Making all in m4
make[2]: Entering directory `/usr/local/src/mhwaveedit-1.4.1/m4'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/usr/local/src/mhwaveedit-1.4.1/m4'
Making all in po
make[2]: Entering directory `/usr/local/src/mhwaveedit-1.4.1/po'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/usr/local/src/mhwaveedit-1.4.1/po'
Making all in src
make[2]: Entering directory `/usr/local/src/mhwaveedit-1.4.1/src'
if gcc -DHAVE_CONFIG_H -I. -I. -I.. -DXTHREADS -D_REENTRANT -DXUSE_MTSAFE_API -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/X11R6/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/freetype2/config -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/SDL -D_REENTRANT -DLOCALEDIR=\"/usr/local/share/locale\" -Wall -g -O2 -g -O2 -MT sound.o -MD -MP -MF ".deps/sound.Tpo" \
-c -o sound.o `test -f 'sound.c' || echo './'`sound.c; \
then mv -f ".deps/sound.Tpo" ".deps/sound.Po"; \
else rm -f ".deps/sound.Tpo"; exit 1; \
fi
In file included from sound.c:54:
sound-portaudio.c:46: error: parse error before "PaDeviceID"
sound-portaudio.c:46: warning: no semicolon at end of struct or union
sound-portaudio.c:47: warning: type defaults to `int' in declaration of `outstream'
sound-portaudio.c:47: warning: type defaults to `int' in declaration of `instream'
sound-portaudio.c:47: warning: data definition has no type or storage class
sound-portaudio.c:48: error: parse error before '}' token
sound-portaudio.c:48: warning: type defaults to `int' in declaration of `portaudio_data'
sound-portaudio.c:48: warning: data definition has no type or storage class
sound-portaudio.c: In function `portaudio_init':
sound-portaudio.c:54: error: request for member `output_buffer' in something not a structure or union
sound-portaudio.c:57: error: request for member `input_buffer' in something not a structure or union
sound-portaudio.c:58: error: request for member `out' in something not a structure or union
sound-portaudio.c:58: warning: implicit declaration of function `Pa_GetDefaultOutputDeviceID'
sound-portaudio.c:59: error: request for member `in' in something not a structure or union
sound-portaudio.c:59: warning: implicit declaration of function `Pa_GetDefaultInputDeviceID'
sound-portaudio.c:60: error: request for member `out' in something not a structure or union
sound-portaudio.c:62: error: request for member `in' in something not a structure or union
sound-portaudio.c: In function `portaudio_quit':
sound-portaudio.c:69: error: request for member `output_buffer' in something not a structure or union
sound-portaudio.c: In function `portaudio_samplerate_supported':
sound-portaudio.c:77: error: structure has no member named `numSampleRates'
sound-portaudio.c:78: error: structure has no member named `sampleRates'
sound-portaudio.c:79: error: structure has no member named `sampleRates'
sound-portaudio.c:81: error: structure has no member named `numSampleRates'
sound-portaudio.c:82: error: structure has no member named `sampleRates'
sound-portaudio.c: In function `portaudio_fmtparse':
sound-portaudio.c:102: error: `paPackedInt24' undeclared (first use in this function)
sound-portaudio.c:102: error: (Each undeclared identifier is reported only once
sound-portaudio.c:102: error: for each function it appears in.)
sound-portaudio.c: In function `portaudio_samplesize_supported':
sound-portaudio.c:114: error: structure has no member named `nativeSampleFormats'
sound-portaudio.c: In function `portaudio_output_supports_format':
sound-portaudio.c:120: error: request for member `out' in something not a structure or union
sound-portaudio.c:121: error: request for member `out' in something not a structure or union
sound-portaudio.c: In function `portaudio_output_stop':
sound-portaudio.c:130: error: request for member `outstream' in something not a structure or union
sound-portaudio.c:134: warning: implicit declaration of function `Pa_StreamActive'
sound-portaudio.c:134: error: request for member `outstream' in something not a structure or union
sound-portaudio.c:135: error: request for member `output_buffer' in something not a structure or union
sound-portaudio.c:136: error: request for member `outstream' in something not a structure or union
sound-portaudio.c:137: error: request for member `output_buffer' in something not a structure or union
sound-portaudio.c:140: error: request for member `outstream' in something not a structure or union
sound-portaudio.c:141: error: request for member `outstream' in something not a structure or union
sound-portaudio.c:142: error: request for member `outstream' in something not a structure or union
sound-portaudio.c:143: error: request for member `output_buffer' in something not a structure or union
sound-portaudio.c: In function `portaudio_output_clear_buffers':
sound-portaudio.c:149: error: request for member `outstream' in something not a structure or union
sound-portaudio.c:150: error: request for member `output_buffer' in something not a structure or union
sound-portaudio.c: In function `portaudio_output_want_data':
sound-portaudio.c:155: error: request for member `output_buffer' in something not a structure or union
sound-portaudio.c: At top level:
sound-portaudio.c:160: error: parse error before "PaTimestamp"
sound-portaudio.c: In function `portaudio_output_callback':
sound-portaudio.c:163: error: request for member `output_buffer' in something not a structure or union
sound-portaudio.c:163: error: `outputBuffer' undeclared (first use in this function)
sound-portaudio.c:164: error: `framesPerBuffer' undeclared (first use in this function)
sound-portaudio.c:164: error: request for member `framesize' in something not a structure or union
sound-portaudio.c:165: error: request for member `framesize' in something not a structure or union
sound-portaudio.c:167: error: request for member `played_bytes' in something not a structure or union
sound-portaudio.c: In function `portaudio_output_select_format':
sound-portaudio.c:176: error: request for member `played_bytes' in something not a structure or union
sound-portaudio.c:177: error: request for member `outstream' in something not a structure or union
sound-portaudio.c:179: error: request for member `out' in something not a structure or union
sound-portaudio.c:183: warning: passing arg 2 of `Pa_OpenStream' makes pointer from integer without a cast
sound-portaudio.c:183: warning: passing arg 5 of `Pa_OpenStream' makes integer from pointer without a cast
sound-portaudio.c:183: warning: passing arg 7 of `Pa_OpenStream' makes pointer from integer without a cast
sound-portaudio.c:183: warning: passing arg 8 of `Pa_OpenStream' makes pointer from integer without a cast
sound-portaudio.c:183: error: too many arguments to function `Pa_OpenStream'
sound-portaudio.c:188: error: request for member `samplerate' in something not a structure or union
sound-portaudio.c:189: error: request for member `samplesize' in something not a structure or union
sound-portaudio.c:190: error: request for member `framesize' in something not a structure or union
sound-portaudio.c: In function `portaudio_output_play':
sound-portaudio.c:198: error: `PaTimestamp' undeclared (first use in this function)
sound-portaudio.c:198: error: parse error before "p"
sound-portaudio.c:199: error: request for member `output_buffer' in something not a structure or union
sound-portaudio.c:200: error: request for member `output_buffer' in something not a structure or union
sound-portaudio.c:203: error: request for member `outstream' in something not a structure or union
sound-portaudio.c:204: error: request for member `output_buffer' in something not a structure or union
sound-portaudio.c:205: error: request for member `outstream' in something not a structure or union
sound-portaudio.c:206: error: request for member `start_time' in something not a structure or union
sound-portaudio.c:207: error: request for member `delay_time_set' in something not a structure or union
sound-portaudio.c:209: error: request for member `delay_time_set' in something not a structure or union
sound-portaudio.c:210: error: `p' undeclared (first use in this function)
sound-portaudio.c:210: warning: implicit declaration of function `Pa_StreamTime'
sound-portaudio.c:210: error: request for member `outstream' in something not a structure or union
sound-portaudio.c:213: error: request for member `start_time' in something not a structure or union
sound-portaudio.c:214: error: request for member `delay_time' in something not a structure or union
sound-portaudio.c:216: error: request for member `samplerate' in something not a structure or union
sound-portaudio.c:217: error: request for member `delay_time_set' in something not a structure or union
sound-portaudio.c: In function `portaudio_input_supported':
sound-portaudio.c:225: error: request for member `in' in something not a structure or union
sound-portaudio.c: In function `portaudio_input_supports_format':
sound-portaudio.c:231: error: request for member `in' in something not a structure or union
sound-portaudio.c: At top level:
sound-portaudio.c:239: error: parse error before "PaTimestamp"
sound-portaudio.c: In function `portaudio_input_callback':
sound-portaudio.c:242: error: request for member `input_buffer' in something not a structure or union
sound-portaudio.c:242: error: `inputBuffer' undeclared (first use in this function)
sound-portaudio.c:243: error: `framesPerBuffer' undeclared (first use in this function)
sound-portaudio.c:243: error: request for member `framesize' in something not a structure or union
sound-portaudio.c:244: error: request for member `input_buffer' in something not a structure or union
sound-portaudio.c:246: error: request for member `input_overrun_count' in something not a structure or union
sound-portaudio.c:248: error: `outputBuffer' undeclared (first use in this function)
sound-portaudio.c:248: error: request for member `framesize' in something not a structure or union
sound-portaudio.c: In function `portaudio_input_select_format':
sound-portaudio.c:259: error: request for member `input_overrun_count' in something not a structure or union
sound-portaudio.c:263: error: request for member `instream' in something not a structure or union
sound-portaudio.c:264: error: request for member `in' in something not a structure or union
sound-portaudio.c:266: error: request for member `out' in something not a structure or union
sound-portaudio.c:269: warning: passing arg 3 of `Pa_OpenStream' makes pointer from integer without a cast
sound-portaudio.c:269: warning: passing arg 5 of `Pa_OpenStream' makes integer from pointer without a cast
sound-portaudio.c:269: warning: passing arg 7 of `Pa_OpenStream' makes pointer from integer without a cast
sound-portaudio.c:269: warning: passing arg 8 of `Pa_OpenStream' makes pointer from integer without a cast
sound-portaudio.c:269: error: too many arguments to function `Pa_OpenStream'
sound-portaudio.c:274: error: request for member `samplerate' in something not a structure or union
sound-portaudio.c:275: error: request for member `framesize' in something not a structure or union
sound-portaudio.c:276: error: request for member `instream' in something not a structure or union
sound-portaudio.c: In function `portaudio_input_stop':
sound-portaudio.c:282: error: request for member `instream' in something not a structure or union
sound-portaudio.c:283: error: request for member `instream' in something not a structure or union
sound-portaudio.c:284: error: request for member `instream' in something not a structure or union
sound-portaudio.c:285: error: request for member `instream' in something not a structure or union
sound-portaudio.c:286: error: request for member `input_buffer' in something not a structure or union
sound-portaudio.c: In function `portaudio_input_store':
sound-portaudio.c:291: error: request for member `input_buffer' in something not a structure or union
sound-portaudio.c: In function `portaudio_input_overrun_count':
sound-portaudio.c:296: error: request for member `input_overrun_count' in something not a structure or union
make[2]: *** [sound.o] Error 1
make[2]: Leaving directory `/usr/local/src/mhwaveedit-1.4.1/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/local/src/mhwaveedit-1.4.1'
make: *** [all] Error 2
30 Nov 2004 15:19
Re: Fast play
Variable speed playback is on my todo list, but it will probably take a while before I get the time to implement it..
27 Nov 2004 03:36
Fast play
mhWaveEdit still suits my needs best, is fast and reliable. :)
Now I am editing long files. For that I am missing one usefull feature - fast play, or rewind with listening-in.
This could shorter time needed for edit, as during editing I only need to quickly find some places in file.
The only thing is to have a possibility to change frequency the play buttons are playing with (it should not touch the frequency of the file). Good option is to have one more slider that will set the frequency the play should play with (it could also decrease, not only increase the frequency).