What is alpha?
Alpha is a letter in the Greek/Latin alpha-bet-a that comes first before all others. These versions are built from the newest source code for testing purposes and may contain bugs or malfunction unexpectedly.
If you are interested in assisting with the project by identifying and verifying bugs, requesting new features and tracking changes the alpha versions are for you. For communication related to alphas please contact me via e-mail.
IMPORTANT, MUST READ!
You may use the alpha so long as you're aware of and accept the potential risk.
- 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 almost solely use alpha versions and it does not bother me if it crashes and I lose my work. I am aware of the risk and when something goes wrong I am able to fix the issue.
Work in progressWhat makes the alpha special?
The alpha is unstable meaning that features of the alpha version are expected to change. A bug discovered in a release version may be fixed with no other changes.
For a bug in the alpha version, an in-place fix will never be provided. A replacement version may be made available including a fix along with other changes. 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. 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.
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
29 Feb 2020
19 Nov 2019 (r1194)
I haven't written a list of changes as many changes aren't yet finished. I'll write a list once I've completed a few more to-do tasks.
- Modulation rate division.
- Preset effects.
- GUI back-end improvements.
- New and modified effects.
- Various fixes in both Windows and Linux.
- Improved oscillator anti-aliasing kernel.
- Voice stealing switch
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||149k||27 Feb 2020|
|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)
Known bugs or issues
26 June 2018
If unlisted issues are discovered please let me know and I'll update this list as well as my TODO.
- The file browser dialog remains incomplete.
- There are issues with the dialog such as no "show hidden files" option, the "sure to overwrite?" confirmation does not always work.
- The dialogs lock keyboard/mouse focus.
- This is complex to solve. A work-around is to close these dialogs before switching focus from the plug-in GUI.
- No GUI on MacOS.
- Porting the GUI to MacOS will require a lot of time/effort. Not planned for v8.1, planned for v9.
Xhip Synthesizer Issues:
- There are remaining minor imperfections in import of v7 presets.
- If this is an issue please let me know. Currently it is not important enough to warrant further effort. The issues are KBT zero-point related and corrected by adjusting times, rates or frequencies by a unit stepYou can move by one unit step with mouse-wheel.
This only gives approximate results in some cases,
but the result is generally satisfactory.?.
- Some core features are nonintuitive.
- 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.
- The manual should be included with the plug-in.
- Ideally including the manual with the plug-in (archive or installer) directly should improve readership and education.