Buzé - history The project was started some time in 2002-2003 as a .bmx-reader to fix a broken song. This log was started after most ultra-basic stuff was up and running. 27. feb 2005 - lib: improved compability by separating waveout buffer size and buzz machines internal buffer size 5. mar 2005 - lib: implemented wavetable, tested with matilde and still has problems - lib: bmx samples decompression works - lib: map of machine instances used wrong key - lib: some cleaning 6. mar 2005 - lib: WorkMonoToStereo on stereo generators (f.ex matilde tracker works in stereo) 12. mar 2005 - lib: calculating better values for oscillator tables - lib: generators are only called once per work - lib: bpm/tpb etc are loaded from bmxes - lib: fixed bug in multitrack pattern loader, whoa :) - lib: connections volume and a logarithmic converter function which probably is wrong - lib: auxbuffer optimizations 20. nov 2005 - Currently stuck. Acknowledged the project is a mess and needs some reorganizations to ease debugging etc - lib: lots of stuff split into new classes CMaster and CPlayer - lib: split CMachine into CGenerator and CEffect, factoring the work()-method 21. nov 2005 - lib: callbacks now in a single class 1. dec 2005 - lib: machine-testing and minor wave-related bugfixes 3. dec 2005 - lib: does not crash when machines load too few or too many bytes from bmx - ui: compiles again, partly up to date with the recent library reorganizations 5. dec 2005 - ui: pattern editor rewrite 10. dec 2005 - ui: click on pattern 11. dec 2005 (milestone 1) - lib: bugfixes, machine compatibility improvements - lib: HD ComBO works! machine parameters weren't cleared after tick - lib&ui: code factoring - ui: machine parameter window skeleton - Jeskola Freeverb skeleton 17. dec 2005 - lib: compatibility improvements - ui: New... clears song - ui: Machine parameters skeleton - ui: Context menu for machines and connections 21. dec 2005 - lib: save almost works for simple songs w/o waves 27. dec 2005 - lib: created pattern handling classes 28. dec 2005 - lib: implemented pattern handling classes, now supports multiple tracks for same machine - ui: invested time in toolbars (still suck and non-functional) - ui: pattern editing brought up to date with new pattern classes 29. dec 2005 - lib: many small compatibility bugfixes all over - ui: client view improvements 30. dec 2005 - ui: pattern editor factorized using helper classes, connection patterns editable - lib: factorizing and cleanups 31. dec 2005 - lib: save improvements, first buze song loaded in buzz - ui: wave table, .wav loader, preliminary wave editor - ui: improved toolbars 1. jan 2006 - ui: lots of pattern editor improvements, hotkeys, stepping, octaves, wave columns, scrollbars and column labels - ui: cleanup, moving methods into .cpp and marking members as private 3. jan 2006 - lib: stop machines before first tick (some machines are saved while playing) - lib: implemented a strange case in CMICallbacks::GetEnvSize which made Jeskola Raverb work 6. jan 2006 - lib: smaller compatibility bugfixes - lib: added call to player->unlock() after missing machine failure 8. jan 2006 - lib&ui: lots of machine compatibility and usability bugfixes - lib: load/save envelopes, save wavetable. bmx'es should now be 100% loaded and saved for replaying (no comments, window positions, etc yet). - ui: live machine parameter views - Jeskola Reverb: merged in Jezars source 10. jan 2006 - ui: sequencer got hotkeys for and , plus . clears current entry 14. jan 2006 - lib: searching for vst1.1-bug, cleanups - lib: file classes updated to more generic stream classes 26. feb 2006 - ui: implemented partly index.txt-support - ui: general windowing improvements, ctrl-tab support, bugfixes - ui: more fine-grained machine parameter sliders 1. mar 2006 - lib&ui: code cleanup, stability fixes, insert/delete pattern rows, replaced .wav-loader and moved to lib - ui: several new hotkeys - ui: machine commands in machine context menu 2. mar 2006 - ui: wavetable improvements 4. mar 2006 - ui: gear index and drag+drop machines improvements - ui: attribute editing - ui: frequency analyzer window - ui: wave editor improvements, cut/copy 5. mar 2006 - ui: pattern selection, copy/paste pattern - lib: pattern serialization - lib&ui: machine preset manager and preset dropdown in machine parameters view 9. mar 2006 - lib: fixed decompressing waves <64 bytes - ui: create machines via machine view context menu from index.txt 11. mar 2006 - lib: postponed an overflow-bug in index loader with big machine interfaces - lib: solo machine - ui: sequencer update, copy/paste sequencer selections - ui: solo machine, and improved labeling of muted and solo machines - lib: using seh to catch machine crashes 14. mar 2006 - ui: sequencer stability issues and several other smaller fixes - ui&lib: delete machine 18. mar 2006 - lib: buzzhack-support implemented, Polac VST 1.1 works! 19. mar 2006 - lib: lots of compatibility fixes and other fixes: - changed processing order so that MIF_NO_OUTPUT machines are mixed first, fixed aux problems - initcommoncontrols(WIN_95_CLASSES) for nrs04, nrs05 still not always working(?) - machine state clearing bugfixes (improved matilde compatibility) - compiler and linker settings revisited - lib: major speedups in pattern creating - Jeskola Freeverb improvements 20. mar 2006 (final version 0.1) - lib: MIF_NO_OUTPUT-machines are automatically added to master (buzz hides them as well) - lib: buzzhack bpm and tpb is wrapped 28. mar 2006 - lib/freeverb: cleanup and minor reorganizations, looking for "stutter"-bugs - fixed some stuff in Jeskola Freeverb 1. apr 2006 - lib: work() code factoring, classes for CGenerator and CEffect are gone again - lib: wave recorders supported - lib: event handlers implemented as templated delegates 2. apr 2006 - lib: work() and mdk-related compatibility work for machines with MIF_DOES_INPUT_MIXING 8. apr 2006 - lib: player works again, factoring successful 9. apr 2006 - lib: clearParameters() optimization for faster playback - ui: machine state indicators, event cleanups 10. apr 2006 - ui: machine view improvements, machine context sub menus, activity signals - ui: sequencer optimizations, cursor became caret - lib: improved locking reduces random crashing in later sessions 12. apr 2006 - ui: many small fixes and cleanups, undo/redo-friendly api reorganizations, pattern editor speedups, machine slider improvements - lib: machine event improvements 13. apr 2006 - lib/ui: testing, lots of minor stability and compatibility fixes 14. apr 2006 - ui: updated WTL drawing routines in sequencer, patterns and machine view - ui: progress window during load - lib: reorganizations and cleanups, CPlayer and CMachine class interfaces are much stricter, adding comments 15. apr 2006 - lib: tweaking, tuning and bugfixing. player is more compatible than ever! 16. apr 2006 - lib: more tweaking, stability - ui: scale dropdown in sequencer works - lib/ui: insert and delete keys work in sequencer - wrote a wrapper for the original output dlls (not in use yet) 17. apr 2006 - ui: keyboard stepping in sequencer - ui: Ctrl-I/Ctrl-D inserts/deletes full row in sequencer - ui: undo/redo implemented for most of sequencer and machine view (!) 22. apr 2006 - ui/lib: pattern editor was rewritten, new apis for pattern space conversions - ui: pattern undo/redo - lib: tracked connection volumes works, improved builtin noise generator (still detuned), many other smaller fixes 23. apr 2006 - ui/lib: loads PARA section, and supporting features: - validate machine versions - dummy machines for missing machines or failed compatibility test - load error/warnings displayed after loading - skeleton for Jeskola Mixer - ui: play and stop buttons work =) 24. apr 2006 - ui: several minor fixes and updates: master patterns weren't editable, wave numbers inserted with note, undo delete note, shift+/shift- transposes selection, sequencer mouse bug 25. apr 2006 - ui: home/end keys in pattern editor, "are you sure you want to quit/clear all"-messagebox (probably buggy) - lib: dummy machines are no longer quiet - lib: some hacking to fix creating new VSTis in machine view - lib: machine subcommand bugfixes (works now + memory overwrite issue) 27. apr 2006 - lib/ui: fixed memory overwrite bugs found when cloning pattern, clone undo/redo, smaller pattern editing bugfixes 30. apr 2006 - ui: new file/wave browser, wavetable supports dropping from explorer - ui: wavetable reorganizations (no editing possible yet): wave editor implemented in wave table, wave levels, envelope.ocx-wrapper, looping points - ui: ctrl to select multiple machines, left+middle buttons connect machines, insert machine in connection, machines respond to doubleclicks - lib: fixed a bug in the bmx-reader when files had multi-level waves 1. may 2006 - lib: fixed a serious bug in the sequencer, fixes random crashing and incorrect handling of the last event in a track - lib: other minor bugfixes (dedacode slicer works, halyverb consumes less cpu, loading no-output machine pattern problem) - ui: preferences skeleton - built a basic midi-in skeleton 2. may 2006 - ui: wavetable envelopes and looping points editable (but the player does not support these yet) 4. may 2006 - ui: two bugs down: wavetable-redraw-crash and volumeslider+rightclick-crash - ui: play notes in machine view 6. may 2006 - ui: reorganized sequencer pattern selector like original buzz, a-z keys for sequence editing, ctrl-m mutes machine in the sequencer, fixed refreshing - lib/ui: MIDI-in support - ui: rewrote parameter sliders, added MIDI controller bindings - lib: merged in original audio driver wrappers. the builtin drivers can be used by recompiling with USE_BUILTIN_AUDIO - ui: uses and saves same preferences settings as original buzz - ui: invisible analyzer improvements - lib: fixed a bug loading unconnected machines 7. may 2006 - lib/ui: connection panning works - ui: master volume slider in toolbar, similar to original - lib: audio driver bugfixes 16. may 2006 - ui: ctrl-i to interpolate selected values in pattern editor, ctrl-f4/ctrl-w closes tab, sequencer pattern length indicators - ui/lib: moving code around, global bugfixing and cleanups 17. may 2006 - lib: GetWritePos implemented 19. may 2006 - lib: PARA section is saved in .bmx - lib: multi-level waves play correctly f.ex in matilde - lib: some changes in configuration persistence, using the registry for extended machine properties - ui: machine parameters scrollbars, better parameter slider message routing, global hide/show slider 23. may 2006 - ui: press shift-f5 in pattern editor to play only current pattern - ui: cut/copy/paste/clear fully implemented with undo/redo in pattern editor and sequencer - lib: the sequencer code was updated and reorganized - lib/ui: moving code around, global bugfixing and cleanups 26. may 2006 (final version 0.2) - lib: cleanups, optimizations, testing - freeverb updates 28. may 2006 - lib/ui: bypass machine via machine view right-click menu - ui: preliminary hd recording using overloaders recorder interface - lib/ui: stereo->mono connections handling (no ui for new connections yet, currently auto-left) 1. june 2006 - lib: reorganizations and some #ifdeffing to greatly reduce the number of compiler errors with GCC in non-Windows environments - lib: fixed stereo->mono connections bug - ui: pattern editor: validating min/maxvalues, mouse wheel support - ui: sequencer: cursor movement and selection updates, mouse wheel support - ui: other minor synchronization/stability fixes 13. june 2006 - lib: added code to host machines in separate processes (no UI yet, incomplete) - lib: unoptimized reference implementation of a multithreaded mixer algorithm - ui: added new view in left pane for editing div. properties (buggy, may crash related views) - ui: added player preferences tab, "Use parallell mixer"-checkbox is used to toggle single-/multithreaded mixer - lib: Polac VSTi uses an object at CMachine+0x50, the unverified fix makes VSTi's work better. - lib: more changes in internal synchronization 16. june 2006 - lib: fixed machine parameter sliders sending invalid values, which caused crashes or bad behaviour. - lib: many synchronization updates 20. june 2006 - lib: mixer routines were reviewed and reorganized, less code, less memory usage, unneccessary copying, etc. - lib/ui: synchronization updates 23. june 2006 - lib: some of the pointer ownership and memory leak problems in PatternTrack class fixed - ui: synchronization updates 24. june 2006 - ui: currently playing position in pattern editors - ui: pressing ENTER in the sequencer brings up the nearest pattern - ui: use ctrl-mousewheel to scale machines in machine view, hold down ctrl and click the background to move all machines - ui: using double-buffering in machine view and pattern editors to remove flicker 1. july 2006 - lib: audio driver sample rate is now used for all internal calculations - lib: 8-bit samples are now correctly converted to 16 bits while loading - ui/lib: abstracted wave table and implemented 24/32-bit extensions, fixed dependent ui code, updated .wav-loaders - lib: two fixes in MarC's compressor/decompressor code: the wave compressor didn't save small samples correctly, and a strange signed/unsigned word/dword problem in the decompressor introduced corruptions on floating point samples 3. july 2006 - lib: CPlayer split into private and public interfaces, hiding member variables, changes in how machines are created - lib/ui: lots of code rewrited to use player API-methods instead of accessing member variables directly - lib: the parallell mixer had a bug causing crashes on startup 4. july 2006 - stability improvements: - increased internal buffer sizes may fix some machines writing more data than they should - not mixing if connections volume or input is zero (general optimization + fixes some songs) - would crash on startup on some systems (InitCommonControlsEx(0xffff) failure) - an unknown type of crash disappeared after an update in the machine index loader - 7900s Pearl Drum (machine): got the source code from 7900 and fixed a bug in the destructor causing random crashes after use - lib: not transposing note off anymore 5. july 2006 - lib: wave recorder machines work again - lib: fix for non-SSE-users after optimization attempts gone bad a while ago - ui: wavetable updates: improved rendering, checkboxes fixes, shift-s/a=zoom/show all, wave editor cut/copy/paste with any sample format - ui: sequencer updates: ctrl up/down for pattern selection, space to paste, home/end moves to column extremes, ctrl-home/end moves to row extremes - ui: pattern editor < > keys to set current wave work on non-norwegian keyboards as well - ui: added 20+ property stubs for sequencer tracks, waves and wave levels - lib: fixed a NASTY bug! replaced the split(string)-implementation -> stability improved over longer sessions, jfr partly fix in index loader july 4 9. july 2006 - ui: added wave table tabs, envelope editing moved to a separate tab, looping and bidir checkboxes are only accessible from the properties window - ui: the analyzer is back - ui: basic toolbar improvements - lib: added some more events - ui: optimized the visual volume slider and added "Show Input Mixer" to the machine right click menu (still prototype) - lib: minor bug prevented 8-bit samples from loading - lib: PeerState and PVST improvements; moved clearParameters() and fixed a CMachine alignment bug - ui: F12 releases/enables the audio device 11. july 2006 - lib: internal parameter handling changed to behave more similar to Buzz. PeerState sounds like in the original - ui: window refreshing improvements, all cases of changing machine tracks are undo-/redoable, rename machine+pattern undo/redo - ui: ctrl-backspace always focuses the property window, the pattern property dialog is gone - ui: pattern resize undo/redo, ctrl-a marks entire pattern, ctrl-home/ctrl-end moves to top-bottom of pattern, ctrl-right/left for quick-move - lib/ui: column/track/pattern row insert/delete hotkeys: insert/shift-insert/ctrl-shift-insert, delete/shift-delete/ctrl-shift-delete - lib: support for loading songs with uncompressed waves 13. july 2006 - The project now owns a buzzlib-license - lib: first implementation of a C-library - ui: general file browser updates, wavetable folders dropdown, ctrl-r refreshes current folder, right/left for last browsed folders - ui: wine fixes - ui: looping points cannot be moved outside the wave range 14. july 2006 - ui: fixed a bug with Select All in pattern editor - ui: added support for preloading and instrument libraries in "New" machine context menu hierarchy - ui: added pattern and file browser toolbars, updated main toolbars 16. july 2006 - ui: minimize machines in machine view, will require an extension to the bmx-format to save - lib: minor stuff, fix in master::Tick for better initializations, changes in starting and stopping songs - lib/ui: all file iterator code was rewritten 24. july 2006 - lib: c library builds and plays bmx'es with native machines and audio drivers on linux thanks to paniq (!). python library almost done. - lib/ui: pattern resize crash/undo-bugs fixed, fixed international issues with < and > keys, movement fixes while scrolling - ui: clicking the sequencer ticks wont crash when clicking the white, snaps to scale, doubleclick goes to nearest pattern, click-mute in header - ui: file browser supports navigation, previewing and importing of waves from mod/xm/s3m/wav - ui: new machine parameter view sliders, type to enter a number - ui: added dummy pattern operations view (custom checkboxlist control) - ui: preliminary blacklisting, uses gear/blacklist.txt where each line contains a machine name that is skipped while loading - ui: ui preferences, toggle automatic parameter popup + a lot more 27. july 2006 - ui: hides peer machine connections from machines view - ui: ctrl-enter in sequencer inserts track at cursor position - ui: remembers last selected pattern in sequencer pattern list - ui: new pattern editor toolbar, preferences toggle pattern editor mode: pr-pattern, pr-machine or single-view like original Buzz - ui: more aggressive pattern creating, f2 works always - ui: wave preview could crash - ui: multiple machine selection in machine view - ui: numerid keypad support - ui: some machines would show incorrect parameters in the machine parameter window / presets didnt always work 29. july 2006 (final version 0.3) - ui: minor stability and usability fixes 1. december 2006 - major reorganizations after the player engine was fully separated into libzzub, highlights: - lib: audio is handled by PortAudio, midi is handled by PortMidi, harddisk recording uses libsndfile internally - lib/ui: the visual analyzer looks better and is handled by an internal buffer recorder - lib/ui: added CPU monitor - lib/ui: input mixer volume sliders work - lib: bpm is exact - lib: midi mappings are saved to bmx - lib: new zxm file format. the format will change so don't save anything yet. - ui: machine view keyjazz bugfixes - ui: file handles weren't released in the files panel - ui: hd recorder panel disabled, instead mixdowns are done via right-click in machine view - ui: wave editor got scrollbars and time ticks - new folder structure to better align with libzzub and work on other platforms 21. december 2006 - 0.4.1 - buzz2zzub: runtime patching of 11 specific machines (e.g PVST and ld mixer) - lib: many changes in native zzub plugin format - lib: zxm file format renamed to ccm - lib: initial midi out support - ui: minor updates to wave editor, drawing bugs, toolbar buttons - ui: midi out preferences - ui: parameter slider enhancements 6. january 2007 - 0.4.2 - buzz2zzub: patch for HD Monster Kick - lib: uses rtaudio instead of portaudio - lib: earlier attribute initialization fixed some stereo wrapped machines - ui: preset editing, randomize, fixed parameter scrolling bugs - ui: initial select-with-mouse in sequencer and many minor updates 31. january 2007 - 0.4.3, Power Weekend 2007 Edition - ui: major windowing overhaul: ui persistence across sessions, less memory leaks, bugfixes - ui: redo/undo wont crash with dummy machines - ui: timer toolbar - ui: ui priority adjustments - lib/ui: two methods of input recording; via input machine or directly to wavetable - changed back to original Buzz folder structure 5. feburary 2007 - ui: pattern editor could hang in single editor mode Since this file duplicates what is stated in the trac timeline and the web page summary, history.txt is discontinued. Please refer to http://trac.zeitherrschaft.org/buze/timeline for detailed changes or http://www.batman.no/buze for the latest release summary.