2005-12-21	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* src/lib/sample_buffer.cpp:
	- first try to use libsndfile instead of SDL_sound for decoding sample
	  as SDL_sound sometimes doesn't handle samples (raw- and FLAC-files)
	  the correct way and returns unusable data while libsndfile seems to
	  work quite fine with these samples
	- when using libsamplerate, use linear-interpolation per default
	  instead of zero-order-hold-resampling which results in MUCH higher 
	  quality when resampling as it produces much less artifacts

	* src/core/file_browser.cpp:
	classify files with extension "flac" as samples

	* src/widgets/tab_widget.cpp:
	hide all other tabs when changing active tab - neccessary for working
	with Qt 4.1

2005-12-20	Danny McRae	<khjklujn/at/yahoo.com>

	* resources/step_btn_on_100.png:
	* resources/step_btn_yellow.png:
	* include/pattern.h:
	* src/tracks/pattern.cpp:
	make it possible to change volume of steps in bb-editor using mouse
	wheel and which changes color of step-button accordingly

2005-12-20	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* src/lib/sample_buffer.cpp:
	first implementation of FLAC-encoding/decoding for compressing buffers
	before encoding them to base64 which results in smaller XML-files -
	currently disabled as it's still buggy and unusable

	* src/lib/buffer_allocator.cpp:
	in cleanup-method use list instead of vector for pool of buffers to be
	removed - fixes crash with Qt4

2005-12-19	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* src/widgets/knob.cpp:
	made knob ready for drag'n'drop of values

	* src/tracks/sample_track.cpp:
	load and save/load sample-data which doesn't come from sample in/from
	XML-node (base64-encoded)

2005-12-18	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* src/tracks/pattern.cpp:
	use Sint32 instead of Sint16 for determining central key, otherwise we
	might get overflows when having a lot of notes

	* src/tracks/sample_track.cpp:
	draw zero-line if sample is shorter than TCO

	* src/core/track.cpp:
	display text-float with current position/size when moving/resizing TCO

	* src/core/song_editor.cpp:
	do correct positioning for text-floats for master-volume/-pitch

	* include/envelope_and_lfo_widget.h:
	* src/core/envelope_and_lfo_widget.cpp:
	added support for user-defined wave-shapes - the user just has to drag
	an audio-sample into envelope/lfo-widget and that's all ;-)

	* src/tracks/pattern.cpp:
	* src/tracks/sample_track.cpp:
	make sound-buffer of frozen pattern draggable to sample in
	sample-track

	* include/sample_buffer.h:
	* src/lib/sample_buffer.cpp:
	support for base64-encoding of sample-data into a QString

	* src/core/track_container.cpp:
	import MIDI-file to itself when getting according drag'n'drop-request

	* plugins/audio_file_processor/audio_file_processor.h:
	* plugins/audio_file_processor/audio_file_processor.cpp:
	receive drop-events (set dragged sample etc.)

	* plugins/vestige/fstclient.h:
	* plugins/vestige/fstclient.cpp:
	renamed removeVSTPlugin::write/readValue to write/readValueS for
	compiling even with buggy GCC 3.x

	* include/file_browser.h:
	* src/core/file_browser.cpp:
	made up all that drag'n'drop-stuff, you're now able to drag samples
	and presets directly to according channel, sample etc.

2005-12-17	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* include/bb_editor.h:
	* include/pattern.h:
	* src/core/bb_editor.cpp:
	* src/tracks/pattern.cpp:
	always update according bb-tracks when changing pattern/it's length

	* include/track.h:
	* src/core/track.cpp:
	* src/core/track_container.cpp:
	drag'n'drop everywhere - now you can drag every track-content-object
	(e.g. a pattern) to every other track-content-object of the same type
	or to a free place in an according track or just in another
	track-container

	* include/mmp.h:
	* src/lib/mmp.cpp:
	allow additionally to load data from given string instead of file

	* include/timeline.h:
	* src/core/timeline.cpp:
	- disable magnetic loop-points when pressing control
	- set start-point directly to given position when pressing middle
	  mouse-button, do the same for end-point of shift is pressed at the
	  same time

	* include/piano_roll.h:
	* include/song_editor.h:
	* src/core/piano_roll.cpp:
	* src/core/song_editor.cpp:
	use modifier-key-states from lmmsMainWin instead of monitoring them on
	it's own

	* include/lmms_main_win.h:
	* src/core/lmms_main_win.cpp:
	capture key-events and save states of shift, control- and alt-key
	everytime it changes - other widgets can use this for querying whether
	one of these modifier-keys is pressed

2005-12-16	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* configure.in:
	added better LADSPA-check and fixed some other small things

	* src/core/mixer.cpp:
	query attribute "mididev" instead of "midiclient" for determining
	selected MIDI-device - fixes bug with apparently non-selectable
	MIDI-device/-client

	* src/core/plugin.cpp:
	* src/lib/ladspa_manager.cpp:
	load plugins using QLibrary instead of platform-dependent dl-functions

2005-12-15	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* include/audio_alsa.h:
	do not include alsa-headers if they do not exist...

2005-12-14	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* src/core/file_browser.cpp:
	display text-float while loading sample for preview

	* plugins/audio_file_processor/audio_file_processor.cpp:
	fixed bug which caused LMMS to crash when playing notes on
	audio-file-processor, which was created out of preset containing link
	to file which doesn't exist

	* src/core/song_editor.cpp:
	use text-floats instead of status-bar

	* src/core/lmms_main_win.cpp:
	removed status-bar

	* plugins/vestige/vestige.cpp:
	show text-float while loading plugin

	* include/text_float.h:
	* src/widgets/text_float.cpp:
	heavy improvements on text-float-widget which is now also able to
	display messages with title and pixmap and offers two static methods
	for displaying a certain message

	* src/tracks/channel_track.cpp:
	set project modified after accepting drops of presets/plugins

	* include/instrument_play_handle.h:
	check for m_instrument being NULL because play-handle might be
	invalidated and thus crash when referencing NULL-ptr

	* most files:
	continued improving Qt4-support

2005-12-13	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* most files:
	made LMMS compatible with Qt4 again after heavy development under Qt3
	led to incompatibility with Qt4

2005-12-11	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* src/core/lmms_main_win.cpp:
	* src/lib/mmp.cpp:
	- default file-extension is now "mmp" (MultiMedia Project) instead of
	  "xml" for being able to associate mmp-files with LMMS in
	  file-managers etc. - futhermore LMMS-file-browser is much faster now
	  because it does not have to examine each file
	- file-extension for song-templates is now "mpt" (MultiMedia Project
	  Template)

	* include/cpuload_widget.h:
	* src/widgets/cpuload_widget.cpp:
	added cool CPU-load-widget displaying LMMS's current CPU-usage

	* src/core/note_play_handle.cpp:
	always check validity of sub-notes as they might not be known to mixer
	and therefore not invalidated in certain situations which made LMMS
	crashing (e.g. when deleting a channel-track which was current playing
	some arpeggio-notes)

	* include/pattern.h:
	* src/tracks/pattern.cpp:
	start separate thread for freezing pattern as this doesn't block the
	GUI-thread and user is now able to cancel pattern-freezing (which was
	not possible after last rewrite a few days ago)

	* include/timeline.h:
	* src/core/timeline.cpp:
	use timer for periodically screen-updates - locking QApplication-mutex
	isn't neccessary anymore which makes LMMS not to hang when creating
	new song while playing etc.

	* src/core/piano_roll.cpp:
	when settings time-line-position, call setTact( 0 ) and
	setTact64th( 0 )-members instead of pos() = 0 (the latter one leads
	to crashes)

	* plugins/audio_file_processor/audio_file_processor.cpp:
	update start- and end-frames of sample-buffer when loading settings

2005-12-10	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* include/lmms_main_win.h:
	* include/song_editor.h:
	* src/core/lmms_main_win.cpp:
	* src/core/song_editor.cpp:
	* resources/toolbar_bg.png:
	* resources/main_toolbar_bg.png:
	heavy improvements on toolbars

	* include/nstate_button.h:
	* src/widgets/nstate_button.cpp:
	base-class is now toolButton instead of QPushButton

	* include/tool_button.h:
	* src/widgets/tool_button.cpp:
	- moved implemenation of toolButton into cpp-file
	- added highlighting during mouse-over
	- do not connect clicked()-signal if receiver and/or slot are NULL

