i think that juce is one of the best framework out there. but it lacks some special stuff that can’t be left away. so i decided to bring juce to a new life, adding and wrapping code from my previuos frameworks into a new one called “ejuce” (which stands for extended-juce) with the same coding style (if i’m able to do that of course, but i don’t think i will compete with jules ability… just trying for perfection!!). the library is based on the concept of not modifying the juce codebase (well at least at the moment the mods on it are limited), it will adapt perfectly to it, enabling the developer to just plug a project in the main workspace, add the dependancies to the executable/plugin, change #include <juce.h> to #include <ejuce.h> and voilà ! you can use all the base classes + the new ones in a glance…
actually what is implemented:
containers
- CircularBuffer (easy to understand)
- LookupTable (easily tableize your functions for better speed improvement)
- RandomPool (a pool of numbers taken randomly)
database
- Query (callback class for your query operations)
- Database (easy sqlite3 wrapper)
math (for 3d)
- Vector (3d vector)
- Matrix (4x4 transform matrix)
- Quaternion
- Box
- OrthogonalAxes
- Face
* neural network *
- Neuron
- NeuronLayer
- NeuralNet
* scripting *
- ScriptableEngine (gamemonkey wrapper)
- ExpressionValuator (for computing expression string
* services *
- Service (something like a more specialized thread)
- ServiceManager (to add Service class to the os service abstraction)
actually it implements win32 services only but in the future it will handle linux Daemons and MacOsX ?
* text *
- RegularExpression (make easy use of regular expression on String class through the use of the complete pcre library)
* network *
- Dns
- Connection
- Listen
- HTTPGet
- HTTPServer (abstraction)
- WebServer with PageGeneration
* image *
- BmpImageFormat
* controls *
- Joystick
- TextSlider
* audio *
- TuningMap (scala microtuning support)
- BufferOperations (sse2 operations on aligned arrays)
- OggAudioFormat (add ogg/vorbis audio decode/encode)
- GenericAudioFormat (add other minor wavefile formats through libsndfile)
* audio component blocks *
- Phaser
- WaveGuide
- Limiter
- Compressor
- TubeAmp
- LinearEnvelope
- ExponentialEnvelope
- FIRFilter
- SVFFilter (single and double sampled)
- FastOscillator
- LFO
- MapMapSampleBuffer (similar to audiosamplebuffer but mipmapped)
- MipMapOscillator (resampler wrapper)
* spectrum (through fftreal) *
- SpectrumSource (handle spectra buffer manipulation)
- SpectrumSourceChannelInfo
- SpectrumManager (handles audio <> spectra conversion)
i’m looking for people really interested in complete juce in every part that would help to code, tweak, test, comment, restyle (in juce style) ejuce classes.
the coding directions of the open source cross platform extension library are:
- extends audio_source classes, adding useful types of processing components (audio processors), midi processors and utility for making synths and effects working in time and spectrum domain.
- more audio/image format types
- adding visual components: every type of user interaction / display visualization tools (especially mouse/keyboard controls)
- special network classes support for writing servers, clients
- optimized containers like stacks, queues and such…
- text manipulation classes
- wrapping and support of scripting engines
- extend internal database support
- add 3d graphics opengl support and math objects/classes for it
- make use of good external libraries if possible (like the ones for doing ffts, mp3-ogg decoding,…), instead of reinvent the wheel, just make use of the bicycles out there
- all the classes should give a good layer of abstraction and extreme flexibility.
lou