Evolving Software Logo
 
Web www.EvolvingSoftware.com

















OpenSebJ - Beta Release 0.12 (c) Sebastian Gray 2005-2006
http://www.evolvingsoftware.com/opensebj.html

About:

OpenSebJ is a pre and post production music mixing tool; allowing both real-time
composition and per-setup replay. This unique mix makes OpenSebJ a creative
and versatile audio tool.

It is released under the terms of the GNU GPL (included and available at
http://www.gnu.org/copyleft/gpl.html)

Version Details:

This is an Beta release, it has been released to gather as much feedback as
possible.
If you have an idea for a new feature, suggestion for improvements, graphics
you think would complement the release or you have some
samples you are prepared to release under a Creative Commons or a compatible
GNU GPL license, then please post your thoughts to the Source Forge message
board.

Requirements:

Windows(R) 2000 (or better)
.Net 2.0 (or better)
DX9c (or better)
Managed DirectX (October Release)

Lots of RAM (Tested with 736 Meg's, will function with less)
Lots of CPU (Tested with 1.30GHZ Celeron(R) M, will function with less but
the performance is better with more)

& Wave samples to play and use

Completed:

----v0.3 Beta------------------------------------------------------------------

Another big point release.

MDI Interface:

+ The Ghetto edition shell has been removed and the professional edition has been put in it's place. This change builds a new platform for OpenSebJ to both encourage additional user adoption and allow for future expansion.

Save Files:

+ OpenSebJ save files now save the video, images and samples in to a single .OSJ file. These files can now be distributed as a complete composition; removing reliance on the underlying directory structures. Start sharing those songs..

Track Editor (Previously LayDown):

+ This new addition contains interface improvements and additional functionality. Sample positions added can now be removed. Windows are re-sizable and scrollable.

Video Jockey:

+ The Video Portal Can now be launched full-screen. Use Alt+Tab to switch between the full screen window and the OpenSebJ editor screens. VJ'ing with OpenSebJ is now a reality.

Drum Machine:

+ The available pattern size has now been increased (supporting a full 8 beats rather than 4)

Find Audio Samples:

+ OpenSebJ now has a link to a full featured, free audio sample search engine. This search engine is also available directly at:

"http://www.evolvingsoftware.com/sample_search.html

If you have a website which you would like to be included in the search index, let us know.



----v0.2 Beta------------------------------------------------------------------

It's a big release and deserves a complete point version increase.

VJ:

+ This release introduces the capability for basic VJ'ing. You can now load and associate videos (.AVI .MPG .WMV .ASF & more) as well as loading static images (.JPG .BMP .PNG & more) and associating them to samples as well. This allows for realtime composition of video to go with the music you master. I.e. if you load a small drum sample you can assign an image to that sample, each time the drum sample is played your image is also displayed. If you want to get more sophisticated then you can load a video. There currently isn't any real limit on the size of the videos but it would generally work better with small clips that then fit better together across the complete work. Included with the download is a small effect video that you can use to try out this capability.

To access the new features first click on the Video button on the main OpenSebJ menu. Then after loading your samples click on properties and then set video to assign any image or video to your sample.

Video and images will be triggered every time the associated sample is played and as such this feature makes complete use of the other sample triggering methods already available - i.e. assigning samples to keys on the keyboard, the beat pad, the beat box, the lay down window etc. Videos can also be stopped like normal samples through the properties window.

As this features is using DirectShow - you can also load MP3's through this window. This will be expanded further in the future but for the time being go to the properties window for a sample you have loaded and then associate the MP3 to the sample instead of a video. (Doesn't work in the image slot as it load's these images as a texture directly.)



----v0.12 Beta-----------------------------------------------------------------

Bug Fixes:

Wave Graph & Tape N Splice:

+ Found under Load Samples > Properties > View; the compiler warning
presented for the Bitwise OR operation has now been removed - thanks to
Alfeu Marcatto for the patch.

Scratch:

+ Previously the sample loaded to the first deck wasn't being set to
loop. This has now been resolved.

Pitch Shifter Roll:

+ Initial frequency wasn't being set when enabled was clicked, as such the
samples would instead play at their global default frequency as set in
the sample setup window. This has now been resolved.

Laydown:

+ Double stop feature implemented, if you press stop once, it will stop
playing any new samples and if you press stop a second time any long
playing samples still playing will also stop.

Beatbox:

+ Double stop feature implemented, as above.

Refactoring:

Wave Graph:
+ Sub project has now been removed (Dependance removed in previous
version but the code is now not included in the release). All wave graph
visualisation is contained in the classes bufferGraph.cs & frmGraph.cs


----v0.11 Beta-----------------------------------------------------------------

New Functionality::

Set keys:

+ Using <CTRL> and an assigned key will now stop the sample from playing.

Scratch:

+ Cross fader implemented.

Sample Properties:

+ Unckecing 'Loop' now does not stop the sample from playing - it only
prevents the sample from re-looping. This is to help live composition
utilise the boundaries of samples and not be 100% perfect when stopping
samples.

Bug Fixes:

Scratch:

+ Checks for loaded sample before allowing play functions to be called.
+ Playing samples are now stopped when scratch window is closed.


----v0.1 Beta------------------------------------------------------------------

New Functionality::

Wave Graph & Tape N Splice:

+ Have been combined in to a single tool - this allows the wave form to
be viewed and directly controlled; rather than having a single window
displaying the waveform and another to scratch with. Oh how sexy.
+ This function is accesiable from the Load Samples > Properties > View
window.

Load Samples:

+ Save laydown positions in composition
+ Load laydown positions from composition
+ Save sample properties in composition
+ Load sample properties from composition
+ Save Modulation setup in composition
+ Load Modulation setup from composition
+ Save KeyAssign setup in composition
+ Load KeyAssign setup from composition
+ Save BeatBox positions in composition
+ Load BeatBox positions from composition

Lay Down:

+ Positions in the lay down window now show the wave form graph. This is
shaping up to be a damn sexy release.

Pitch Shifter Roll:

+ Past configurations are now displayed by default when the window is
reopened after being closed (or when the configuration is loaded from a
file.

Beat Box:

+ Setup so that all samples within the project can be used via the beat
box ( Changed check for "checks" to beatBox class array )


----v0.007---------------------------------------------------------------------

New Functionality::

Beat Box:

+ A beat box has been added. Standard type of functions, adjustment to
the BPM, On-Off initialisation interface for each sample channel.
Currently only supports the first 5 samples.
+ Calculate the ticks per second required for the selected BPM
+ Select a BMP. Tick = 6000 / BPM.
+ Each tick advances the position of the ticker by one & then plays
the appropriate sample(s)

Wave Graph:

+ Graphing samples on screen has been made possible thanks to the sample
code provided by Corinna John ( http://www.binary-universe.net/ ).

Bug Fixes::

Scratch:

+ System.Exception something has now been fixed when trying to fast
forward, reverse and all of the other scratch features. This was bug
was introduced with the frequency modulation and how now been resolved.
+ Now have access to all of the loaded samples (previously restricted to
all except the last loaded sample).

----v0.006a--------------------------------------------------------------------

0.06a is an incremental release of 0.06 (with no application code base changes)
to address issues of Manage DirectX detection during installation.
Pre-requisites are now mandatory, to complete installation - previously the
option to complete the installation without the mandatory components was
available but this has lead to confusion amongst the wider community.

----v0.006---------------------------------------------------------------------

New Functionality::

Lay Down:

+ Record sample positions to the current position of the composition play
cursor; when they are taped. When using this, make sure that the lay down
window is selected.

Bug Fixes::

Recording:

+ "System.NullReferenceException" issue resolved

Lay Down:

+ Window scroll issue resolved

----v0.005---------------------------------------------------------------------

New Functionality::

Pitch Shifter Roll:

+ Added a pitch shifter roll, allows an order to be setup, so that each
time a sample is played the next pitch shift in the sequence is
undertaken before the sample is played. I.e. set up a sample to key '1',
then setup a pitch shift sequence, high,mid,low,higher etc (using
frequency values which are transposed to on screen 'ranges' to allow
easier utilisation)
+ The Pitch Shifter Roll has been configured to be used with all existing
tools including, the Beat Pad, Tape N Splice and Key to Sample Setup.

Bug Fixes::

Version Checker:

+ Fixed globalisation issue where a double was used to store the
version number. I had never known that people use "," instead of "." for
decimal places.

Lay Down:

+ Issue of plays being reloaded after lay down window closed and
re-opened fix.

Recording:

+ Closing window issue if no recording objects has been created, causing
an exception, has been resolved.

----v0.004---------------------------------------------------------------------

New Functionality::

Version Checker:

+ OpenSebJ now automatically checks for a new version each time on
start up. A small web request is made to the server containing the
version number to check if a newer version is available. This is
available through the About Box.

Recording:

+ Added the ability to stream an audio recording to disk. The wave
audio is at a set quality of 16Bit Stereo 48Khz. The selected channel is
controlled via the standard windows audio options.

Lay Down:

+ The play cursor can now be controlled via the mouse, clicking on the
back of the window can now set the play cursor to a new position,
indicated by the play cursor.
+ Added a loop cursor point for the lay down composition; once reached
play resumes from the beginning. (Currently does not scroll with other
components, how big a loop do you need anyway? ;-)

DirectX Debug Info:

+ More detail has been added to the DirectX Debug Info, used to gather
more information about the capabilities of the hardware.

Bug Fixes::

Lay Down:

+ Resolved an issue which may of caused an exception when sliding the
track bar.
+ Resolved issue of plays not being played after the window had been
closed and re-opened.
+ Improved performance and stability during playback, only the play
cursor is now withdrawn.

----v0.003---------------------------------------------------------------------

New Functionality::

Tape N Splice:

+ Tape N Splice functionality added, allows for re-positioning of a
sample mid-play to any other position within the sample. Multiple
Splice windows can be opened at the same time for additional effect.
Can simulate scratching and provides interesting effects when used
with a reversed sample - try turning the samples frequency all the
way up for the best simulated scratch.

This was from the idea of "Play samples in reverse without buffer
reversal; on the fly (rip reverse)". What happens behind the scenes
is that the play position (cursor) is moved to the new, corresponding
location of the mouse within the form. I.e. the samples length is
relatively stretched across the form and any movement in the form
is translated to a new play position in the actual sample - simple eh?

Load Samples:

+ Filter defaults to wave files
+ Save samples in XML Composition file (currently save is limited to
saving the location and order of the samples loaded in to a composition)
+ Load samples from XML Composition file

----v0.002---------------------------------------------------------------------

New Functionality::

General:

+ Migrated to Visual Studio .Net 2005 Express (Utilising the .Net
Framework, version 2.0)

Sample Properties:

+ Added the set key option

Bug Fixes::

Lay Down:

+ Removed the full screen form action from the double click on the tool
bar
+ Fixed the issue for sample scroll - when the samples reach the 0 sample
position, which repositions them to the following sample position. When
the most recently added sample was the sample second to the top, and the
scroll function was initiated - all samples in the top most position were
moved to the second top most position (which was then the top most
position).

----v0.001---------------------------------------------------------------------

New Functionality::

Load samples:

+ Added support for 255 samples

Sample Properties:

+ Set global sample properties
+ Pan Samples
+ Loop Samples
+ Reverse Samples
+ Set volume for samples
+ Display Sample information
+ Pitch shift sample

Beat Pad:

+ Plays selected sample
+ Allows plays of samples though setup key assignments

Set keys:

+ Set a key to a sample; One or many samples can be setup to play from
one key press

Lay Down:

+ Samples can be setup in a graphical overview screen
+ Lengths of samples determines width of play representation on screen
+ Set duration of composition (defaults to 3 minutes)
+ Allows plays of samples though setup key assignments

Recording:

+ Added a record which can be played with the mouse; as if a finger was
pressing on the record

Scratch:

+ Allows movement through the sample back and forth using the mouse;

Remaining tasks::

Composition Setup:

+ Save laydown loop position in composition
+ Load laydown loop position from composition
+ Save BeatBox BPM
+ Load BeatBox BPM

Lay Down:

+ Scroll the loop cursor with the other components

Feature improvement tasks::

Composition Setup:

+ Option to save complete setup at once
+ Option to load complete setup at once

Load Samples:

+ Add a replace sample button
+ Refactor new sample class to allow for better object encapsulation
+ Addition of a sample copyright description and choice of license so
that a final license can be prepared based on the most restrictive
sample license used. I.e. if a sample is Creative Commons Non Commercial
then the default composition license will be Creative Commons Non
Commercial.
+ To support attribution, a description of the sample should also be
editable when the sample is being loaded or has been loaded. Default
contact details (such as artist name, website, email etc.) should be
storable along with a free text description of the sample.

Sample Properties:

+ Set up sample play off-set
+ Set effects on buffers

Beat Box:

+ Allow for separate sample instances within the Beat Box to have
different properties

Cross Fader:

+ Brings up/down volume of one sample while applying the reverse action
to another sample
+ Expand the functionality to move the volume for multiple samples as a
group (as if they were one sample)

Lay Down:

+ Allow different properties to be set for instance of each 'play'
+ Check that sample lengths are correct after frequency changed. (This
would require that sample property changes are monitored)
+ Refresh function to redraw plays after modification to frequency for
buffer
+ Scroll the loop cursor with the other components
+ Option to drop in a Beat Box sequence - as if it was another sample

Key Board:

+ Setup Keyboard to pitch shift samples

Scratch:

+ Set the play speed (pitch) for the sample when no mouse interaction is
occurring
+ Increase stability, better graphics support (D3D?)
+ Allow multiple fast forward and rewind speeds (to sound more like
scratches)
+ Need to lower CPU utilisation when FF or RW record

Scratch Mix Tricks:

+ Be able to edit the position, rotation, speed, duration, fader
controls, to move the 'needle' over a sample and then return on playing
+ needs to be able to be saved and assigned to a key so that when you
que up the record you can hit out a pre made scratch - just that it will
use the sample selected to perform the action.

VJ:

+ Video mixing capability coming soon - stay tuned..
+ Copy each frame displayed in to an array so that the video can be
scratched

Bugs Outstanding::

+ None currently known

Past Bugs identified with no new occurances::

Lay Down:

+ When two of the same sample are placed one after the other, an
exception can be thrown

Scratch:

+ Need to add try block to all screen drawing and forms updating as the
forms dll is being locked. (relates to Scratch)
++ Error relating to dll in use but can't seem to isolate these in try
catch blocks
----- Error Message ----
-------------------------------------------------------------------------
{Function evaluation disabled because a previous function evaluation
timed out. You must continue execution to reenable function evaluation.}

System.InvalidOperationException was unhandled

LoaderLock was detected
Message: DLL 'C:\WINDOWS\assembly\GAC\Microsoft.DirectX.DirectSound\
1.0.2902.0__31bf3856ad364e35\Microsoft.DirectX.DirectSound.dll' is
attempting managed execution inside OS Loader lock.
Do not attempt to run managed code inside a DllMain or image
initialization function since doing so can cause the application to hang.
-------------------------------------------------------------------------

Lay Down:
+ Fix up play cursor offset once the scroll position has been increased.

Ideas::

Turntables between samples; including separate volume controls and cross fader;
need a start stop type button.



SourceForge.net Logo