Buzzic by Stan 1901
Type: Sound tracker for 4K demos Title: Buzzic (program is not very similar to Buzz, but this word sounds funny for me, so I used it) Created by: Stepanov Andrey, 2008 Required software: .NET Framework 1.1 to run Buzzic. Compiled examples do not need .NET Framework Tested on: Windows 2000, Windows XP, Windows Vista (not sure in proper work on this platform) Main concept ============ Buzzic is a demotool for creation 4K-demos music. It's main concepts are: 1) Instrument: consists of one oscillator and several effects, applied to it. Note that since instrument contains only one oscillator, if you want more complex sound, made of several oscillators, you must create several instruments and attach them to the same note sequence. 2) Sequence: well, it's just sequence of bytes, passing through instrument. Notice that sequence is not just sound notes - sequence can be used for many other instrument parameters (e.g. filter cutoff, volume). 3) Code generation: melody can be exported in form of C++ code. If you don't want to use C++, then Buzzic is not for you :) Of course, there is always a choice of rewriting C++ program in other language. Instruments =========== Instruments are displayed in groupbox "Instruments" at the left side of main window. You can add, remove, edit and mute/unmute instruments through menu "Instruments" or by pressing menu hotkeys. Each instrument contains oscillator and set of effects, applied to it. Some of instrument parameters can be attached to sequence, while others can't. You can select sequence in combobox, placed at the right side of parameter value selection control. Parameters meaning: 1) Note. Starting frequency of oscillator, encoded in semitones. So note 45 means C-4 (440 Hz). Parameter has no meaning for noice generators. If note is zero, sound will not be generated. 2) Note end. Ending frequency of note. Oscillator frequency will linearly change between "Note" and "Note end". If "Note end" is zero, is assumed to be the same as "Note". 3) Oscillator. No comments. 4) Detune. Offset (in semitones) of frequency from "Note" and "Note end" values. 5) Length. Note length in 0.01-th of second. 6) Volume. Volume in 0.01-th of maximum volume. Note that scale is not logarithmic. 7) Attack, Decay, Sustain. ADSR length values in % of note length. 8) Filter cutoff, Resonance. Parameters of low-pass resonant filter. Note that some values (>=100) of this parameters are not valid and may produce veeery bad sound. 9) Cutoff mod(ulation). Represents changing of cutoff frequency during note replay. 10) Echo delay, repeats, damping. No comments. 11) Wrap level. Sounds above this level will be reversed down. You better play with it and listen, or look at sound graph, than try to understand explanation I've just said :) 12) Hard level. Limits sound volume to given level. 13) Compressor low and high level. Samples below low value remain unchanged while others will be non-linearly interpolated between low and high level. You can replay sound by pressing "Play" button - all sequenced values will be assumed to be zero and sound will be generated immediately. "Play on change" will cause program to play sound on any change you made to instrument. Sequences ========= Each sequence is encoded as set of patterns, each 16 values long. This value is fixed and can not be changed. Adding and removing sequences is performed by buttons on main window (Sequences groupbox). Sequence operations: - Double click OR Ctrl+I - insert empty pattern in focused position. - Double Click holding Ctrl OR Ctrl+D - remove pattern from focused position. To rename sequence double-click sequence column header. Patterns (opened via "Edit patterns" button) can be added, removed, renamed and interpolated on "Edit patterns" window. Interpolation is done by pressing "Interpolate values" button and selecting starting and ending rows. Each pattern cell can containg values from 0 to 127. Zero is displayed as empty string. Patterns operations: - Double click OR Ctrl+I - insert empty pattern row focused position. - Double Click holding Ctrl OR Ctrl+D - remove pattern row from focused position. To write pattern into sequence focus row you need and press key, corresponding to needed pattern. All pattern keys is listed at the left side of "Sequences" window. To remove pattern from sequence press '.'. Melody start and end are displayed by green and red lines on sequences window. To change them click right or left mouse button on row header. Melody ====== Melody replay is triggered by the "Play" button on main form. Value right from "BMP" control represents one row length in seconds. Value near the "Volume" scrollbox represents maximum sample volume played. This value should be less than 1, or else sound will be truncated while replaying in Buzzic or it will lead to horrible sounds while playing in compiled C++ code. To generate C++ code select "Melody\Generate code..." menu item. Opened window will display program source code you can use to play melody. While generating this code Buzzic will test for unused sequences and patterns. If you don't need them - you should remove them manually. Generated code is a little bit optimized - Buzzic will remove some unused features from the code. Menu items "Melody\Analyze ****" will display graphical representation of sound being played. I don't know if anybody really need it - I added it just for fun :) Samples ======= Archive contains two sample melodies with "buz" extension. Melodies are bad, I know, but that is just samples. Archive also contains sample program with Buzzic-created melody. Program comes in two forms: unpacked executable in folder "Release", and Crinkler-packed in "Release Crinkler". Have fun! Stepanov Andrey ICQ: 129 179 794 E-mail: andrewstepanov@mail.ru
[ back to the prod ]