2005-12-09	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* include/channel_track.h:
	* src/core/midi_tab_widget.cpp:
	* src/core/preset_preview_play_handle.cpp:
	added support for saving and restoring MIDI-connections of a channel
	in ordinary channel-preset-data

	* include/channel_track.h:
	* include/midi_tab_widget.h:
	* src/core/midi_tab_widget.cpp:
	* src/tracks/channel_track.cpp:
	dropped support for switchable MIDI-event-routing as it is done per
	default and actually makes no sense...

	* src/midi/midi_port.cpp:
	do not process MIDI-out-event if channel = -1

2005-12-08	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* src/core/midi_tab_widget.cpp:
	- always un-check items in port-menus when disabling receceiving or
	  sending MIDI-events
	- small GUI improvements

	* resources/midi_in.png:
	* resources/midi_out.png:
	added icons for MIDI-input- and MIDI-output-port-selection

2005-12-07	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* include/midi_alsa_seq.h:
	* include/midi_client.h:
	* include/midi_tab_widget.h:
	* src/core/midi_tab_widget.cpp:
	* src/midi/midi_alsa_seq.cpp:
	* src/midi/midi_client.cpp:
	added support for easy MIDI-port-subscription inside LMMS by just
	selecting according source-/destination-port from a menu in
	MIDI-setup-tab in each channel-window

2005-12-06	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* src/core/note_play_handle.cpp:
	* src/core/piano_roll.cpp:
	* src/core/piano_widget.cpp:
	* src/tracks/channel_track.cpp:
	moved output-MIDI-event-generation-code from channel-track to
	note-play-handles for covering arpeggio/chords and having exactly
	timed events - makes it now possible to control other MIDI-based
	synths etc. from patterns (which was not possible before because
	of a small bug) - will drop MIDI-out-plugin very soon as it isn't
	needed anymore

2005-12-05	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* include/piano_roll.h:
	* src/core/piano_roll.cpp:
	- when moving mouse draw a bar at current key
	- re-enabled mouse-tracking for cursor-changes when mouse is over tail
	  of note etc.

	* resources/zoom.png:
	* src/core/song_editor.cpp:
	* src/core/piano_roll.cpp:
	added small zoom-icon to zoom-combobox

2005-12-04	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* include/midi_alsa_raw.h:
	* include/midi_client.h:
	* include/midi_dummy.h:
	* include/midi_oss.h:
	* src/midi/midi_alsa_raw.cpp:
	* src/midi/midi_client.cpp:
	* src/midi/midi_oss.cpp:
	renamed class midiRawClient to midiClientRaw
	
	* include/pattern.h:
	* src/core/song_editor.cpp:
	* src/tracks/pattern.cpp:
	do not hang in endless loop when rendering pattern with enabled
	looping-points

	* src/core/time_line.cpp:
	align looping-points on bars

	* include/bb_editor.h:
	* include/piano_roll.h:
	* include/song_editor.h:
	* include/timeline.h:
	* include/tool_button.h:
	* src/core/bb_editor.cpp:
	* src/core/piano_roll.cpp:
	* src/core/song_editor.cpp:
	* src/core/timeline.cpp:
	redesigned toolbars of song-editor, bb-editor and piano-roll - now
	they're looking really cool and especially time-line-features are much
	more usable

	* include/song_editor.cpp:
	* src/core/lmms_main_win.cpp:
	* src/core/song_editor.cpp:
	- added main-toolbar at bottom of screen and moved several widgets from
	  song-editor-toolbar into it
	- added high-quality-button for switching to 88200/96000 Hz

	* src/widgets/tab_widget.cpp:
	reversed scroll-wheel-direction for changing tab

2005-12-03	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* src/core/main.cpp:
	- better handling of command-line options
	- added help switch
	- fixed bugs concerning rendering from command-line

	* include/audio_alsa.h:
	* include/audio_device.h:
	* include/audio_dummy.h:
	* include/audio_file_device.h:
	* include/audio_file_ogg.h:
	* include/audio_file_wave.h
	* include/audio_jack.h:
	* include/audio_oss.h:
	* include/audio_sdl.h:
	* include/export.h:
	* include/export_project_dialog.h:
	* include/mixer.h:
	* include/pattern.h
	* include/song_editor.h:
	* src/audio/audio_alsa.cpp:
	* src/audio/audio_device.cpp:
	* src/audio/audio_file_device.cpp:
	* src/audio/audio_file_ogg.cpp:
	* src/audio/audio_file_wave.cpp:
	* src/audio/audio_jack.cpp:
	* src/audio/audio_oss.cpp:
	* src/audio/audio_port.cpp:
	* src/audio/audio_sdl.cpp:
	* src/core/export_project_dialog.cpp:
	* src/core/lmms_main_win.cpp:
	* src/core/main.cpp:
	* src/core/mixer.cpp:
	* src/core/song_editor.cpp:
	* src/track/pattern.cpp:
	changed architecture of mixer-system from push- to pull-architecture
	which makes almost all things (song-export, pattern-freezing etc.) much
	easier and also results in a better performance (especially when using
	JACK) - additionally LMMS doesn't take 100% CPU anymore

2005-12-02	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* src/core/config_mgr.cpp:
	do not try to re-run wizard in case of version mismatches

	* configure.in:
	* plugins/Makefile.am:
	* presets/Makefile.am:
	dropped ladspa_sine_1063-plugin as it is only for experimental
	purposes

2005-11-29	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* plugins/vestige/vestige.h:
	* plugins/vestige/vestige.cpp:
	changes for working with new VST-framework

	* plugins/vestige/fstclient.h:
	* plugins/vestige/fstserver.h:
	* plugins/vestige/fstclient.cpp:
	* plugins/vestige/fstserver.cpp:
	* plugins/vestige/fstcore.c:
	* plugins/vestige/communication.h:
	added new VST-framework (client-server-architecture) based on XFST

	* include/qxembed.h
	* src/widgets/qxembed.cpp:
	added QXEmbed-widget which is neccessary for embedding VST-plugin

2005-11-27	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* src/core/mixer.cpp:
	added usleep()-call for realizing usable threading and solve problems
	with 100%-CPU-usage

2005-11-08	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* include/channel_track.h:
	* include/sample_play_handle.h:
	* include/sample_track.h:
	* src/core/sample_play_handle.cpp:
	* src/tracks/channel_track.cpp:
	* src/tracks/sample_track.cpp:
	made things work with audio-ports

	* include/mixer.h:
	* src/core/mixer.cpp:
	completely revised internal mixing-engine make it working with
	the new audio-ports, which results in a much cleaner, faster and more
	powerful mixing-engine

	* include/audio_port.h:
	* src/audio/audio_port.cpp:
	added so called audio-ports which are important for transporting sound
	from it's origin through the mixer and the effect-board (the latter
	one isn't existing yet but coming quite soon) - another important
	point is ability of having output-ports for each channel/sample-track
	with JACK

	* src/tracks/channel_track.cpp:
	translate default-channel-name "Default"

	* src/audio/audio_jack.cpp:
	- sync JACK's buffer-size with LMMS's one
	- start JACK-transport if not already done

	* include/mixer.h:
	* src/audio/audio_jack.cpp:
	* src/core/mixer.cpp:
	* src/lib/sample_buffer.cpp:
	* src/widgets/visualization_widget.cpp:
	use memset() for clearing buffers - obsoletes usage of silence-buffers
	in mixer

2005-11-07	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* src/midi/midi_alsa_seq.cpp:
	use relative instead of absolute scheduling for events which makes
	MIDI-out working

2005-10-31	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* include/midi_alsa_seq.h:
	* src/midi/midi_alsa_seq.cpp:
	several bug-fixes

2005-10-30	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* include/midi_alsa_seq.h:
	* src/midi/midi_alsa_seq.cpp:
	added first version of ALSA-sequencer - currently doesn't handle all
	common events, but note-on/off and key-pressure work so far

	* include/midi_client.h:
	- added method applyPortMode() for making MIDI-subsystem able to get
	  known of port-mode changes which is neccessary if they have REAL
	  ports like ALSA-seq. has
	- renamed validatePortName() to applyPortName() and made it non-pure
	  virtual

	* src/tracks/channel_track.cpp:
	initialize m_midiEventRoutingEnabled with FALSE per default in ctor

	* src/core/mixer.cpp:
	delete midi-dev on exit

	* src/midi/midi_midi_alsa_raw.cpp:
	when reading/saving device-name via config-mgr, use "midialsaraw"
	instead of "midialsa" as context-name

