
This project has been started by Martin Wilz in summer 1998 and has been developed and improved by him an some other people. In November 1999 Thomas Eschenbacher has started to fix some little bugs here and there and stepped into the source code of the program deeper and deeper. Up to today he has extended, rewritten or revised nearly every component of the program and spent much time on improving it.
0.7.11 [2007-12-09]
new internal streaming architecture, based on Qt instead of aRts
aRts support is now disabled per default
some minor bugfixes for x86_64 support
band pass plugin
0.7.10 [2007-08-08]
build system: using 'METASOURCES=AUTO' (which simplifies a lot)
ported the build system to cmake
support for newer APIs of FLAC v1.1.3 and v1.1.4 (closes SF bugs #1713655 and #1757716 + debian bugs #427747, #426668 and #431199)
replaced problematic code in libaudiofile with new code under the LGPL, contributed by Bertrand Songis (partially fixes debian bug #419124)
update of the online documentation to reflect the change of the make system
0.7.9 [2007-05-01]
playback via ALSA: offer the "default" device, if no devices found offer the "null" device
implemented import and export of labels, currently only for uncompressed wav files
new plugin for saving blocks between labels as separate files
new function: expand selection to labels
new function: select next/previous range between labels
bugfix: don't change the file name when saving only the selection
new configure option: --enable-doc=yes/no to enable/disable the generation of the online documentation (default=yes)
0.7.8 [2006-12-31]
bugfix: workaround for bug in ALSA, crashed when initializing the dsnoop plugin
bugfix: error in swap file handling, one sample was destroyed when resizing. Affects cut, delete, crop and many other functions.
fixed the incorrect usage of the word "loose" (thanks to J.T. Hundley)
bugfix: went back to old implementation of ThreadsafeX11Guard class in order to fix a deadlock (closes sourceforge bug #1623357)
documentation update: mention Subversion instead of CVS
zero plugin: new mode, support for inserting a range filled with silence
fixed the macro functions "Fade Leadin" and "Fade Leadout", using the new mode of the 'zero' plugin
export of ASCII format files
0.7.7 [2006-09-17]
new feature: implemented a small widget that shows the current selection position and the selection borders
new feature: context menu for the signal widget (right mouse button)
improved file open dialog: show "All Files" and "All Supported Files"
bugfix: error in handling of mouse selection
bugfix: recording only used the first channel (closes sourceforge bug #1551050)
install plugins kde_moduledir/plugins/kwave instead of kde_datadir/kwave/plugins
0.7.6 [2006-06-05]
bugfix: recording setup crashed when called for the first time
bugfix: do no longer crash when recording device is not present or opening failed
bugfix: fixed generation of rpm dependency for libmad
bugfix: update the size of the level meter if the dialog size has changed
record plugin: added a fancy status bar
record plugin: added autodetect/scanning for OSS devices
record plugin: added dsnoop plugin as ALSA source
record plugin: fewer annoying message boxes, instead show a short notice in the status bar for some seconds
record plugin: add logarithmic scale to the level meter and use 3 colors
playback plugin: added autodetect/scanning for OSS devices
playback plugin / ALSA: support for 18 and 20 bits/sample
playback plugin / ALSA: support for big endian
0.7.5 [2005-12-31]
draw signal in a different color set when not selected
bugfix: solved deadlock situation when starting a plugin while another plugin was still running
workaround for deadlock when trying to close the current file while a plugin is still running
bugfix: delete range only in selected tracks
thrown over board the idea of using gstreamer due to serious license issues, we will wait until KDEMM is out (KDE-4) instead.
0.7.4 [2005-10-16]
recording via ALSA
support for the silently changed API of libFLAC++ v1.1.2 (closes sourceforge bug #1243707 + debian bug #289953)
fixed support of MMX / SSE detection on X64_64 architecture (closes sourceforge bug #1244320 and debian bugs #288781 + #327501)
decided to support gstreamer as streaming engine in future versions (will make v0.8 if Kwave is aRts-free)
fixed some German translations (closes debian bug #313790 and bug #314000)
0.7.3 [2005-05-26]
playback via ALSA
completely new playback settings dialog, with support for aRts, ALSA and OSS
playback plugin: play a test sound
record plugin: detect when device is alread open, now no longer blocks. Show an error message.
smoother signal display in overview mode (no gaps) and improved polyline mode
replaced some of Kwave's multithreading classes with classes from Qt
compiles under SuSE-9.3
ebuild file for Gentoo Linux
0.7.2 [2004-12-31]
big rework of the internal streaming/storage subsystem, support for multiple stripes. Makes a big speedup when handling large files! Creating an empty 512MB file before: over 350 sec, now: about 25 sec (on my system)
optimized versions of memcpy() for ix86 (using MMX, MMXEXT, 3DNOW, SSE, SSE2) and for PowerPC, copied from the xine project
some support for X86_64
bugfix: in memory setup plugin, set virtual memory limit only if the limit has been enabled (checkbox is clicked)
bugfix: clipping in Ogg import filter was incorrect
speedups: import of Ogg and MP3 files improved
removed code copied from the GSL library, link against the shared library instead
added target "package-messages" to the toplevel Makefile, for translators
0.7.1 [2004-07-10]
FLAC (Free Lossness Audio Codec) import/export plugin
speedups for loading / saving files
removed our own copy of libmad from the source tree, now it should be available in all common distributions
implemented pre-recording
implemented recording time limit
bugfix: minor bug in the recording state machine
bugfix: solved some layout issues in the about- and sonagram plugins
bugfix: cancel while saving to .ogg works now
update of the online documentation, many screenshots
improved Makefile dependencies of the plugins, now parallel builds also work and speed up the creation of plugins
0.7.0 [2003-12-01]
first version with recording functionality (still alpha)
removed workaround for uic invocation
bugfix: handling of persistent and unique plugins was wrong, which caused playback to work only in the first main window instance
added project files for kdevelop-3
0.6.7 [2003-06-28]
new plugin: "pitch_shift"
new plugin: "lowpass"
new plugin: "notch_filter", contrinuted by Dave Flogeras
included a bugfixed version of the synth_pitch_shift aRts plugin
new feature: "pre-listen", first implementation in pitch_shift plugin
ported to work with Qt-3.1 without Qt-2 compatibility, also compiles with -DQT_NO_COMPAT -DQT_CLEAN_NAMESPACE
0.6.6 [2003-03-29]
works with KDE-3.1
many improvements on the build system. Now compiles under Debian, Mandrake, RedHat, Gentoo and SuSE
starting up with last window size
Xt toolkit option for geometry works again, including workaround for bug in KDE3's geometry management. example: "kwave -geometry 800x600"
bugfix: select to left selected one sample less then needed
volume plugin: simple clipping
volume plugin: mode for "multiply with /divide through factor"
newsignal and selectrange plugin: got rid of KDoubleNumInput and it's weird display and entry behaviour
selectrange plugin: also select start position of selection
can use libmad and libaudiofile from the host system if usable
show the fileinfo plugin when saving under a different mime type
0.6.5 [2002-11-09]
MP3 import with ID3 tag support through id3lib and libmad
Ogg/Vorbis import and export (only ABR mode)
new plugin "volume"
show selected range as time (feature requested by Christian Hollaender)
support for saving compressed .wav files
thrown away Qt2/KDE2 compatibility, now only supports Qt3/KDE3
playback plugin: enabled the "select..." button for choosing other playback devices (feature requested by Len Ovens)
solved problem with name mangling in plugins and different gcc versions
works with gcc-3.2 / solved __dso_handle problem
stricter checks for programs in configure script
0.6.4 [2002-06-30]
support for different file formats / integrated libaudiofile
drag and drop bugfix: dropping into the same signal left from the selection removed wrong range
auto-repair for structurally damaged wav files
bugfix: save selection works again
integrated libkwavemt into libkwave
using time instead of zoom factor, e.g. set zoom to "1 minute" (feature requested by Gilles Caulier)
menu entries for playback control
some more icons in the menues
replaced KFileDialog with subclass KwaveFileDialog (works around some bugs in KDE)
added a little chapter about digital audio basics to online help
added "select range" plugin
0.6.3 [2002-03-01]
simple drag and drop
french translation
handling of "signal modified"
shows error message and aborts if loading failed
0.6.2 [2001-12-24]
new plugin "amplifyfree"
new plugin "noise"
new aRts plugin adapter framework now Kwave is able to use existing aRts plugins in it's own plugins for sound processing
changed documentation to XML / Docbook-4.1
recovery of damaged files if non-zero file length but data length entry in the wav header is zero (e.g. happens when krecord crashes during recording)
bugfix: freeing virtual memory fixed in MemoryManager
bugfix: problem with TSS in TSS_Object cleanup
0.6.1-1 [2001-09-01]
bugfix: class Track made duplicate entry in stripe list when inserting signals into an empty track
fixed that weird layout behavior in dialogs, seems that Qt has problems with complex nested layouts :(
0.6.1 [2001-08-24]
USE OF VIRTUAL MEMORY
changed Makefiles: html docu stays in distribution due to too much trouble with the KDE documentation tools
when inserting from clipboard into a signal with a different number of tracks, the result will be mixed (still not optimized/slow)
fixed compile problem with gcc-2.96 / gcc-3.0
fixed missing header file in NewSigDlg.ui
the RPM should be relocateable again
fixed bug in shutdown sequence, now clipboard is flushed before the application closes.
0.6.0 [2001-07-29]
PORTED TO QT-2 AND KDE2
completely new internal architecture
plugins can be located in a user directory
libkwave is included and no longer supported (at least by me) as a separate package
playback via aRts
many more bugfixes, too many to mention here...
0.5.5-1 [2001-02-23]
bugfix: selection across end of file no longer possible
bugfix: no overflow in wav header when saving large wav files above 268MB (bug reported by Sven-Steffen Arndt, ssa29@gmx.de )
0.5.5 [2000-12-01]
new playback handling, allows pause/continue
limited the playback buffer to be between 256 and 65536 bytes due to problems (system hang) with small playback buffers with 16..64 bytes (might be a hardware problem)
introduced a toolbar for some standard operations
fixed some bugs concerning selection with the mouse
rework of the overview widget (used in main window and sonagram)
fixed menu command "zoom selection"
sonagram: saving to file, auto-brightness adjust
replaced QFileDialog with KFileDialog
tested with AMD Athlon-optimized compiler (patched pegcs)
some fixes for safer multithreading
checking for much more header files at configure time (due to a problem reported by issiac@evcom.net )
0.5.4-4 [2000-10-03]
added classes Mutex and MutexGuard
sonagram: set a transparent background for the image
added sizeHint() and minimumSize() to ScaleWidget and OverViewWidget
sonagram: removed (need for) SonagramContainer, using QGridLayout instead
moved SignalProxy to the mt subdirectory
fixed X11 synchronzation problem with SignalProxy
added TSS (thread-specific-storage) support to the mt classes
added some multithreading support classes: Thread, AsynchObject, ...
removed the "get" prefix from all member functions. This is the new KDE/QT coding style.
updated the online documentation to point to the new Kwave homepage on http://kwave.sourceforge.net/
class ImageView: always repaints (maybe image data has changed)
bugfix: selection and playpointer will not be drawn if no signal is loaded
0.5.4-3 [2000-09-09]
the sonagram window updates it's title if the signal's name changed
found a solution for the problem of synchronizing X11 and QT in a multithreaded environment
fixed bug in the "Halt" function (playback)
0.5.4-2 [2000-08-20]
geometry/layout management for the MainWidget
limited the displayed height of a signal. If not all signals fit onto the screen, a scrollbar appears on the right side of the signal.
limited the size of the TopWidget to a reasonable minimum size
automatic dependencies for the plugins work again
0.5.4-1 [2000-07-29]
fixed layout of playback dialog
started to implement a new plugin interface
geometry/layout management for the sonagram settings dialog
formatting of selection and file time (KwavePlugin::ms2string)
plugins can now consist of multiple source files
0.5.4 [2000-07-12]
some more minor changes to the Makefiles
split the documentation output into "de" and "en" part
made symbolic links to the english help directory from the "de" and "default" directory during make install and uninstall and also in the post and postun scripts of the specfile The user should at least get the english help...
alpha version of english documentation done
automatic update of the revision history in the docbook file if this file is modified (only english version)
CVS is up on sourceforge.net
changed some header lines in this file
started on writing a new documentation / online help using docbook
0.5.3 [2000-06-12]
if a file with invalid size (e.g. recorded by "arecord") is loaded, shows a message and truncates the input at the end of the file
found out that we need ALSA support for 24 and 32 bits/sample
playback in stereo
selected channels (x) are mixed to the output device's channels (y) at playback using a x:y translation matrix with linear scaling, all values for x and y except zero are allowed
playback only for selected channels
rework of the settings/playback dialog (plugin)
heavy reword on the playback code
fixed severe bug in SignalManager::readWavChunk(), chrashed if there was data after the wav chunk
0.5.2-12 [2000-06-02]
copied the AsyncSync class into libgui, should be used for threadsafe usage of the qt library
moved handling of the "selected" flag from class SignalManager to class Signal
fixed selection of channels if appended or deleted
0.5.2-11 [2000-05-28]
included config.h in each source file (except the plugins)
export to ASCII for multi-channel signal (multi-channel import has still to be done, currently only mono)
fixed many memory leaks and inconsistent delete operations (e.g. used "delete" instead of "delete[]")
included support for (and tested with) the error detection and memory debugging tool "Insure++ Lite 4.1" (./configure --enable-insure=yes ...) -> thanks to ParaSoft Corporation for making this limited version of the tool available (http://www.parasoft.com)
SignalWidget uses three layers for drawing, speeds up the redraws after mouse selection by about factor 14(!!!) on my system :-))
0.5.2-10 [2000-05-21]
some minor bugfixes in the Makefiles
save the kwave.spec and include it into the source archive, this lets "rpm -ta kwave-x.x.x-x.tar.gz" work
wrote a new README file, moved Martin's version to README.OLD
RPM_OPT_FLAGS are appended to the compiler options, this lets pentium optimizations work :-)
shows a message box if loading of a file failed
0.5.2-9 [2000-05-19]
list of recent files is synchronized across all toplevel windows
fixed dozens of memory leaks, missing ASSERT constructions, missing variable initializations and possible divisions through zero
Help menu aligned to the right side (MenuRoot now is able to process the special command "#separator")
0.5.2-1...0.5.2-8 [...2000-05-18]
replaced all occurances of sprintf with snprintf, strcpy with strncpy (in 92 places) !
doesn't show any zoom factor if no signal is loaded
handling of channel add/delete: selection/speakers are shifted
changed some variables/parameters to "unsigned" (simplifies range checks)
beautified this file
beautified the whole source code according to my favorite coding style. -> thanks to the developers of the "Artistic Style" package, astyle-1.11.4-1 made good work :-)
fixed that annoying flicker in the help/about dialog
checking for sizes of char, short and int at configure time
globals.app will not be used (obsolete, should be removed from libkwave)
MessagePort will not be used (obsolete, should be removed from libkwave)
multiple toplevel windows are possible
made X toolkit parameters work (especially "-geometry")
bugfix concerning loading/saving 8 bit .wav-files (always unsigned !)
COMPLETE REWORK OF THE INTERNAL COMMAND STRUCTURE
made use of a combination of signals/slots and string messages
hierarchical processing: commands are are forwarded "upwards" until they reach a TopWidget
the TopWidget (highest level) dispatches the comands and forwards them to the lower levels
0.5.2 [2000-04-24]
rpm package should now be installable without conflicts and compile without any previous installation of kwave
removed the "${KDEDIR}/share/doc/HTML/default" directory from the rpm so that it doesn't conflict with the already existing one
shift+Home/shift+End selects from the current left/right position up to the start/end of the signal
bugfix in display of signal: signal is no longer inverted
selectrange() works now
the zoom factor combo box reflects the current "real" zoom factor
some bugfixes in menu handling / cleanups
complete rework of zoom and offset handling:
simple poly-lines instead of lowpass interpolation if zoom factor has less than 10 pixels per sample
lowpass interpolation if more than 10 pixels per sample
bugfix in KWaveApp: now sets globals.app to this if it was null before, now doesn't crash if it loads a file specified at cmdline
0.5.1-4
now compiles and runns under RedHat 6.1 / Halloween IV as well as under SuSE 6.2
version info of libkwavegui.so is set to the package's version
bugfix in plugins/template/Makefile.am: will not create .moc files on make distclean and other targets
compiler flags are passed through to plugin compilation
compiling with --no-rtti. This was necessary to compile against the kde libraries of RedHat that seem to contain no rtti. As a side effect all warnings on linking programs/libs disappeared :-)
configure-parameter --enable-debug has effect again
ASCII import and export works now (mono only)
bugfixes in some plugins, all compile now without warnings/errors
plugins are processed in alphabetical order
all plugins are automatically found and compiled
new target "make src.rpm" makes only the source rpm
0.5.1-3
display will be scrolled left or zoomed if something from the end of the signal is deleted
curve parameters of fade in / fade out work again
0.5.1-2 [2000-03-16]
converted many "klocale->translate(...)"s into "i18n(...)"
target "make messages" works again
converter for menus.config, creates a dummy .cpp-file that is handled by i18n
0.5.1-1 [2000-03-13]
new target "make rpm" creates binary and source RPM packages
fixed the shared-library-problem in the build system
0.5.1 [2000-02-28]
menu items can belong to groups
renamed SignalWidget::info to "refresh"
many cleanups in the header-Files in src and libgui
the menu management has completely been rewritten:
Menu, NumberedMenu and MenuCommand classes are deleted
new classes: MenuNode, MenuItem, MenuSub, MenuToplevel and MenuRoot
menu items can have icons
menu nodes can have unique string ids
special menu commands start with a "#"
first attempts for internationalization
list of recent files is sorted by time of last usage
0.5.0-1 [1999-12-27]
moved my modifications from the Makefiles to Makefile.am
included targets "make release", "make patchlevel" and some scripts
1999-12-19 (by Thomas.Eschenbacher@gmx.de)
remade my modifications of some Makefiles and of the configure script that were lost during Martin's changes
changed shortcut for mixpaste from CTRL-SHIFT-X to CTRL-SHIFT-C
added the "crop" command to the edit menu
made the "mixpaste" command work
corrected the call of "delete", now really deletes instead of cutting and copying the selection to the clipboard (saves clipboard content)
1999-12-18 (by mwilz@ernie.mi.uni-koeln.de)
changed filenames to reflect class names
one class per file is now the standard
stripped leading "Kwave" in Classnames for most Classes
1999-12-10 (by Thomas.Eschenbacher@gmx.de)
removed -Werror compiler option (caused trouble with configure script)
fixed a nasty bug in SignalManager::save that caused crashes on several positions in the program and libstdc++
1999-12-09 (by Thomas.Eschenbacher@gmx.de)
gave the destructor of SignalManager some code, this fixes a huge memory leak !
added a TODO file
added -Werror to the c++ compiler options when debuging enabled
some include file cleanups in libgui
1999-12-07 (by Thomas.Eschenbacher@gmx.de)
SignalManager::writeWavChunk uses buffers for writing (much faster!)
bugfix: caption of main window changes after "SaveAs"
bugfix: selected resolution takes effect
bugfix: caption of main window changes after "SaveAs"
bugfix: SignalManager::writeWavChunk now doesn't destroy the signal's data while saving
make distclean in the projekt root directory also removes zero-length files, *.orig, *.rej and *~ (just makes cleaner than before)
symbolic links to Makefile, Makefile.in and Makefile.am in the plugins directory are deleted with "make distclean" and rebuilt on "make" (changes in the referenced Makefiles in the template directory will not be reflected thousand times when creating a patch with diff)
cleanups, removed some old backup files
improved support for debugging accessible through
"configure --enable-debug=yes" (-g and -DDEBUG compiler flags)
rewritten big parts of Makefile.in for the plugins
added -O2 compiler optimization
1999-12-03 (by Thomas.Eschenbacher@gmx.de)
merged with Martin Wilz's version
1999-11
version numbering script donated by Thomas Eschenbacher
now using KTMainwindow for top level widgets
using timer to check message port -> alternative (threadsafe) message passing instead of signal/slot
labelling code rewritten, now incompatible with old releases
batch loading routines
1999-10
deleting channels works again
fixed savelabel dialog
corrected envelope dialog, string handling
connected many functions via the new string-based way of invocation
fixed some dependencies between old code and new classes (there's still more to do !)
saving should now work again
trimmed down Clipboard class
Color class as wrapper to QColor (may become independent later)
reworking Curve Class for creation via string, interpolation now uses curve objects
moved gui functions into a new library (libkwavegui)
new Classes: Parser DynamicLoader Filter (prevously was a struct)
moved gui-independent functions into a library (libkwave)
rework of dialogs into single files and single plugins
new calling scheme via string commands. This will allow scripting and macro definitions. Threading is made a whole lot easier, because a only a string has to be passed and gets expanded into the needed set of parameters in each thread
io functions and playback adapted to SignalManager
Introduction of SignalManager class for multiple channel management
0.29.5 [1998-04]
Just a fix for an annoying bug while zooming out
0.29.4 [1998-03]
removed a memory leak in playback
triple-checked the missing Accelerators in the Menumanager. It seems to be a bug in qpopmenu, I'll wait for qt to be fixed, or until a workaround is known
recent Files are updated again, while the program is running
kwave now keeps track of last directory saved to; for user convenience
reestablished selection mechanism to match versions before 0.29.3 and corrected some otherwise screwed-up behaviour
_now_ all parameters to destructors should have vanished
0.29.3 [1998-02]
developement has slowed down a bit, this release is not as complete as I wished but since 0.29.2 has a destructor with parameters accidently left in, and so does not compile on all systems -> here we go again...
reworked selection routines into a new class, code is still rather confusing, but seems to work
added checkmark functionality again
converted file-menus to new menu-scheme
added gui to mix channels together, the needed functions for mixing are still missing
Halt button by Gerhard Zintel
0.29.2
moved clipboard functionality to its own class
dynamic allocation of menu entries used by all classes but TopWidget
import of ascii data files
0.29.1
Bugfix for multichannel save. Now the saved files should work with other prgs
local snap to peak by Gerhard Zintel
0.29.0
changed version numbering and filename as suggested by Version 1.1 of "How To Name Things" from sunsite. The last digit will always mark be 0 for releases uploaded to ftp.kde.org.
added windowing (Hamming Hanning, Blackmann) functions
contribution from Gerhard Zintel displaying notes in fftview
Added pitch display window
implemented cursor and db scale for fft-view
added reselection and cursor change
added possibility of different display modes in Frequency representation
fixed severe quantisation bug in saving 16Bit routine, reported by ?
mmaping support contributed by Juhana Kouhia
added as new Possibility to generate Signals: pulse trains
added wrapper for systems with no posixthreads -> still needs handling by configure script (change Makefile for not linking libpthread and doing a define)
First use of multiple threads (pthreads) in some functions
Pitch generation now independent of additive synthesis
added import function for ascii files
Ascii label saving now also by frequency
Label generation according to Period Detection (autocorellation)
Sonagram, FFTView and Distortion-Dialog now use ScaleWidgets
New ScaleWidget gives the user more information
Improved ProgressDialog and Interpolation class to allow multiple threads
fixed some minor bugs
0.28 [1998-07-15]
changes in curvewidget (recent point has another pixmap).
sorting of labels now works without overwriting of QGList::compareItems.
bug fix for saving selection.
save Block function added.
signal finding function in markers.cpp: gui improved.
some smaller bug fixes.
0.27
first release, but never uploaded, because ftp.kde.org was down.
Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team