What is alpha?
Alpha is the first letter of the Greek/Latin alpha-bet-a. It comes first before all others.
Alpha versions are essentially direct from source and represent the current work-in-progress version of the source code. Please keep in mind that these versions are intended for testing. They could contain unknown bugs or behave improperly or unexpectedly.
If you are interested in assisting with the project, identifying and verifying a bug, asking for new features and other changes or trying out the latest features the alpha versions are for you. For communication of anything related to alpha versions please don't hesitate to contact me via e-mail.
IMPORTANT, MUST READ!
You can use the alpha for whatever you want so long as you're aware of and accept the potential consequences.
- Alpha versions are released for testing and not guaranteed to be bug-free for regular use.
- You may need to continue to use a specific alpha version to get identical results.
- You should expect that alpha versions may not work perfectly.
- New features and changes can lead to new bugs or issues.
I use only the alpha versions although I don't care much if the host happens to crash and I lose all my work. This is because I am always aware of the risk of such a thing happening and when it does I am able to fix the problem to prevent it from happening again.
Work in progress
The alpha is unstable or in other words features of the alpha version are expected to change. This is distinct from a stable release version in that if for example a bug is discovered in the release version a fix may be provided with no other changes.
For a bug in the alpha version however an in-place fix will never be provided. Instead a replacement version may be made available including potentially a fix for the bug as well as other changes which may be slightly different compared to the previous version.
In order to maintain a stable version it is necessary that a lot of additional overhead work is invested to ensure any changes are fully compatible with the previous version. For that reason unnecessary changes and additions are not made to stable versions.
How to help
At times testing may be focused on specific issues.
Otherwise, the general idea is to try to come up with new ideas to improve Xhip further before the next release as well as to keep an eye out for any bugs that might show up during use.
- Please report any bugs or issues you have with the alpha version[s].
- After checking the bug & todo lists below, if your issue isn't on the list yet let me know so I can add it.
- In normal use the plug-in should never crash.
- If the plug-in it does crash please report it immediately! If you can reliably reproduce a crash, providing instructions on how to do so will be extremely useful to me in fixing the problem. Reporting "it crashed" will not help me, I will have nearly nothing to work from with such a report without any information about what may have triggered or caused the crash.
Until the final testing stage before release small bugs (if on the known list) are not too concerning as the code may continue to change.
That said I'd be interested to hear about any bugs that are discovered in any version.
If you have read the rules (please do) the download section is at the bottom of the page.
2 Nov 2019
For Xhip Synthesizer 8.1
Removal of all background bitmaps.Completed. Ensure effect preset chunks are saved correctly.Completed.
- Preset effect bypass switch and copy/exchange.
- This should be very simple, just a switch to disable processing of preset effects. The active preset will always load/save its effects as this greatly simplifies the code. The bypass switch will be a global/control parameter and saved in the state/projects. In cases where the same set of effects should apply to any preset, the global effects will need to be used.
- To facilitate this, options "copy global to preset", "copy preset to global" and "exchange global and preset" will be offered. With the extra space now available on the GUI it is possible to increase the number of available effect slots or add more advanced features in the future.
- Complete all effect changes.
- Some prototype effect features need to be polished and finalized before release.
- Update effect preset imports.
- Some changes to a few effects were made which require mostly testing to ensure older projects load correctly. This will be relatively easy to accomplish by creating a project using all the old effects and loading it while debugging to identify any issues.
- Minor GUI tweaks,
alignment. Partially completed.
- Improved kerning in general and specifically in larger font sizes.
- Alphabetic sort function for presets in banks.
- New version/date/author chunks in preset banks.
- This will allow the plug-in to automatically apply any updated versions of "factory" banks or warn/ask the user to backup or replace when they've modified any of the "factory" content in the "library" folder.
- Linux xlib file dialog improvements.
- "Show hidden files" option.
- Fix issue with file overwrite confirmation dialog (doesn't show in all cases).
- Improvements for Windows installer (NSIS.)
- The installer needs a "getting started" chapter and a nice Xhip logo.
- Other modifications are possible too; I'll investigate more later.
- Improved Linux installation/configuration paths.
- Currently configuration and other data is written to ~/.xhip/. This will partially need to be written to /usr/share/xhip/ or similar. Due to the fact these paths depend upon the system configuration most likely the configuration will default to something like /usr/share/xhip/ and the target path will be written to a configuration file in ~/.xhip/ ... this is something I still need to work out.
- Include manual in distribution package.
- The manual PDF and plug-in are now so small they can both be included together along with "factory" preset banks. The last alphas already implemented (since r1100) default banks included directly in the plug-in itself.
For Xhip Effects 7
- Linux and OSX alpha versions
- Attempts have been made to create native Linux and OSX versions.
- So far a fully functional version of the effects are working for Linux including the GUI.
- The MacOS version remains without a GUI. This simply requires the investment of time/effort as there is no reason to expect any issues with the MacOS version.
For both Xhip Synthesizer 9 or 10 and Effects 8 or 9 or 10
- Skinning support
- While the core features of basic configuration and GUI scaling are already working, this system will likely only be partially completed for the next release of the effects. For the synthesizer some progress has been made toward a working implementation but it is not yet capable of handling user configuration.
- Full skinning
- The GUI engine used in Xhip Synthesizer and Effects includes basic configuration that was not previously exposed to the user. Work is already underway to implement a skinning and configuration system that will eventually evolve to provide all the features currently used by the plug-in GUIs.
- Complete configuration of all aspects of the GUI.
- Adjustment of widget positions.
- In-GUI menu system or configuration dialogs: skins, fonts, options.
- More advanced "skin files" including skin resources, configuration and layouts.
- Unify systems currently used in Xhip Synthesizer and Xhip Effects.
Planned for Xhip Synthesizer 9
- Map-CC 'presets' in human-readable format.
- Basic skinning support.
- This likely will not include widget positions or advanced features.
- Custom color/blend/texture modes.
- Sample configuration page.
- Store samples in presets/banks.
- Store remaining control data in presets (polyphony, unison, etc)
- Add "lock" to each to select between global/preset source.
- Preset and bank 'attachments'.
- This already works due to the RIFF-like data format.
- Text files, images, audio (for example preset comments)
- "Monophonic mode" switch to sync modulators in polyphonic mode.
- If "mono" and "tempo" modes are both enabled, attempt to read phase from song position (sync to host)
- Preset transpose/tune parameters.
- Both a global tuning affecting all KBT destinations as well as oscillators 'range'.
- Sync phase parameters.
- Both for oscillators, modulators and possibly the filter.
- MacOS version.
- A functional version has been built without a GUI. Porting of the GUI library is currently pending (= low priority.)
Planned for Xhip Synthesizer 10
- Complete skinning support.
- More effects;
- Effects routing configuration, feedback?
- Additional audio inputs?
- Sends, preset send levels?
- Sample editor (names, loop points, other parameters)
- Additional back-panel features (mutant's envelope asymptote, etc)
- OSX VST and AU plugins
- Already exists. Components of the GUI need to be ported.
- Linux VST or other closed-source compatible formats
- Already exists.
Hazy idea field
- User manual
- This is 'complete' and available on the synth page.
- I'd appreciate any help with formatting, proofing and requests for further information or new sections that should be added.
- Advanced back-panel configuration page (more wild options?)
- Additional GUIs, specifically a mini-GUI for preset browsing
- Drag & drop file support
- Extended waveshaper pre-filter (low/high?)
Planned for "Xhip 2" (different, new synthesizer)
- New skin-based GUI system
- Most of the required implementation already exists to support the existing GUI. Putting it together into a highly adaptable system is another issue.
- New waveforms, filter modes
- Already exists. Can be tested in alpha version accepting some difficulty with preset compatibility. (In other words, works now without presets.)
- Full "mod-matrix"
- Already exists. Used in current version of Xhip. A GUI is simple.
- I would prefer to call this functionality "modular signal routing" instead. "Mod-matrix" is a misnomer.
- Key mapping, splits, layering
- Mostly requires complex GUI functionality to support the features.
- Advanced effects system
- Quite simple and could be said to already exist, requires mostly GUI functionality.
- Graph-based "drawable" oscillator waveforms, envelopes and modulators
- Already exists.
- Sequencer, arpeggiator
- Components already exist depending upon how you define these features. A working tracker/sequencer exists which includes features supporting arpeggios and sequenced parameter changes. Mostly requires a lot of GUI to support the features.
Fixed or new features
26 June 2018
Updated Windows version
1 May 2018 (r1112)
This version is an updated compile of the Windows version of the plug-in matching the current features in the Linux version.
- Threaded dialogs.
- Other changes from r1100 and previous versions.
Preset library and embedded banks
14 Mar 2018 (r1100)
This is a minor tweak to r1099 which fully implements the initial "factory init state" functionality using the embedded bank content.
I would like to get this functionality released officially for all versions (Windows, Linux, MacOS) in v8.1 as soon as possible. Before that there are some features that still need to be implemented and some additional tweaks associated with file browser dialog functionality (On Windows/MacOS the native dialog should be used.) It seems unlikely that I'll be able to release a full MacOS version as the GUI still needs to be ported, but the alpha can be updated.
- Preset library works fully.
- Init state automatic generation.
- When run without an existing init state, for example upon first run of the plug-in on a user account, the plug-in will automatically load the "Xhip factory bank" from the embedded content and generate the initialization state file.
- This means new users will have the bank available immediately without being presented with an empty bank filled with "init" presets.
- Updated "Xhip factory bank" with some improved presets and other minor tweaks.
Beginning of preset library implementation
12 Mar 2018 (r1099)
This feature includes embedded "factory" banks and presets and allows additional banks to be installed to a known location. These banks can then be loaded from directly within the menu system in Xhip's GUI without using a file browsing dialog.
Still to come are improvements to this system where the standard "factory bank" will be installed along with a standard init state when the plug-in is launched for the first time. This will allow new users to have content immediately available rather than a bank filled with init presets.
- Basic preset library.
- A custom file browser and message box dialog.
- GUI improvements.
- The side-chain input switches in embedded effects are now disabled.
Native MacOS Xhip Synthesizer and Effects
25 Oct 2017 (r1037)
With both Xhip Synthesizer and Effects available on MacOS I can finally sigh and say "yes, sort of" when people ask about a Mac version of the plug-ins.
Native Linux Xhip Synthesizer and Effects
24 Oct 2017 (r1030)
- Implemented very simple double-buffering.
- This eliminates GUI flicker almost completely.
- Implemented native Xhip Effects.
- The effects are now working completely as native Linux plug-ins. This version includes the recent alpha skinning and configuration features and has a fully resizable GUI. The GUI now defaults to 2x size and no longer includes any bitmap strips for widgets. Widgets are by default rendered directly and the self-rendered widgets have been improved significantly.
Some minor issues remain but these Linux versions are now near complete ports. The one exception is the lack of a file dialog for the synthesizer but the plug-in is still very useful without it.
Xhip Synthesizer v8 Linux (embedded resources)
01 Oct 2017 (r1012)
- Added embedded GUI skin resources.
- This simplifies installation greatly. You can now simply copy the plug-in to your native vst folder and it should work.
- Added in-window custom dialogs.
- Due to xlib's lack of core support for modality (depends upon the window manager) I've been forced to create my own in-window dialog implementation.
- The current implementation provides a "message box" dialog which should make the plug-in GUI much easier to use.
- With the dialog system working it shouldn't be much trouble to implement a simplified file browser.
- Various changes and fixes (revision number +38) that I won't bother to list.
There are some important issues remaining but the GUI is very nearly complete at this point and entirely usable with some work-arounds for missing file browser dialogs. (It is possible to use .fxb or .fxp files via your host's interface for states and presets.)
Xhip Effects resize/skinning
25 Sep 2017 (r1004)
- Implemented basic resizing functionality.
- Added a GUI configuration file.
- Added feature to parse in shared skin resources.
This requires a lot more work before it is reasonably functional for the purpose of skinning or advanced configuration. For now some very basic configuration is possible along with nearly complete static GUI scaling functionality.
Xhip 8 Linux /w GUI
2 Jul 2017 (r974)
- Implemented xlib SHM buffer.
- In the end it turned out that the SHM implementation was less important than I thought. It was reasonably easy to accomplish though and is massively more efficient than the naive XPutImage method. The current implementation uses XPutImage as a fallback in case SHM isn't available but doesn't include checks associated with SHM support. Instead error-codes are checked and upon failure to allocate the SHM buffer the standard methods will be used.
- Fixed issue with GUI redraw.
- The function get_client_rect() was calling XGetWindowAttributes() as part of set_clip_rect() associated with every GUI item redrawn. Since this uses xlib's high latency communication protocol and xlib does not buffer the response the function call overhead was absolutely, unbelievably huge.
- The data is now read from cached values rather than calling into the sysdep/xlib functions.
- Improved xlib messageloop and associated code (timers, etc).
Xhip 8 Linux
30 Jun 2017 (r970)
- It's ALIVE!!!
- Seems I need to implement a slightly different bitmap blit using an xlib shared-memory extension (SHM) as the current implementation is ridiculously slow.
- Launch the plug-in first without installing the skin. It should work fine (no warning messages implemented yet but it obviously won't have the skin resource data.)
- If it works extract the skin data into ~./xhip/synth/8/ and delete the ~./xhip/synth/8/bitmap cache/ directory and content.
- Close your host and re-open the plug-in GUI and you should have bitmaps and fonts!
- TODO includes embedded resources, SHM support and beta testing before an announcement and release can be made.
- Various parts are missing: Dialogs like messageboxes and open/save file and a few other bits still need to be implemented. I'll likely use wxwidgets for this if possible. Beware the horrible messagebox stub implementation: hit a key to close it; it doesn't actually work at all.
2 Jun 2017 (r880)
- Windows XP compatiblity
- Some small changes were made to fix issues on Windows XP.
You've read the rules, right?
|r1191_presets.7z||4k||12 Nov 2019|
|xfx_crossfeed_64bit_alpha_1177.7z||343k||28 Jul 2019|
|xhip_8_linux_64bit_alpha_r1194b_INCOMPAT.7z||447k||21 Nov 2019|
|xhip_8_user_manual.pdf||148k||31 Oct 2019|
|xhip_8_windows_64bit_alpha_r1194_INCOMPAT.7z||514k||19 Nov 2019|
|xhip_factory_bank_wip_v8p1.xhipbank||51k||04 Nov 2019|
I've switched to 7z format for the alpha. It can be extracted with 7-zip, a free archiver.
- Windows Vista (recommended Windows 7 SP1 or greater)
- (XP-compatible versions could be provided if requested.)
Known bugs or issues
26 June 2018
If bugs are found please let me know and I'll update this list as well as my TODO.
- The file browser dialog remains incomplete.
- There are minor issues with the dialog such as no "show hidden files" option, the "are you sure you want to overwrite this file?" confirmation does not always work.
- The dialogs lock keyboard/mouse focus.
- This is a major issue and complex to solve. For now a work-around is to always close these dialogs before switching focus from the plug-in GUI.
- No GUI on MacOS.
- It will require a lot of time/effort to port the GUI over to MacOS. Not planned for v8.1, planned for v9.
Xhip Synthesizer Issues:
- Some features are nonintuitive (left/mid/right click on logo.)
- This requires an updated installer with a short "getting started" page.
- Additional menu-trigger buttons are not ideal; sub-menus may improve ease of use.
- Ideally it would be possible to include the manual with the plug-in (archive or installer) directly in the future.
- There are remaining minor imperfections in import of v7 presets.
- If this is noticed by anyone (mostly KBT-zeropoint related) please let me know.
- Currently it does not seem important enough to warrant further effort.