Dieses Projekt wurde von Martin Wilz im Sommer 1998 begonnen und wurde entwickelt und verbessert durch ihn und einige andere. Im November 1999 begann Thomas Eschenbacher einige kleine Fehler hier und da zu beheben und vertiefte sich so mehr und mehr in den Quellcode des Programms. Bis heute hat er beinahe alle Komponenten des Programms erweitert, neu geschrieben oder berarbeitet und eine Menge Zeit investiert um es zu verbessern.
neues Adapter-Framework für aRts Plugins. Nun ist Kwave in der Lage existierende aRts Plugins in seine eigenen Plugins zur Klangbearbeitung einzubinden
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)
Änderungen in den Makefiles: HTML-Doku bleibt in der Distribution nachdem es mit den Dokumentations-Tools von KDE zu viel Ärger gab
Beim Einfügen eines Signals in ein Signal mit einer anderen Anzahl von Tracks wird das Ergebnis gemischt (noch nicht optimiert/langsam)
Bug im Shutdown-Ablauf behoben, Zwischenablage wird nun vor dem Beenden der Applikation geleert
Größe des Wiedergabe-Buffers auf 256 bis 65536 Bytes beschränkt wegen Problemen (System-Hänger) mit kleinen Wiedergabe-Buffern mit 16 bis 64 Bytes (könnte Hardware-Problem sein)
OverViewWidget überarbeitet (wird im Hauptfenster und Sonagram verwendet)
Sonagram: Speichern in Datei, automatische Helligkeits-Anpassung
getestet mit AMD Athlon-optimierendem Compiler (gepatchter pegcs)
Checks für einige Header-Dateien im configure-Script (wegen einem Problem berichtet von issiac@evcom.net )
sizeHint() und minimimSize() für ScaleWidget und OverViewWidget hinzugefügt
Sonagram: (Notwendigkeit für) SonagramContainer entfernt, verwendet jetzt stattdessen QGridLayout
Unterstützung für TSS (thread-specific storage) zu den mt-Klassen hinzugefügt
einige Multithreading-Klassen hinzugefügt: Thread, AsyncObject, ...
Prefix "get" von allen Member-Funktionen entfernt. Dies ist der neue KDE/QT Coding-Style.
Online-Dokumentation aktualisiert, zeigt auf neue Kwave-Homepage auf http://kwave.sourceforge.net/
Klasse ImageView: immer Neuzeichnen (möglicherweise haben sich die Bild-Daten geändert)
Bugfix: Auswahl und Wiedergabeposition werden nicht gezeichnet wenn keine Datei geladen ist
symbolische Links zum englischen Hilfe-Verzeichnis von "de" und "default" Verzeichnis während make install und in den post und postun-Skripten des Specfiles. Der User sollte zumindest die englische Hilfe bekommen...
Automatische Aktualisierung der Versions-Historie im docbook-File wenn die Datei geändert wurde (nur englische Version)
angefangen eine neue Dokumentation / Online-Hilfe mit docbook
wenn eine Datei mit ungültiger Größe geladen wird (z.B. eines das mit "arecord" aufgenommen wurde), wird eine Meldung angezeigt und die Datei abgeschnitten
herausgefunden dass wir ALSA benötigen um 24 und 32 Bits/Sample wiederzugeben
(x) ausgewählte Kanäle werden auf die (y) Kanäle des Ausgabegerätes bei der Wiedergabe über eine x:y Übersetzungs-Matrix mit linearer Skalierung abgebildet. Alle Werte für x und y außer Null sind erlaubt.
Überarbeitung des Dialogs der Wiedergabeeinstellungen (Plugin)
schweren Bug in SignalManager::readWavChunk() behoben, stürzte ab wenn nach dem wav-Chunk noch Daten waren
config.h in jede Quelldatei aufgenommen (außer in den Plugins)
Export nach ASCII für multi-Track Signale (Import ist noch zu erledigen, ist momentan nur Mono)
Speicherlecks und inkonsistente delete-Operationen behoben (z.B. "delete" anstelle von "delete[]")
Unterstützung des Fehlerdetektions- und Speicher-Debugging-Tools "Insure++ Lite 4.1" (und Tests). (./configure --enable-insure=yes ...) -> Dank an ParaSoft Corporation daß sie diese eingeschränkte Version verfügbar gemacht haben (http://www.parasoft.com)
SignalWidget verwendet drei Layer zum Zeichnen, beschleunigt das Neuzeichnen nach Maus-Selektion um etwa Faktor 14(!!!) auf meinem System :-))
kwave.spec wird gespeichert und in das Source-Archiv eingebunden, damit funktioniert "rpm -ta kwave-x.x.x-x.tar.gz".
neue README-Datei geschrieben, Martin's Version nach README.OLD umbenannt
RPM_OPT_FLAGS werden an die Compiler-Optionen angehängt, damit funktionieren Pentium-Optimierungen :-)
zeigt eine Meldungsbox wenn das Laden einer Datei fehlschlug
Liste der letzten Dateien wird synchronisiert über alle Toplevel-Fenster
dutzende Speicherlecks behoben, fehlende ASSERT-Konstrukte, fehlende Variablen-Initialisierungen und mögliche Divisionen durch Null
Hilfe-Menue auf die rechte Seite ausgerichtet (MenuRoot kann nun den Befehl "#separator" verarbeiten)
0.5.2-1...0.5.2-8 [...2000-05-18]
alle Vorkommnisse von sprintf mit snprintf ersetzt, sowie strcpy mit strncpy (an insgesamt 92 Stellen) !
Behandlung von hinzufügen/löschen: Auswahl/Speaker werden verschoben
einige Variablen/Parameter in "unsigned" geändert (vereinfacht Bereichsüberprüfungen)
den gesamten Quellcode verschönert nach meinem Lieblings-Codierungsstil. -> vielen Dank an die Entwickler des Paketes "Artistic Style", astyle-1.11.4-1 hat gute Arbeit geleistet :-)
Checks für die Größe von char, short und int im configure-Skript
globals.app wird nicht mehr verwendet (obsolet, sollte von libkwave entfernt werden)
MessagePort wird nicht mehr benutzt (obsolet, sollte aus libkwave entfernt werden)
X toolkit-Parameter zum Laufen gebracht (insbesondere "-geometry")
Bugfix beim Laden/Speichern von 8-Bit .wav-Dateien (sind immer unsigned !)
rpm-Paket sollte sich ohne vorherige Installation von Kwave compilieren und installieren lassen
Verzeichnis "${KDEDIR}/share/doc/HTML/default" vom rpm entfernt um Konflikte mit dem existierenden zu vermeiden
Shift+Home/Shift+End erweitert die Auswahl bis zum Start/Ende des Signals
Bugfix in der Signal-Anzeige: Signal wird nicht länger invertiert
Bugfix in KwaveApp: setzt jetzt globals.app auf this wenn es vorher Null war, stürzt jetzt nicht mehr beim Laden einer Datei über die Kommandozeile ab
läßt sich nun unter RedHat 6.1 / Halloween IV genauso compilieren und starten wie unter SuSE 6.2
Versionsinfo von libkwavegui wird auf die Version des Programmpakets gesetzt
Bugfix in plugins/template/Makefile.am: .moc-Dateien werden bei make distclean und anderen Targets nicht mehr generiert
Compiler-Flags werden beim Compilieren der Plugins weitergegeben
compiliert mit --no-rtti. Das war notwendig um mit den KDE-Bibliotheken von RedHat zu compilieren, die anscheinend keine RTTI enthalten. Als Nebeneffekt verschwanden alle Warnungen beim Linken der Programme/Bibliotheken :-)
Bugfixes in einigen Plugins, jetzt compilieren alle ohne Warnungen/Fehler
1999-12-19 (by Thomas.Eschenbacher@gmx.de)
Veränderungen an einigen Makefiles und am configure-Skript wieder eingespielt nachdem sie durch Martin's Änderungen verloren gingen
Tastenkürzel für Mixpaste von CTRL-SHIFT-X auf CTRL-SHIFT-C geändert
Aufruf von "Löschen" korrigiert, löscht jetzt wirklich anstatt auszuschneiden und die Auswahl in die Zwischenablage zu kopieren (bewahrt den Inhalt der Zwischenablage)
1999-12-07 (by Thomas.Eschenbacher@gmx.de)
SignalManager::writeWavChunk verwendet Buffer zum Schreiben (um einiges schneller!)
Bugfix: Überschrift des Hauptfensters ändert sich beim "Speichern Unter"
Bugfix: Überschrift des Hauptfensters ändert sich beim "Speichern Unter"
Bugfix: SignalManager::writeWavChunk zerstört jetzt nicht mehr Daten beim Speichern
make distclean im Projekt-Hauptverzeichnis löscht auch Dateien mit 0 Bytes, *.orig, *.rej und *~ (macht einfach sauberer als vorher)
symbolische Links nach Makefile, Makefile.in und Makefile.am im Plugins-Verzeichnis werden mit "make distclean" gelöscht und mit "make" neu aufgebaut (Änderungen in den referenzierten Makefiles im Template-Verzeichnis werden nicht tausend mal wiederholt wenn mit diff ein Patch gemacht wird)
"configure --enable-debug=yes" (-g and -DDEBUG compiler flags)
einige Funktionen über die neue String-basierte Aufrufmethode angebunden
einige Abhängigkeiten zwischen altem Code und neuen Klassen behoben (es sind immer noch einige zu erledigen !)
Color-Klasse als Wrapper für QColor (wird vielleicht später mal unabhängig)
Curve-Klasse überarbeitet für Erzeugung aus String, Interpolation verwendet jetzt Curve-Objekte
neue Klassen: Parser DynamicLoader Filter (waren vorher structs)
GUI-unabhängige Funktionen in Bibliothek ausgelagert (libkwave)
Überarbeitung der Dialoge in einzelne Dateien und einzelne Plugins
neues Aufrufschema über String-Kommandos. Dies wir Scripting und Makro-Definitionen ermöglichen. Multithreading wird um einiges einfacher weil nur ein String übergeben werden muß und die Parameter in erst im jeweiligen Thread extrahiert werden.
Einführung des SignalManager für Verwaltung von mehreren Tracks
Mehrmals die fehlenden Tastenkürzel im MenuManager überprüft. Scheint ein Problem in QPopupMenu zu sein. Warte bis es in Qt behoben ist oder ein Workaround verfügbar ist.
Liste der letzten Dateien wird wieder aktualisiert beim laufenden Programm
Kwave merkt sich das letzte Speicher-Verzeichnis; für die Bequemlichkeit der Anwender
Auswahl-Mechanismen wiederhergestellt um an Versionen vor 0.29.3 anzupassen und einige andere verrückte Verhaltensweisen korrigiert
_jetzt_ sollten alle Parameter für Destruktoren verschwunden sein
Entwicklung geht etwas langsamer, diese Release ist nicht so vollständig wie ich das gewünscht hatte, aber nachdem bei 0.29.2 bei einem Destructor Parameter aus versehen übrig geblieben sind und sich somit nicht auf allen Systemen compilieren läßt -> hier nochmal...
Auswahl-Funktionen in eine neue Klasse verschoben, Code sieht im Moment eher verwirrend aus, scheint aber zu funktionieren
GUI zum Zusammenmischen von Kanälen hinzugefügt, die benötigten Funktionen zum Mischen fehlen aber noch
Versionsnummern und Dateinamen geändert wie in Version 1.1 von "How To Name Things" von der sunsite vorgeschlagen. Die letzte Ziffer soll immer 0 sein für Versionen die auf ftp.kde.org hochgeladen werden.
Beitrag von Gerhard Zintel zeigt Noten in der FFT-Ansicht an
Möglichkeit für verschiedene Anzeigemodi in der Frequenz-Darstellung
schweren Quantisierungsfehler in der 16Bit-Routine behoben, berichtet von ?
Wrapper für Systeme ohne POSIX-Threads hinzugefügt -> muß aber immer noch vom configure-Skript berücksichtigt werden (Makefile ändern um libpthread nicht zu linken und einen define)
Erste Verwendung von mehreren Threads (Pthreads) in einigen Funktionen
Erzeugung der Tonverschiebung ist nun unabhängig von der Additiven Synthese
Marker-Erzeugung durch Detektion von Wiederholungen (Autokorrelation)
Sonagram, FFT-Ansicht und Stören-Dialog verwenden nun ScaleWidgets
Verbesserter ProgressDialog und Interpolation-Klasse um Multithreading zu erlauben