2005-10-28	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* src/widgets/project_notes.cpp:
	set initial text to bright gray, since black text on a very dark back-
	ground isn't very readable...

	* include/lmms_main_win.h:
	* include/setup_dialog.h:
	* src/core/bb_editor.cpp:
	* src/core/lmms_main_win.cpp:
	* src/core/setup_dialog.cpp:
	* src/core/song_editor.cpp:
	* src/widgets/project_notes.cpp:
	added support for GIMP-like usability, i.e. no MDI

	* src/core/song_editor.cpp:
	* src/core/bb_editor.cpp:
	reorder some code in constructor for not crashing if window is
	shown while constructor is still running

2005-10-23	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* src/widgets/led_checkbox.cpp:
	also emit toggled()-signal if state actually wasn't changed

	* include/lcd_spinbox.h:
	* src/widgets/lcd_spinbox.cpp:
	- display special strings if value is a certain number
	- support for disabled-state (gray/no input)

	* include/midi_tab_widget.h:
	* src/core/midi_tab_widget.cpp:
	* src/tracks/channel_track.cpp:
	added new tab "MIDI" for being able to setup MIDI-related stuff for
	each channel

	* include/channel_track.h:
	* include/midi*:
	* include/piano_widget.h:
	* include/setup_dialog.h:
	* src/core/mixer.cpp:
	* src/core/piano_roll.cpp:
	* src/core/piano_widget.cpp:
	* src/core/setup_dialog.cpp:
	* src/core/song_editor.cpp:
	* src/midi/midi*:
	* src/tracks/channel_track.cpp:
	coded a completely new, powerful and clean MIDI-system which e.g. makes
	it possible to mask MIDI-events for each channel and to receive and send
	(timed!) MIDI-events on a separate MIDI-port for each channel, which
	only makes sense if using non-raw (sequenced) MIDI-client - currently
	none existing, but ALSA-sequencer-support is in progress

	* include/midi_device.h:
	* src/midi/midi_device.cpp:
	removed

2005-10-21	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* src/widgets/tempo_sync_knob.cpp:
	do not implement the same code as knob does in mouseMoveEvent() - call
	knob::mouseMoveEvent() instead

	* include/knob.h:
	* src/widgets/knob.cpp:
	cleaned up a lot and fixed some bugs

2005-10-20	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* include/song_editor.h:
	decreased MAX_BPM to 999 since BPM-LCD-spinbox is intended to have
	only three digits while 1000 has four of them... ;-)

	* include/track_container.h:
	* src/core/track_container.cpp:
	trackContainer::scrollArea-class has now m_trackContainer-member
	for storing parent which makes cast of parent-widget to track-container
	(which sometimes failed...) obsolete

	* configure.in:
	check for libfst and present VST-SDK header-files

2005-10-19	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* plugins/vestige/vestige.h:
	* plugins/vestige/vestige.cpp:
	added possibility of opening plugins instead of hardcoding them ;-)

	* include/track.h:
	renamed createTrack() and cloneTrack() to create() and clone()

	* include/track_container.h:
	* src/core/track_container.cpp:
	receive drop-events -> add channel with instrument/preset

	* src/audio/audio_jack.cpp:
	removed usleep() out of loop in audioJACK::writeBufferToDev() since it
	caused LMMS to hang e.g when removing a track

	* src/core/plugin_browser.cpp:
	show hand-cursor if over a plugin-description-widget

	* src/widgets/pixmap_button.cpp:
	if pixmap-button is set non-checkable, draw active-graphic if pressed
	down and inactive one in normal state

	* include/lmms_main_win.h:
	* src/core/lmms_main_win.cpp:
	own workspace for making wheelEvent(...) is now obsolete -> removed

	* include/track_container.h:
	* src/core/song_editor.cpp:
	* src/core/track_container.cpp:
	added own scroll-area for capturing special wheel-events where a
	modifier-key (shift, control etc.) is pressed

	* src/core/song_editor.cpp:
	removed add-channel-button as it is obsolete after adding plugin-browser

	* resources/:
	improved icons such as project_*.png and sample-track-related icons

2005-10-18	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* include/channel_track.h:
	* src/tracks/channel_track.cpp:
	- moved channelButton-implementation to channel_track.src
	- added support for receiving drop-events, which makes channel-track
	  to load either the given instrument or the given preset

	* src/core/plugin_browser.cpp:
	* include/plugin_browser.h:
	added cool plugin-browser, which displays all available instrument-
	plugins which are draggable to a channel-window/button

	* include/string_pair_drag.h:
	* src/lib/string_pair_drag.cpp:
	added drag'n'drop-implementation for dragging string-pairs (key/value)
	which provides a standard-interface, although drag'n'drop has changed a
	lot in Qt 4

	* src/widgets/crystal_button.cpp:
	made mouseMoveEvent()-method much more effective

	* Makefile.am:
	* buildtools/Makefile.am:
	build buildtools in subdir instead of top-build-directory - solves
	dependendy problems with bin2res

	* src/core/file_browser.cpp:
	do not depend on typeinfo of audioFileProcessor anymore by using
	new setParameter()-method

	* include/plugin.h:
	added setParameter() and getParameter()-methods for making LMMS able to
	set parameters of a specific plugin without knowing anything about it

2005-10-17	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* buildtools/bin2res.cpp:
	* include/embed.h:
	* src/lib/embed.cpp:
	- declaration of embedded-data-descriptor is now located in embed.h and
	  part of namespace embed
	- added support for local embedded-resources which is important for
	  plugins containing their own images etc., so data and access-methods
	  are stored into namespace PLUGIN_NAME

	* include/plugin.h:
	* src/core/plugin.cpp:
	added logo-field to descriptor-structure and simplified method for
	getting descriptors of all plugins

	* include/basic_filters.h:
	removed Moog-2-filter as it is only very CPU-intensive without any
	significant difference to sound of normal Moog-filter

2005-10-16	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* src/lib/ladspa_manager.cpp:
	skip not existing/unreadable directories when searching for plugins

	* include/vestige.h:
	* src/plugins/vestige.cpp:
	make use of new instrument-play-handle

	* include/channel_track.h:
	* src/core/browser.cpp:
	* src/core/song_editor.cpp:
	* src/midi/midi_file.cpp:
	* src/tracks/channel_track.cpp:
	renamed loadPlugin() to loadInstrument()

	* include/config_mgr.h:
	* src/core/config_mgr.cpp:
	added pluginDir()-method

	* include/instrument_play_handle.h:
	added another play-handle for playing instruments which do not
	produce sound for each note

	* src/plugins/:
	renamed directory soundgenerators to plugins and modified all plugins
	for working with revised plugin-system

	* include/instrument.h:
	* include/plugin.h:
	* src/core/instrument.cpp:
	* src/core/plugin.cpp:
	splitted code from instrument up into class plugin and class instrument
	and revised plugin-system

	* include/instrument.h:
	* src/core/instrument.cpp:
	renamed files soundgenerator.* to instrument.* as well as class-name

2005-10-15	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* include/vestige.h:
	* src/soundgenerators/vestige.cpp:
	new plugin "VeSTige" for handling VST-plugins - VERY experimental,
	but at least, we get some sound out of these strange dll-files ;-)

