1.1 What is it?
Chionic is the most advanced sampler for Linux. It is not meant for loading existing sampler formats (sf2/gig/akai/etc) – though making an importer could work – The main idea behind Chionic is that you can make your huge patch libraries, with thousand of patches, and then make multitimbral songs using up to 64 midi channels. All this with only one instance of chionic, and using on-demand loading.
1.2 What are the current features?
- OSS and JACK Support (sorry, no time to make ALSA)
- Integrated Virtual Keyboard for testing samples and patches (automatically detecting the mode in which you are).
- Spectrum display for the output sound.
- Voice Counter, so you can always see how many voices is Chionic processing.
- Customizable colors for some widgets.
- Customizable keybindings for many widgets
- Sliders all show the respective values, and offer small button so you can input a value by yourself, with the range and all presented.
- Spinboxes go to top and bottom if you right click on the arrows.
- Fully Functional ‘Settings’ Menu.. no need to go like.. ‘Chionic Help’, tweak everything from the UI.
No, you dont control Samples directly, you have to make instruments.
Up to 1000 samples per bank.
Loading of stereo/quadrophonic/whathever samples in as many slots as possible, or just merge into a monophonic sample, all upon import.
Supports every single sample format thru libsndfile.
Built in extremely complete sample editor with extensible plugins. This sample editor is meant for tweaking everything sampler related:
- Loop Begin/ Loop End.
- Tuning, Autotuner.
- Realtime centered zoom, from full view to individual samples using a slider.
- Play Position Display! It displays the playback pointer INSIDE the sampler, for every voice being played.
- Sample Looping at any point, plus ping-pong (bidirectional) looping
Samples are stored in 16 bits normalized, then converted to 32bits floating point for mixing (not really any audible quality loss, since it’s CD quality).
Samples are stored in a pool and become loaded on demand, when an instrument is using them or you are editing them. They are automatically freed when not using anymore.
If you perform modifications to a sample in realtime, it will remain in memory until you save it, to avoid any kind of mistake.
Sample management is easy, with an interface full of indicators for the usage/refcount of every single sample.
Extremely fast resampler using selectable (cubic, linear, cosine or raw) interpolation method, which uses fixed point increment sections. You can have over 512 simultaneous voices with very little CPU usage. (yup!) on a 1Gz machine..
The resampler also performs volume ramping and filtering, so the quality is perfect.
Integrated declicker, which will smooth out samples that don’t start or end at DC. The result is a clean sound no matter if the samples have wrong DC. It also declicks samples that are being killed.
Experimental Sample mip-mapping feature.. in a way, it’s the best upsampling interpolation you’d ever hear… in other way, it works like shit with looped samples.. as I need to refigure out how to make them.. so It’s off by default.
- Integrated Buffer Routing System, for assigning inserts and sends to your mix.
- Integrated set of effects and presets for insert (Chorus, Reverb, Stereo FX, Stereo Echo, Band Limiter, 6,8,10,20,30 bands graphical EQs, OA-Pitch Shifter as internal plugins, plus LADSPA is supported too).
- Sends can be assigned to midi controllers.
- Very Smart algorithm for detecting inactivity of mixing channel buffers, so it can turn off inserts automatically when they are not used, for both internal and LADSPA inserts.
- Buffer counter, so you can see how well the previous feature works :)
- PANIC!!! button, to turn off all the voices.
Unlimited Banks of 128 instruments for Patches.
Patches are made by using samples from the pool.
When a Patch is loaded, the samples are loaded too.
Adjustable Velocity Sensitivity Curve.
Pitch/Pan Scale and Center Separation, to be able to make piano-like instruments.. where the bass goes to the left, and treble to the right of the pan.
Inserts PER PATCH. Besides the other inserts, you can make an effect chain with the same internal and LADSPA effects that are bind to a Patch. Also, if you modify any parameter, it will be modified in realtime in all the channels where this Patch has been assigned too.
Up to 4 ‘tones’ (sub voices) per Patch, each tone has:
- Velocity Range (from which to which velocity does the tone accept notes)
- Sensibility Curve Editing
- Note Scaling, Coarse/Fine Tuning, Pan, Start Delay
- Filters: Resonant LPF,HPF,BPF,BRF with Frequency Tracking for Cutoff, and Volume -> Cutoff Sensibility in both ways.
- Widget to edit the filter shape (cutoff/resonance) by just drawing on the Frequency Domain curve.
- Randomness factor in all of the above parameters, for a more natural sound.
- Freeform Envelopes (just draw a polygon) with Loop and Sustain Loops (which can take any 2 different points, so you can loop with any shape you want). The Display has Auto-Zooming and guides. Envelopes also display a one or more position guides which represent the place the envelopes are being played, in realtime!
- LFOs (which can be sync-ed or not) with sine, saw, square and noise waves, and editable Delay, Rate, Depth and Phase.
- Envelopes and LFO for: Volume, Pan, Pitch, Cutoff and Resonance. Use all together if you want.
- Sample/Note Table, to assign to EACH note, EACH different sample in the sample pool.
ALSA_seq MIDI Input driver, can open up to FOUR ports, so you achieve 64 input channels. All channels are mapped into the buffers screen, and due to the optimized nature of Chionic, you can use all 64 of them without any slowdown.
Midi Jitter Correction.
This means that you don’t need to run JACK at low latency in order to avoid Jitter.. even at 16k buffer sizes, the midi sent to Chionic will sound fine, with no Jitter. This was achieved using a very clever and complex hack, which shouldn’t be there because JACK should support midi in the first place :)
Due to the wonderful nature of Linux, you have to make sure that nothing is stressing the /proc file system, or else the above feature will not work correctly! Don’t run any ‘top’ operations and BE CAREFUL with KSysguardd. Failure to comply with this will result in the midi sensing thread to improperly time-stamp incoming events.. heck if I know why.
On the bright side, and if nothing of the sort is being done, you can run jack and chionic even as normal user and it’s going to work fine.