2005-10-13	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* src/audio/audio_jack.cpp:
	do not fill up buffers if JACK-transport is not rolling but at the same
	time always handle frame-syncing-var in JACK-callback, even if JACK-
	transport is not rolling - fixes several bugs like lockups when
	removing tracks while JACK-server is pausing...

	* src/widgets/knob.cpp:
	fixed bug which caused hidden mouse-cursor forever when pressing right
	mouse-button while left one is pressed

	* src/lib/ladspa_manager.cpp:
	use /usr/lib/ladspa as default-directory if env-var LADSPA_PATH is not
	set

	* src/soundgenerators/*.cpp:
	removed obsolete defaultSettings()-method from each soundgenerator

2005-10-13	Danny McRae	<khjklujn/at/yahoo.com>

	* include/ladspa_manager.h
	* include/ladspa_sine_1063.h
	* src/lib/ladspa_manager.cpp:
	* src/soundgenerators/ladspa_sine_1063.cpp:
	added LADSPA-support and a simple soundgenerator for testing-purposes

2005-10-12	Danny McRae	<khjklujn/at/yahoo.com>

	* Makefile.am:
	* include/led_checkbox.h:
	* src/core/envelope_and_lfo_widget.cpp:
	* src/widgets/led_checkbox.cpp:
	inherit ledCheckBox from QWidget instead of QCheckBox since it sometimes
	caused graphic-errors when running on KDE with Baghira-style...

2005-10-05	Danny McRae	<khjklujn/at/yahoo.com>

	* resources/note_double_whole.png:
	* resources/note_eighth.png:
	* resources/note_half.png:
	* resources/note_none.png:
	* resources/note_quarter.png:
	* resources/note_sixteenth.png:
	* resources/note_thirtysecond.png:
	* resources/note_whole.png:
	* resources/xclock.png:
	added icons for context-menu of tempoSyncKnob

	* src/widgets/lcd_spinbox.cpp:
	emit valueChanged()-signal in wheelEvent()-method

	* include/song_editor.h:
	* src/core/song_editor.cpp:
	- added getBPM()-method
	- emit signal if BPM is changed

	* include/arp_and_chords_tab_widget.h:
	* include/envelope_and_lfo_widget.h:
	* src/core/arp_and_chords_tab_widget.cpp:
	* src/core/envelope_and_lfo_widget.cpp:
	use new tempoSyncKnob-widget instead of traditional time-knob

	* include/tempo_sync_knob.h:
	* src/widgets/tempo_sync_knob.cpp:
	added tempo-sync-knob which automatically converts fixed note-length's
	to a fixed time in ms everytime BPM is changed

2005-10-03	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* include/basic_filters.h:
	- added another moog-filter which sounds a bit better but needs MUCH
	  more CPU-time...
	- cleaned up different filter-code-branches

2005-10-02	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* include/oscillator.h:
	cast to int instead of floor()ing value in oscillator::phase() which
	makes the whole thing faster again...

2005-09-29	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* src/widgets/tab_widget.cpp:
	fixed bugs when adding widget with already existing index

	* Makefile.am:
	* include/midi_out.h:
	* include/plucked_string_synth.h:
	* src/soundgenerators/midi_out.cpp:
	* src/soundgenerators/plucked_string_synth.cpp:
	classes midiOut and pluckedStringSynth do not have slots or signals,
	so Q_OBJECT-macros were removed and MOC-code isn't compiled anymore

	* include/sgs:
	* src/core/plugin_management.cpp:
	removed because not needed anymore with new plugin-system

	* configure.in:
	* Makefile.am:
	* include/audio_file_processor.h:
	* include/channel_track.h:
	* include/midi_out.h:
	* include/plucked_string_synth.h:
	* include/sound_generator.h:
	* include/triple_oscillator.h:
	* src/core/browser.cpp:
	* src/core/sound_generator.cpp:
	* src/core/song_editor.cpp:
	* src/midi/midi_file.cpp:
	* src/soundgenerators/*:
	* src/tracks/channel_track.cpp:
	made all sound-generator-plugins shared libraries loaded at runtime,
	which gives much more flexibility because you can load songs/presets
	from people having other plugins just by adding according lib*.so file
	to /usr/lib - no need to recompile!

	* inlude/empty_sg_plugin.h:
	added empty sound-generator plugin

2005-09-28	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* include/song_editor.h:
	* src/core/song_editor.cpp:
	added combo-box for selecting zooming-factor

	* include/piano_roll.h:
	* src/core/piano_roll.cpp:
	added combo-box for selecting zooming-factor

	* include/led_checkbox.h:
	* src/widgets/led_checkbox.cpp:
	added methods for querying and setting state

	* src/core/arp_and_chords_tab_widget.cpp:
	* src/core/envelope_tab_widget.cpp:
	better alignment of widgets inside each of this tabs

	* src/tracks/channel_track.cpp:
	finished improving GUI of channel-track-window by using tabWidget
	instead of tabBar for plugin-, env/lfo- and arp-widgets

	* include/envelope_and_lfo_widget.h:
	* src/core/envelope_and_lfo_widget.cpp:
	use ledCheckBox'es instead of pixmapButton's with QLabel's

	* include/tab_widget.h:
	* src/widgets/tab_widget.cpp:
	made tabWidget more powerful:
	- use indexed tabs
	- different painting if no caption was defined
	- switch tabs if wheel-events occurs

2005-09-27	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* src/tracks/channel_track.cpp:
	began improving GUI of channel-track-window

	* projects/cool_songs/TobyDox-TheFourthDimension.xml:
	added another song...

	* include/qt3support.h:
	Qt 3.1-support

	* include/audio_alsa.h:
	define macro ALSA_PCM_NEW_HW_PARAMS_API for working with older ALSA-
	versions which offer old and new HW-param-API - we're using the new one

2005-09-26	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* many files:
	make LMMS compile with Qt 3.0 and GCC 2.95

2005-09-25	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* src/audio/audio_jack.cpp:
	- decreased wait-time from 0.5 ms to 0.2 ms in writeBufferToDev(...)
	- clear part of buffers that could not be filled for avoiding bad
	  noise in case there's no data from sound-render-thread, because it is
	  locked or got no cpu-time for some reason

	* src/core/timeline.cpp:
	do not call update() in updatePosition, call paintEvent() directly
	instead - hopefully fixes the "unexspected Xlib async replies"
	which occured in some seldom cases because there were paint-events
	generated - something that must not be done in other threads...

	* resources/source/songeditor.svg:
	* resources/songeditor.png:
	created a new song-editor-icon

	* src/core/song_editor.cpp:
	do not save play-pos from previous play-mode when beginning to play
	in different play-mode - fixes bug in timeline behaviour "back to start"

2005-09-24	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* configure.in:
	* include/audio_oss.h:
	* include/midi_oss.h:
	* src/audio/audio_oss.cpp:
	* src/midi/midi_oss.cpp:
	made LMMS compiling and working without OSS - configure detects
	whether soundcard.h is available

	* include/gui_templates.h:
	made template pointSize(...) platform-independent by not using x11-
	specific qt-classes/-functions

	* include/templates.h:
	moved pointSize-function with all the headers it depends on into
	gui_templates.h

	* src/core/mixer.cpp:
	- do not initialize member m_surroundSilence if surround is disabled
	- free silence-buffers in dtor

	* src/tracks/bb_track.cpp:
	when drawing gradient skip first and last line as a rect is painted
	over it afterwards

	* src/core/track_container.cpp:
	set modified-state for song when removing track

2005-09-21	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* configure.in:
	made 0.1.1 release

2005-09-20	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* include/about_dialog.h:
	* src/core/about_dialog.cpp:
	no need for passing parent when creating about-dialog

	* src/core/song_editor.cpp:
	- different usage of question-box in songEditor::mayChangeProject()
	  because of bugs with several qt-versions...
	- when exporting song, do use baseName( TRUE ) instead of baseName()
	  for determining base-name of rendered file

	* src/core/lmms_main_win.cpp:
	- display filename before app-name in window-title
	- only use basename of filename in window-title
	- added message referring to LMMS-homepage when clicking on
	  Help/Help

	* src/core/export_song_dialog.cpp:
	use lmmsMainWin::resetWindowTitle() for resetting window-title
	after export is done

	* src/widgets/knob.cpp:
	do not add tooltips to knobs - clicking on knob has quite the same
	effect so tooltips are just annoying

	* src/core/browser.cpp:
	when matching file-name, always convert them to lower case for also
	handling files like foo.WAV

	* src/core/config_mgr.cpp:
	added setValue(...)-call for saving working-directory after setting
	up everything - fixes bug with empty browsers after fresh personal
	installation of LMMS

2005-09-19	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* configure.in:
	made 0.1.0 release

2005-09-18	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* src/tracks/bb_track.cpp:
	revised paintEvent()-method -> bb-TCO's are now painted with a gradient!

	* src/core/song_editor.cpp:
	- call bbEditor::stop before playing to make sure play-button in
	  bb-editor is properly reset
	- call realignTracks() with parameter TRUE in wheelEvent(...)
	- some hacks for making pause-button work...

	* src/core/track_container.cpp:
	added parameter _complete_update to trackContainer::realignTracks()
	to be able to hide and show all tracks which is neccessary e.g.
	after having changed pixels-per-tact-property -> zooming in song-editor
	works now well

	* src/core/setup_dialog.cpp:
	added message-box telling the user to restart LMMS

	* include/midi_alsa_raw.h:
	* include/midi_device.h:
	* include/midi_oss.h:
	* include/midi_dummy.h:
	* include/mixer.h:
	* include/setup_dialog.h:
	* src/core/mixer.cpp:
	* src/core/setup_dialog.cpp:
	* src/midi/midi_alsa_raw.cpp:
	* src/midi/midi_device.cpp:
	* src/midi/midi_oss.cpp:
	made it possible to select and setup MIDI-device

	* include/knob.h:
	* src/widgets/knob.cpp:
	- many cleanups, coding style improvements etc.
	- added new behaviour for controlling knob -> move cursor up/down for
	  changing value
	- replaced usage of status-bar by text-float-widget

	* include/text_float.h:
	* src/widgets/text_float.cpp:
	took text-float from Rosegarden

	* include/config_mgr.h:
	* src/core/config_mgr.cpp:
	- fixed bug in configManager::setValue(): new value-pair was always
	  pushed back, even if it already existed, so result of value() didn't
	  change until restart
	- moved widget-creation-code from ctor to new method createWidgets()
	  which fixes problems with unlocalized strings in wizard because
	  embed::loadTranslation() calls configManager::inst()->localeDir()
	  for determining path to localization files - this call created all
	  wizard-widgets before actual localization was loaded...

2005-09-17	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* src/core/setup_dialog.cpp:
	added switches for disabling tooltips and turning on classical knob-
	behaviour

	* include/led_checkbox.h:
	* src/widget/led_checkbox.cpp:
	added LED-check-box

2005-09-16	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* src/core/mixer.cpp:
	clear output-buffers in ctor before using them -> avoids awful noises
	at startup

	* src/core/mixer.cpp:
	* src/lib/sample_buffer.cpp:
	* src/tracks/channel_track.cpp:
	* src/tracks/sample_track.cpp:
	use given frame-parameter in methods playing sample-buffers instead
	of mixer::framesPerAudioBuffer() -> no clicks at tact-border because
	of odd sample-frame-count

	* src/core/lmms_main_win.cpp:
	call presetPreviewPlayHandle::cleanUp() in dtor -> fixes segfault which
	which occured at exit if you previewed a channel during session

	* include/preset_preview_play_handle.h:
	* src/core/preset_preview_play_handle.cpp:
	added cleanUp()-method which deletes blind track-container containing
	preset-preview-channel

	* src/soundgenerators/triple_oscillator.cpp:
	- unified much code by defining setChecked when compiling with Qt 3
	- also set file-name of user-defined-wave as tool-tip when loading
	  settings

	* most files in src/:
	use new tooltip-system - removes qt3/qt4-compat-code

	* include/tooltip.h:
	* src/widget/tooltip.cpp:
	added tooltip-namespace with method "add(...)" for allowing transparent
	usage of tooltips, so there's no difference to code using tooltips
	whether it is compiled with Qt 3 or Qt 4

2005-09-14	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* include/mixer.h:
	* include/note_play_handle.h:
	* include/play_handle.h:
	* src/core/mixer.cpp:
	* src/core/note_play_handle.cpp:
	* src/tracks/channel_track.cpp:
	added play-handle-invalidating-feature making it possible to
	invalidate notes of which the objects they depend on do not exist
	anymore or things like that. for example channel-track-dtor
	invalidates all note-play-handles linked with according channel
	-> no segfault when deleting channel-track

	* src/core/track_container.cpp:
	pause mixer before removing track -> no segfault

	* src/lib/mmp.cpp:
	initialize m_type in mmp::multimediaProject( projectTypes )

	* src/lib/buffer_allocator.cpp:
	added mutex for better protection against parallel accesses from
	several threads - fixes some segfaults

	* src/core/lmms_main_win.cpp:
	improved ~lmmsMainWin() which now first instructs mixer to quit it's
	thread for avoiding spurious usages of objects to be destroyed
	afterwards -> no segfault at the end

	* src/core/export_song_dialog.cpp:
	* src/tracks/pattern.cpp:
	cleaned up exporting/freezing mechanisms by using mixer's new methods
	play() and pause()

	* include/mixer.h:
	* src/core/mixer.cpp:
	cleaned up mixer-thread syncing stuff by reorganizing mutexes and
	replacing m_waitMutex by m_safetySyncMutex as well as according methods
	lockWaitMutex() and unlockWaitMutex() by play() and pause()

	* src/core/setup_dialog.cpp:
	tell config-manager to save it's config-file when setupDialog is
	destroyed

2005-09-13	Stephane Thomas <sthomas/at/nerim.net>

	* locale/fr.ts:
	added French translation

2005-09-13	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* src/core/lmms_main_win.cpp:
	- show setup-dialog if LMMS is started first time or mixer uses dummy-
	  audio-driver
	- added setup-dialog-entry to settings-menu

	* src/lib/mmp.cpp:
	if saving preset, check whether file-name contains suffix ".cs.xml"
	and add it if neccessary

	* include/midi_alsa_raw.h:
	* src/midi/midi_alsa_raw.cpp:
	* src/midi/midi_device.cpp:
	- changed everything (including file-names) from midiAlsa to midiALSARaw
	- added terminate()-call in dtor for terminating thread properly

	* include/tab_bar.h:
	* src/widget/tab_bar.cpp:
	- added flag for addTab(...)-method indicating whether to use given
	  text as caption or just as tooltip
	- reduced #ifdef QT4-macros by defining some names when compiling
	  with Qt3

	* include/setup_dialog.h:
	* src/core/setup_dialog.cpp:
	added help-button in audio-setup-tab and improved geometry-stuff

	* include/audio_alsa.h:
	* include/audio_oss.h:
	* src/audio/audio_alsa.cpp:
	* src/audio/audio_oss.cpp:
	added probeDevice()-method which eases determining device-name in
	either actual audio-class as well as in it's setup-widget

2005-09-11	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* src/core/mixer.cpp:
	use new audio-settings-technology for opening audio-device

	* include/setup_dialog.h:
	* src/core/setup_dialog.cpp:
	added setup-dialog for general-, audio- and MIDI-settings

	* include/audio_alsa.h:
	* include/audio_device.h:
	* include/audio_dummy.h:
	* include/audio_jack.h:
	* include/audio_oss.h:
	* include/audio_sdl.h:
	* src/audio/audio_alsa.cpp:
	* src/audio/audio_device.cpp:
	* src/audio/audio_jack.cpp:
	* src/audio/audio_oss.cpp:
	* src/audio/audio_sdl.cpp:
	added setup-widget-technology making it possible to have audio-device-
	specific setup-widgets which can be used in setup-dialog etc.

	* include/lcd_spinbox.h:
	* src/widgets/lcd_spinbox.cpp:
	added stepping-functionality

	* include/tab_widget.h:
	* src/widgets/tab_widget.cpp:
	pass caption to constructor instead of using fixed text

	* include/tab_bar.h:
	* src/widgets/tab_bar.cpp:
	- added direction-parameter in constructor
	- added exclusive-property
	- addTab(...) returns now pointer to tab-button which gives caller
	  possibility to modify the button

	* src/core/mixer.cpp:
	save frames-per-audio-buffer-value in ctor if not set yet instead
	of saving it in dtor

	* src/lib/embed.cpp:
	do not return null-pixmap if pixmap not found

2005-09-10	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* resources/setup_audio.png:
	* resources/setup_general.png:
	* resources/setup_midi.png:
	added icons to be used in setup-dialog

	* src/audio/audio_alsa.cpp:
	* src/audio/audio_sample_recorder.cpp:
	use auto-cleaning pointer in createSampleBuffer(...) (fixes memory-leak
	in ALSA-driver)

	* include/buffer_allocator.h:
	added simple class for auto-cleaning pointers

	* src/core/mixer.cpp:
	- added delete-calls in mixer::tryAudioDevices()
	- init s_instanceOfMe-member in dtor, otherwise LMMS hangs up

	* locale/:
	* artwork/:
	moved translations and some artwork-stuff into locale- and artwork-
	directory which is going to be installed into
	LMMS-data-dir (/usr/share/lmms etc.) and shrinks executable

	* src/lib/embed.cpp:
	added possibility to have resources in external files instead of being
	linked into executable

	* configure.in:
	- use macro AS_HELP_STRING for formatting help-strings
	- removed --with-latency option as it is not needed anymore

2005-09-06	Alireza	<dr.alireza/at/gmail.com>

	* resources/ir.ts:
	added Persian translation

2005-09-04	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* src/audio/audio_oss.cpp:
	- read device-name from config-file before evaluating environment-
	  variables etc.
	- fixed bugs with device-probing (after dev-file was searched, there	
	  was no open(...)-call again so it always failed if the first open(...)
	  didn't work

	* src/audio/audio_alsa.cpp:
	read device-name from config-file before evaluating environment-
	variables or using "default"

	* src/core/lmms_main_win.cpp:
	call bufferAllocator::cleanUp( 0 ) for destroying all allocated buffers

	* include/buffer_allocator.h:
	* src/lib/buffer_allocator.cpp:
	- added clean-up-technique which removes least used buffers if
	  buffer-size exceeds limits (which depends on mixer's buffer-size)
	- added field to bufDesc indicating usage of this buf - used by
	  alloc-method for determining most used, free and matching buffer

	* include/lcd_spinbox.h:
	* src/widgets/lcd_spinbox.cpp:
	made lcdSpinBox controlable by scroll-wheel

	* src/widgets/knob.cpp:
	do not center knob if width of label is greater than actual knob

	* src/audio/audio_sample_recorder.cpp:
	use bufferAllocator instead of new[]/delete[]

	* src/core/mixer.cpp:
	- read value for frames-per-audio-buffer out of config-file and save
	  it at exit
	- free buffer at exit

	* include/config_mgr.h:
	* src/core/config_mgr.cpp:
	added value() and setValue()-method which offers all components of LMMS
	an easy way for loading/saving their settings at startup/exit

2005-09-02	Mario Izquierdo <mariodebian/at/gmail.com>
2005-09-02	Johnny Saenz <saenzac/at/hotmail.com>

	* resources/es.ts:
	added Spanish translation

2005-09-02	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* most files:
	finished changes began on 2005-08-29

	* include/buffer_allocator.h:
	* src/lib/buffer_allocator.cpp:
	- only return aligned pointers
	- small changes in API

	* resources/de.ts:
	completed German translation

2005-08-29	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* most files:
	begin to use new bufferAllocator instead of old buffer-types and
	use mixer-method for determining current number of frames per
	audio-buffer

	* include/mixer.h:
	types audioBuffer and surroundAudioBuffer don't exist anymore as well
	as the constant FRAMES_PER_AUDIO_BUFFER - use
	mixer::inst()->framesPerAudioBuffer() instead

2005-08-28	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* include/song_editor.h:
	* src/core/song_editor.cpp:
	replaced QSpinBox by lcdSpinBox for BPM-spinbox

	* include/tab_bar.h:
	* src/widgets/tab_bar.cpp:
	removed function-parameter _font_size for tabBar::addTab(...)

	* most files:
	- replaced QFont::setPointSize()-calls by according pointSize()-calls
	  which makes LMMS usable at any DPI-resolution
	- changes for Qt4-compatibility

	* include/misc.h:
	* include/template.h:
	moved misc.h to template.h and added template-function pointSize
	which sets a DPI-independent size for a given font

	* src/tracks/channel_track.cpp:
	use labeling-feature of LCD-spinbox and removed old QLabel and
	layouting-stuff

	* include/lcd_spinbox.h:
	* src/widgets/lcd_spinbox.cpp:
	- fixed bug: when moving mouse up, value was not updated properly
	- added labeling-feature
	- added valueChanged()-signal

	* src/core/arp_and_chords_tab_widget.cpp:
	set m_arpDirection correct when loading older settings

2005-08-27	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* include/channel_track.h:
	* src/tracks/channel_track.cpp:
	use new LCD-spinbox for effect-spinbox

	* include/lcd_spinbox.h:
	* src/widgets/lcd_spinbox.cpp:
	added LCD-spinbox, an improved QLCDNumber with ability of user-input

	* src/core/main.cpp:
	changed highlight- and text-color to dark white instead of glaring green
	for many people didn't like it...

	* include/audio_jack.h:
	* src/audio/audio_jack.cpp:
	- read and observe buf-size from JACK, so that writeBufferToDev() can
	  wait accordingly to it - now JACK-transport also works if buf-sizes
	  of LMMS and JACK are different
	- also free buffers in destructor and not just throw them out of list

2005-08-26	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* include/audio_jack.h:
	* src/audio/audio_jack.cpp:
	- also work with older versions which do not have jack_client_open()
	- fixed bugs
	- use bufferAllocator instead of new[] and delete[] in time-critical
	  functions

	* include/buffer_allocator.h:
	* src/lib/buffer_allocator.cpp:
	added bufferAllocator which is an optimized internal memory-manager

2005-08-24	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* include/audio_jack.h:
	* src/audio/audio_jack.cpp:
	beginning of support for JACK-transport

	* src/audio/audio_sdl.cpp:
	fixed memory leak - m_outputBuffer was not deleted in destructor

	* src/core/arp_and_chords_tab_widget.cpp:
	completed usage of switchable groupboxes by saving groupbox-states
	and evaluating them in processNote()

2005-08-22	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* resources/afp_artwork.png:
	small improvements for better usability and internationalization

	* src/soundgenerators/audio_file_processor.cpp:
	- cleanups and small improvements concerning painting
	- added missing tooltips
	- moved open-sample-button right to filename-display-bar

	* src/widgets/pixmap_button.cpp:
	changed default-pixmaps to led_yellow.png and led_off.png

	* resources/pattern_bg.png:
	resized from 2x43 to 2x25

	* src/core/name_label.cpp:
	decreased default-font

	* include/track.h:
	decreased size of track-settings-widget from 256 to 224

	* include/channel_track.h:
	* src/tracks/channel_track.cpp:
	- use labeling-feature of knob for labeling volume-knob
	- use smaller surroundArea in track-settings-widget and smaller
	  channel-button with smaller font

	* src/core/surround_area.cpp:
	made surroundArea working with different widget-sizes than default size

	* resources/background_artwork.png:
	made bg-image more pale

	* include/bb_editor.h:
	* src/core/bb_editor.cpp:
	changed painting-behaviour and made button-bg-gfx's obsolete by using
	specialBgHandlingWidget

	* include/groupbox.h:
	* src/widgets/groupbox.cpp:
	improved groupbox by adding animation and more

	* src/core/envelope_and_lfo_widget.cpp:
	* src/core/envelope_tab_widget.cpp:
	- use knobs new labeling-feature
	- use new tab-widget for target-widgets

	* include/tab_widget.h:
	* src/widgets/tab_widget.cpp:
	added own tab-widget which looks much cooler than Qt's one

	* src/core/arp_and_chords_tab_widget.cpp:
	- using now new groupbox-widget and reorganized knob/switch-positions
	- revised arpeggio-direction-buttons
	- use knobs new labeling-feature
	- removed obsolete headers

	* include/knob.h:
	* src/widgets/knob.cpp:
	added labeling-feature for automatically labeling knobs with given
	text


2005-08-21	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* src/widgets/side_bar_widget.cpp:
	* src/tracks/channel_track.cpp:
	* src/core/config_mgr.cpp:
	* src/core/piano_roll.cpp:
	* src/core/arp_and_chords_tab_widget.cpp:
	* src/core/main.cpp:
	* src/core/browser.cpp:
	replaced painting-device-dependent method setPixelSize by setPointSize

	* src/core/envelope_and_lfo_widget.cpp:
	now using new group-box which looks much cooler and is more usable

	* include/groupbox.h:
	* src/widgets/groupbox.cpp:
	added own groupbox-widget with state-LED

	* src/widgets/pixmap_button.cpp:
	delete m_bgPixmap in destructor

	* include/spc_bg_hndl_widget.h:
	- made member m_backgroundPixmap to normal QPixmap instead of pointer to
	  it which also fixes a memory leak as dtor didn't delete the pixmap
	- also use erase-pixmap of widget if available

	* include/oscillator.h:
	- made shape-functions using phase()-function for determining phase of
	  sample
	- made oscillator::phase() using modff instead of floorf-math which
	  makes the whole thing up to 20% faster

	* src/core/about_dialog.cpp:
	added URL of project-page of LMMS

	* src/core/song_editor.cpp:
	create new project if file given in cmd-line is not read-/usable

	* include/export_project_dialog.h:
	* include/song_editor.h:
	* src/core/main.cpp:
	* src/core/song_editor.cpp:
	added --render command-line-switch to render file and quit as soon as
	job is done - very good for benchmarks

	* src/core/main.cpp:
	added --version command-line-switch

2005-08-20	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* src/core/lmms_main_win.cpp:
	- extended filter for sample-browser
	- added home- and root-browser for being able to load songs, presets,
	  samples etc. from somewhere else than within lmms-working-directory

2005-07-27	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* src/core/lmms_main_win.cpp:
	* src/core/track_container.cpp:
	* src/core/track.cpp:
	by completing destructors and fixing some other small bugs there's
	finally no seg-fault when quitting app! (the bug annoying for months...)

	* include/track_container.h:
	all public-slots were made to normal public and FASTCALLed functions
	since they aren't connected to a signal anywhere and it just blows up
	qt-moc-code

	* include/sample_track.h:
	made method sampleTCO::changeLength(...) FASTCALLed since it's virtual
	and method in base-class is also FASTCALLed - eliminates crash when
	resizing sample

	* include/track.h:
	* src/core/track.cpp:
	removed unsused method setTrackWidgetHeight( int )

2005-07-26	Pedro Lopez-Cabanillas <pedro.lopez.cabanillas/at/gmail.com>

	* src/core/browser.cpp:
	* src/core/config_mgr.cpp:
	* src/core/lmms_main_win.cpp:
	* src/core/main.cpp:
	* src/core/song_editor.cpp:
	* src/lib/mmp.cpp:
	* src/tracks/pattern.cpp:
	* src/widgets/project_notes.cpp:
	small changes for compatibility with Qt 3.1

	* src/midi/midi_alsa.cpp:
	* src/midi/midi_oss.cpp:
	added MIDIDEV-environment variable for being able to choose a MIDI
	device different from the default one

2005-07-24	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* include/midi_mapper.h:
	* src/midi/midi_mapper.cpp:
	added MIDI-mapper to be used in combination with midiDevice's and/or
	MIDI-Out-Plugin which can read MIDI-maps added before

	* midi-maps/*map:
	added MIDI-maps from KMid

	* include/midi_dummy.h:
	* src/midi/midi_device.cpp:
	added dummy MIDI-driver for not crashing if no MIDI-device is available

	* src/core/piano_roll.cpp:
	- go to start of pattern when pressing home-key
	- added support for zooming

	* src/core/song_editor.cpp:
	- fixed bug with loop-points by setting current-frame-var to zero to
	  force reset of it
	- added auto-scrolling ability
	- fixed bug which caused horizontal scrollbar to have an undefined
	  max-value after starting up LMMS
	- go to start of pattern when pressing home-key
 
2005-07-23	Alexey Kouznetsov <alexey.kouznetsov/at/gmail.com>

	* resources/ru.ts:
	added Russian translation

2005-07-23	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* src/core/piano_roll.cpp:
	scroll back when stopping and play-position changes to invisible area

	* include/time_line.h:
	* src/core/song_editor.cpp:
	* src/core/time_line.cpp:
	added control-buttons to time-line making it possible to control
	things like auto-scrolling, looping and play-position after stop

	* src/midi/midi_device.cpp:
	limit volume between 0 and 127 when sending out note-on-event

2005-07-21	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* include/nstate_button.h:
	* src/widgets/nstate_button.cpp:
	added widget nStateButton which is a button able to have n different
	states with according pixmaps and tooltips

	* resources/back_to_zero.png:
	* resources/keep_stop_position.png:
	* resources/back_to_start.png:
	* resources/loop_points_off.png:
	* resources/loop_points_on.png:
	* resources/autoscroll_off.png:
	* resources/autoscroll_on.png:
	added pixmaps for buttons to be used in time-line as soon as possible

	* lmms-0.1.0rc1.tar.bz2:
	release of Release Candidate 1 of LMMS 0.1.0

2005-07-20	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* src/midi/midi_file.cpp:
	- proper handling of note-on-events which velocity 0 -> treat like
	  note-off-events makes it now possible to import a much larger amount
	  of MIDI-files
	- added progress-dialog when importing MIDI-file

	* src/core/song_editor.cpp:
	horizontal scrollbar is now placed some pixels above lower edge so that
	it doesn't take action when resizing song-editor-window at lower edge

	* src/core/track_container.cpp:
	added progress-dialog for loading project and according
	qApp->processEvents()-call -> LMMS now isn't blocked anymore while
	loading project

	* include/knob.h:
	* src/widgets/knob.cpp:
	fixed bugs caused by changes made before for scroll-wheel-support

2005-07-19	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* include/knob.h:
	* src/widgets/knob.cpp:
	added better scroll-wheel support which increases/decreases knob-value
	by 20th of range (e.g 0.05 if knob is ranged between 0 and 1)

2005-07-17	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* projects/:
	added "covers"-dir and added "Preludium and Fuge A-Minor" by J.S.Bach
	to it as first covered project ;-)

	* src/core/note_play_handle.cpp:
	- fixed bad bug in notePlayHandle::play(): instead of directly being
	  deleted, sub-notes were given to mixer to be removed when they played
	  completely but since these sub-notes are not known to mixer, it
	  couldn't delete them
	- always call channelTrack::deleteNotePluginData() in
	  noteplayhandle-dtor even if pointer to note-plugin-data is NULL so
	  that all plugins are notified when note is done (midiOut-plugin
	  needs that for sending note-off-events!)

	* include/midi_out.h:
	* src/soundgenerators/midi_out.cpp:
	new plugin midiOut which sends all notes on this channel out to
	external midi-device this is especially cool for playing arpeggio for
	key pressed on external midi-device!!
 
	* src/soundgenerators/plucked_string_synth.cpp:
	removed unneccesary inclusion of qpainter-header

	* include/midi_file.h:
	* src/midi/midi_file.cpp:
	* src/core/lmms_main_win.cpp:
	* src/core/song_editor.cpp:
	added support for importing MIDI-file (very experimental!!)

	* include/midi.h:
	* include/midi_device.h:
	moved general MIDI-stuff from midi_device.h to midi.h

	* src/audio/audio_file_device.cpp:
	added missing arg()-call to QMessageBox::critical()-call in
	audioFileDevice-ctor

2005-07-16	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* src/core/config_mgr.cpp:
	added shortcuts to navigation-buttons
	
2005-07-14	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* src/core/piano_roll.cpp:
	only play notes while editing if we're not in play-mode

	* include/song_editor.h:
	* src/core/song_editor.cpp:
	when exporting always render one additional tact at the end so that
	we don't cut off notes with delay etc.

2005-07-12	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	- successful compilation with GCC 4.0.1 ;-)

	* src/core/arp_and_chords_tab_widget.cpp:
	fixed bug responsible for playing base-notes of chords all time
	if any arpeggio selected was selected

2005-07-11	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* resources/source/wizard_files.xcf:
	* resources/wizard_files.png:
	updated project-file-icon in image

	* src/core/config_mgr.cpp:
	- ask user whether to re-run setup-wizard if config-file indicates
	  different version of LMMS
	- removed redundant assignment in configManager::loadConfigFile()
	- added additional layout for having space at the left and right side
	- increased font-size of title

	* Makefile.am:
	install LMMS-icon into LMMS-data-dir

	* lmms-0.1.0beta.tar.bz2:
	made beta-release of 0.1.0 and announced it on kde-apps.org

2005-07-10	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* presets/TripleOscillator/:
	added cool Church Organ preset and improved Xylophon preset

	* resources/de.ts:
	updated German translations and cleaned up all obsolete translations 
	and context which shrinks the file by 50K...

	* samples/instruments/:
	removed vibraphone01.ogg because of poor quality

	* src/core/piano_roll.cpp:
	- do not set what's-this-texts as tooltips for play/stop-button
	- added tooltip and what's-this-text to record-button
	- display message in piano-roll how to open a pattern if none is opened
	- always set window-title, even if no pattern is opened

	* src/core/mixer.cpp:
	using iterators in second loop in mixer::run() leads to crashes, so
	an optimized version of the old code is used now again...

	* src/core/lmms_main_win.cpp:
	added tool-buttons for new project, open/save project etc. and added
	popup-menu to new-button containing projects in template-directory

	* include/song_editor.h:
	* src/core/song_editor.cpp:
	- changed remaining method-names containing "[Ss]ong" to "[Pp]roject"
	- toggle channel-button after adding channel-track

	* include/export_project_dialog.h:
	* src/core/export_project_dialog.cpp:
	renamed from export_song_dialog.ext to export_project_dialog.ext

2005-07-09	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* all files:
	now all source-code-files but some single exceptions do not have more
	than 80 characters per line and also were made to conform one
	programming-style 

	* include/sgs:
	wrote sane soundgenerator-plugin-scanner using bash-scripting which
	replaces old, dirty and exaggerated c++-program and is also fully
	portable

	* include/lmms_main_win.h:
	* include/song_editor.h:
	* src/core/lmms_main_win.cpp:
	* src/core/song_editor.cpp:
	renamed methods newFile, openFile etc. to createNewProject, openProject
	etc.

	* resources/source/:
	- renamed filenew.png, fileopen.png etc. to project_new.png etc.
	- replaced song_file.png by project_file.png which has a new file-icon
	  with LMMS-logo inside
	- replaced preset_file.png by new graphic where the star is inside
	  of a file-icon

	* resources/source/lmms_logo.svg:
	made logo Inkscape 0.41 compatible (had problems with gradients since
	logo originally had been made with Inkscape 0.39)

	* src/widgets/project_notes.cpp:
	removed unneccessary name-strings for QActions

	* resources/project_notes.png:
	replaced 16x16-icon with 22x22-icon to provide big enough icon for
	toolbar which needs 22x22-icons

	* src/core/bb_editor.cpp:
	* src/core/song_editor.cpp:
	* src/tracks/bb_track.cpp:
	do not crash if either there're no bb-tracks but bb-editor has tracks
	or there're bb-tracks but bb-editor contains no tracks

	* src/core/mixer.cpp:
	* src/core/note_play_handle.cpp:
	* src/core/track_container.cpp:
	* src/tracks/pattern.cpp:
	rewrote loops using vectors to use iterators instead of indices etc.
	which makes it all a bit smaller and faster since we do not always have
	to access the current element using the []-operator

2005-07-08	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* src/core/envelope_tab_widget.cpp:
	* src/lib/sample_buffer.cpp:
	* src/widgets/knob.cpp:
	small fixes for making compilable with qt4

	* configure.in:
	* projects/:
	added directories "tutorials" and "recorded_loops"

2005-07-07	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* include/bb_track.h:
	added FASTCALL to moveLocation(...) and changeLength(...) which fixes
	crash-bug

	* src/core/song_editor.cpp:
	do not confirm overwriting file if new project was just saved

	* samples/:
	added a lot of new samples from wikisource and others

2005-07-06	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* include/project_notes.h:
	* src/core/song_editor.cpp:
	* src/widgets/project_notes.cpp:
	clear project-notes when clearing song (new/open file etc.)

	* src/tracks/pattern.cpp:
	ask user when he tries to freeze a pattern of a muted channel whether he
	wants to continue since freezing a pattern of a muted channel makes no
	sense (you're rendering silence!)

	* include/piano_roll:
	* src/core/piano_roll.cpp:
	- added possibility to edit the volume of notes
	- removed all bool-variables indicating whether an action is being
	  performed at the moment and introduced m_action, indicating
	  one of the actions defined in (also new) enum editActions
	- replaced m_startTone and m_startOctave with one variable m_startKey,
	  which makes a lot of code unneccessary
	- rewrote loops using note-vectors to use iterators instead of
	  indices and vector::size()
	- renamed m_evolutionHeight to m_notesEditHeight
	- replaced QMouseEvent::pos().[xy]()-calls with QMouseEvent::[xy]()
	- pianoRoll::getKey() does now take y-position (int) as parameter
	  instead of QPoint since it only needs y-position
	- use new setKey()/key()-member of note everywhere where it is possible

	* include/note.h:
	added setKey()- and key()-member which setting/getting absolute key
	of note

2005-07-05	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* configure.in:
	* projects/:
	categorized projects in "cool_songs", "demos", "misc" and "templates"
	so that we don't annoy the user with a lot projects in his/her project-
	root - have to fill up "templates" with project-templates, e.g.
	basic drum-kit, accoustic drum-kit etc.

	* most files:
	added FASTCALL-attributes to functions taking at least one parameter

	* include/audio_file_processor.h:
	* include/plucked_string_synth.h:
	* include/triple_oscillator.h:
	moved deleteNotePluginData()-method into according cpp-files which
	makes including note_play_handle.h obsolete

	* include/audio_file_processor.h:
	* include/sample_buffer.h:
	* src/lib/sample_buffer.cpp:
	* src/soundgenerators/audio_file_processor.cpp:
	added support for saving sample-rate-conversion-state in m_pluginData
	of a note which fixes bug making clicks in sound when playing a sample
	simultanously at different pitches

	* configure.in:
	check whether compiler knows floorf and powf and if not, define them
	to floor/pow

2005-07-04	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* most files:
	made LMMS compiling (and working) with Qt 3.0, GCC 2.95 and other old
	libs (compiled it under Knoppix 3.1)

	* include/misc.h:
	changed names of abs, min, max, limit to myAbs, myMin etc. for not
	conflicting with functions of STL with the same name

	* configure.in:
	* src/lib/sample_buffer.cpp:
	added support for versions of libsndfile < 1.0.11 since API has changed
	in libsndfile 1.0.11

2005-07-03	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* resources/control_env_amount_active.png:
	* resources/control_env_amount_inactive.png:
	* include/envelope_and_lfo_widget.h:
	* src/core/envelope_and_lfo_widget.cpp:
	it's now possible to control the amount of an envelope with the
	according LFO by toggling new button (otherwise the level of the LFO is
	added to the level of the envelope as it always has been)

	* src/core/envelope_and_lfo_widget.cpp:
	now you can toggle the amount of an envelope/LFO between 0 and 1 by
	clicking on according graph

	* all files:
	updated mail-address in header

	* src/audio/audio_device.cpp:
	always use SURROUND_CHANNELS as channel-count for libsrc since
	resampling is done on surround-buffers - fixes bug which was
	responsible for producing useless noise when exporting file in
	high-quality-mode

	* src/core/export_song_dialog.cpp:
	made "high-quality-mode"-switch working (disabled for some reason
	in 0.0.9...)

	* src/core/mixer.cpp:
	when restoring audio-device, also restore quality-level

	* include/bb_editor.h:
	* src/core/bb_editor.cpp:
	cleaned up a lot because there was still much code from times when
	the track-technology didn't exist and which isn't now used any more

	* src/audio/audio_alsa.cpp:
	added support for 48 KHz soundcards

2005-07-02	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* configure.in:
	* src/lib/sample_buffer.cpp:
	made it possible to compile LMMS without SDL_sound, reorganized
	sample-decoding and added libsndfile- and libvorbis-support

	* include/midi_time.h:
	added operators "=", "+=", "-=" and implemented copy-ctor

	* include/piano_roll.h:
	made currentPattern() a const method and added validPattern()

	* src/tracks/pattern.cpp:
	optimized addNote() function which uses m_note.push_back() for notes
	beyond last note

	* src/core/piano_roll.cpp:
	* src/tracks/pattern.cpp:
	when pattern is destroyed it checks whether it is currently opened in
	piano-roll and if so pattern lets piano-roll set its pointer to current
	pattern to NULL. piano-roll does now always check whether current
	pattern is not NULL. in this case it denies any actions. fixes bug which
	led to crash when having piano-roll open while deleting pattern (e.g.
	creating new file, opening file etc.)

2005-07-01	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* all files:
	replaced "location" in names of functions/variables by "position"
	for more clear and unified names

	* include/piano_roll.h:
	* include/timeline.h:
	* src/core/piano_roll.cpp:
	* src/core/timeline.cpp:
	added support for autoscroll in piano-roll when playing/recording
	pattern

2005-06-30	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* include/channel_track.h:
	* include/midi_device.h
	* include/mixer.h:
	* include/pattern.h:
	* src/core/piano_roll.cpp:
	* src/midi/midi_device.cpp:
	* src/tracks/channel_track.cpp:
	added support for recording notes from MIDI-device (e.g. MIDI-keyboard
	or virtual channel-piano) in a pattern using the piano-roll

	* include/pattern.h
	* src/core/song_editor.cpp:
	fixed bug which led to crash: when pattern was played in non-looping
	mode song-editor always called pattern::finishFreeze() even if there
	actually was no pattern-freezing-process -> added isFreezing() which
	is called by song-editor for checking whether pattern is being freezed
	before calling finishFreeze()

	* src/core/lmms_main_win.cpp:
	* src/lib/sample_buffer.cpp:
	when showing open-file-dialog, use QFileDialog::selectedFiles()[0]
	instead of QFileDialog::selectedFile() because selectedFile() returns
	incorrect file-name if user clicked on the file and then on
	"Open"-button instead of double-clicking file

	* src/audio/audio_oss.cpp:
	* src/soundgenerators/triple_oscillator.cpp:
	* src/tracks/channel_track.cpp:
	added #include <stdlib.h> for solving problems with undeclared
	functions getenv() and rand() on some distributions (e.g Slackware)

	* src/core/track.cpp:
	* src/soundgenerators/triple_oscillator.cpp:
	* src/tracks/channel_track.cpp:
	added missing #include "debug.h" for solving problems with undeclared
	assert() because of not included assert.h

2005-06-29	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* configure.in:
	* include/audio_sdl.h:
	* src/lib/sample_buffer.cpp:
	if SDL/SDL.h does not exist, search for it in SDL10, SDL11 etc. and
	include according headers in source-files (solves problems on FreeBSD)

	* README:
	updated everything a bit...

2005-06-28	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* include/envelope_tab_widget.h:
	* src/core/envelope_tab_widget.cpp:
	use button instead of knob for turning filter on/off

2005-06-27	Tobias Doerffel	<tobydox/at/users.sourceforge.net>

	* samples/effects/Makefile.am:
	don't install effect-samples into directory of basses-samples

 
