imitone: Mind to Melody Created by Evan Balster --- evan@imitone.com Design by Richard Hogg --- h099.com Additional development by Lou Carroll, Ty Underwood, Elizabeth Kumaki Change Log: Beta 0.13.1a -- April 9, 2024 Critical fixes for pitch tracking on Mac M1/M2, and crashes on Windows. Fixes: - Fixed a serious pitch tracker defect on newer Macs (Apple Silicon). This issue resulted in very poor tracking with the 0.9 tech and little to no tracking whatsoever when using 0.10 tech. - Prevent opening two copies of the app on Mac OS. - Fixed access violation with sound feedback (headphones button). - Fixed "worker thread" crash when output has 3 or more channels. - Windows 10/11 are no longer mis-identified as Windows 8 in reports. Changes: - Re-introduced automatic help for graphics & sound driver issues. Workarounds are available for error messages with these keywords: PortAudio, "Pa_..." "SDL", "GL", "Window" This was a server-side change and applies to older versions too. Beta 0.13.1 -- March 12, 2024 Apple Silicon support, bugfixes and a general code refresh. Changes: - Universal Mac OS build with Apple Silicon support. - Mac OS 10.12 is no longer supported. - Windows XP is no longer supported. - 32-bit Windows is no longer supported. Fixes: - Sound can now be played to dvices with more than two channels. - Note, imitone only plays sound on channels 1 and 2. - Fixed some issues when restarting audio devices. - Fixed an issue when number of ASIO channels is changed. - It's still necessary to refresh if channels are increased. Beta 0.13.0b -- September 15, 2023 A Windows-only patch fixing two bugs with VST docking. VST fixes: - Fixed erratic blinking when loading VST/VST3 in Cubase. - imitone GUI no longer stays open when unloading/deleting the VST. Beta 0.13.0a -- August 29, 2023 A small bugfix update. App fixes: - Prevent 'mainOutputToggle' crash when closing while playing sound. - Prevent 'selectedVoiceChanged' crash when manipulating audio setup. - Prevent 'service_not_found' crash with defunct key combo shift-M. - Corrected the app's minimum Mac OS X version to 10.12 in its metadata. Beta 0.13.0 -- August 25, 2023 This update moves our Windows VST plugins into beta. We made several one-time breaking changes to the VST2 and VST3. App changes: - Updated the manual with information about plugins & hotkeys. - Added hotkey 'M' to toggle mute/listening. - You may now relay MIDI from plugins to any MIDI output. - This is set up automatically when using imitone (but not studio). - Switching MIDI channels no longer interrupts imitone's algorithms. VST changes: - Combined the two VST plugin variations into one. - There are still VST2 and VST3 versions and 32/64 bit builds. - The new plugins always pass audio through. - The new plugins always output MIDI events and MIDI control changes. - App-to-app MIDI can also be used while the GUI is running. - You may open the app before your DAW to have app-to-app MIDI ready. - Projects using the old app-to-app plugin may to be reconfigured. - Re-assigned some parameters related to key & scale. - VST2 index for Pitch Bend Range and Scale subset were revised. - VST3 ID for Key Transpose was revised. - Separated 32-bit and 64-bit plugins in the installer. - imitone studio is required in order to use multiple instances of the plugin. VST fixes: - Minor scale presets no longer load a similar major scale. - Scale presets no longer reset plugins to the key of C. - Fixed lingering borderless window when closing the VST. App fixes: - Increased time limit for app closing before reporting it as an error. - Prevented "quit unexpectedly" message when reopening afterwards. Known issues: - Voice tabs may become 'jumbled' when restoring a multi-voice setup. - Some versions of GarageBand get stuck notes when rapidly changing MIDI channel. - Rare crash when outputting to uni-directional MIDI drivers on Windows / WINE. - B wholetone scales are related to the key of C# rather than B in other scales. Beta 0.12.1 -- July 21, 2023 App Changes: - Help & Info is now accessed from a tab in the titlebar. VST Changes: - imitone can 'pop in' to and 'pop out' from a VST host. - pop in provides a traditional nested plugin interface. - pop out makes the imitone window behave as a separate app. - multiple plugins and voices may be managed in this mode. - the separate window can be pinned on top. - You may now use multiple instances of the VST. - All instances of the VST must be in the same DAW. - You may not use VST2 and VST3 at the same time. - Docking with plugin windows is generally improved. Fixes: - Fixed some quirks with the titlebar on Windows. Known issues: - imitone has compatibility issues with AirPods on Mac OS 11 and up. (we advise against using imitone with any Bluetooth devices due to latency.) - The plugin window may act oddly when DAWs "shrink" plugins on high-DPI displays. Beta 0.12.0a -- June 13, 2023 Bugfixes and enhancements for the previous update. App Changes: - Added a "pin on top" button to the titlebar. - This will keep imitone on top of other windows when toggled on. - Added a Discord link to the info screen. - Updated imitone's manual. App Fixes: - Prevented a possible crash with improperly formatted device names. - Improved reporting for errors that severely compromise program state. VST Fixes: - Fixed VST failing to load saved settings in a DAW project. - Fixed VST failing to load presets. - Fixed a crash when using VST3 in Studio One. - Fixed a situational crash in the VST and VST3. Beta 0.12.0 -- June 1, 2023 This update integrates the app's designer interface into the plugins and introduces a more intuitive way to manage voices and devices. VST Plugin Changes: - VST2 and VST3 plugins now have a full UI (provided by the imitone app). - imitone is docked with the DAW while the plugin is visible. (we are still working the kinks out of this fusion) - For now, several buttons (eg, mute) do nothing to the plugin. - For now, the plugin is still limited to our classic technology. - We may break project file compatibility in a near-future plugin update. - For now, the plugin is limited to one instance per DAW. App Changes: - Voices are presented as 'tabs', similar to pages in a web browser. - Voices may be deleted or cloned to new MIDI channels using X and + buttons. (Multiple voices are only available in imitone studio.) - If the app is opened separately, the plugin will appear as a tab. - In this mode the setup tab can be used to jump to the DAW. - Audio mode is now either "shared" or "exclusive", for both input & output. - A tooltip provides some explanation about the difference between modes. - ASIO drivers are listed under 'exclusive', regardless of multi-client features. - imitone now supports duplex audio (ie, input & output) when using ASIO. - Note that ASIO only allows an app to use one driver at a time. Windows exclusive audio may be used at the same time as ASIO however. - Improved "tattle", our tool for update checks, feedback & error reports. - Queries & reports to imitone.com now use TLS encryption for enhanced privacy. - Improved the tool's design and data transparency via the "view contents" menu. - Update and error dialogs now include a "don't show again" checkbox. - This applies individually to each update version and error message. Fixes: - Fixed an issue when changing a voice's MIDI channel. - Fixed a crash when using one-way MIDI devices, especially under WINE. - Various other fixes. Known bugs: - The mute function does not take effect when closing and reopening the app. - The plugin GUI may behave oddly with certain DAWs such as FL Studio. - Volume auto-adjust doesn't currently work when using the plugin. Beta 0.11.2 -- July 7, 2022 This update significantly improves sensitivity to vocal attacks. It also addresses crash bugs related to imitone's code renovations. Changes: - Improved attack triggering, for significantly fewer "missed notes". - This applies to both classic and experimental technology. - Experimental 0.10 technology follows true loudness (dBA rather than dB). - High, harsh vocal sounds will be treated as a bit louder. - Sound Check now de-emphasizes audio below the volume gate level. - This may result in a "flapping" effect if the volume gate is set low. - imitone's builtin instrument menu can now be 'modded' like pitch ranges. - Use control-R to open your data folder, containing an example bank. - New synth patches and soundfonts must be manually installed. Fixes: - Fixed frequent random crashes on certain computers (mainly Macs). - Fixed "Voice Services" crash when audio I/O is reset by the OS. - Fixed a random crash after audio I/O is reset by the OS. - Fixed loudness limiting when playing built-in instruments. Beta 0.11.1c -- April 12, 2022 This update addresses crash bugs and restores support for old Macs. Fixes: - Restored compatibility with Mac OS X 10.11 and earlier. - Fixed a crash when restoring audio after an interruption. - Fixed an issue which could crash in Tuner. - Fixed a very rare "out of range" crash when setting up audio. - Error reports contain new info to "pinpoint" the source of problems. - Fixed unclickable area in volume bar when using voice boost. - Fixed positioning of tooltips when piano roll is vertical. Beta 0.11.1a -- April 5, 2022 This update fixes bugs with MIDI setup, opening and closing the app. Fixes: - Fixed Mac app failing to start from inside DMG installer. - A pop-up appears with instructions for completing installation. - Fixed Mac app failing when its name or folder contained spaces. - Fixed a security warning with the Windows installer (code signing). - Fixed setup "lockout" in safe mode or after switching MIDI device. - Fixed a start-up crash ("Size: Failed Memory Allocation"). - Improved the message for allocation errors. - imitone app-to-app midi is now hidden if not available. - Fixed inability to switch MIDI devices in certain situations. - Fixed "PortMidi" freeze when changing MIDI output or closing the app. Beta 0.11.1 -- March 30, 2022 This update makes imitone easier to use for live performance, via nuts-and-bolts improvements to settings and multi-voice. Part of a code overhaul paving the way to better plug-ins. New Features: - imitone studio users have more control over vibrato. - Vibrato range can be 1, 2, 3, 4, 6 or 12 semitones. - Mapping button cycles CC1, CC78 or aftertouch messages. - Added a button to refresh the list of audio devices. - imitone studio can now save and load multi-voice setups. - Settings may now be saved and loaded using the keyboard. - Use control-S and control-O on PC. - Use command-S and command-O on Mac. - imitone studio can save full multi-voice setups. - "Retry" refreshes device list when loading full setups. Changes: - Moved to a new JSON format for settings. - Auto-saved settings are restored more thoroughly at start-up. - Multi-voice setups may optionally be restored. - "Safe mode" restoring is now optional via a yes/no prompt. - "Safe mode" loads settings even if no audio is set up. - Settings are no longer lost when audio is disconnected. - Most settings can be changed even if audio is not set up. - Improved tooltips for multi-voice setup. - Pitch Bend Range button is more visible. Fixes: - Setup menus can no longer run off the edge of the window. - Octave shift no longer scrolls notes in the wrong direction. - The "application froze" prompt now cancels if the app unfreezes. - Fixed "lingering" Pitch Bend range button. - Pitch Bend Range is now properly loaded from files. Known Issues: - Compatibility with Mac OS 10.7 through 10.11 seems to be broken. - Please report any Mac OS error messages you encounter! - The Mac OS X app may refuse to open directly from the DMG. - Certain features behave oddly when multiple voices are set up. - The "sounds" menu may behave inconsistently. - Voices may be lost when attempting to change MIDI outputs. (workaround: select MIDI output with only one voice active) - Voices are deleted if the audio input is changed to "off". Beta 0.11.0a -- December 19, 2021 Bugfixes and improvements to our error reporting system. Fixes: - Solved a crash when the headphones button would fail. - Advisory tooltips now appear when this happens. - Restored compatibility with Mac OS 10.7 through 10.11. - Restored visual fidelity on Windows (NVidia and AMD graphics). - Automatic error reports are more reliable on Windows and Mac. - "quit unexpectedly" errors are now rarer and more automated. - imitone closes itself more cleanly after reporting a problem. - Improved pinpointing for issues with MIDI and Player systems. Beta 0.11.0 -- December 2, 2021 Adds basic support for MIDI 2.0 and some quality-of-life enhancements. System Changes: - Integrated MIDI 2.0 discovery engine. - A two-way link is used to scan for MIDI 2.0 information. - MIDI 2.0 "program category" is used to auto-configure instrument preset. - This requires another app or device with MIDI 2.0. - Disable this feature by switching to "MIDI 1.0". GUI changes: - Redesigned dashboard with toggles for audio input and output. - If no other sound is playing, turning on sound output enables mic playthrough. - Redesigned setup screen. - Simplified troubleshooting diagram. - Windows audio modes relabeled for clarity. - Added a horizontal/vertical view option. - Changes the direction of piano roll and note tracks. - Reflected in slide mode and vibrato buttons. - Adjusted interactions between vibrato control & absolute pitch. Fixes: - Fixed a severe memory leak when there is no audio input. - Fixed a memory leak when using exact pitch for long periods of time. - Fixed a memory leak when watching the main screen for long periods of time. - Windows app-to-app MIDI no longer reports 8 connections instead of 1. - Various internal bugfixes. Beta 0.10.2 -- March 31, 2021 A small update while we work on some big projects behind the scenes. Changes: - imitone studio now includes more specific voice pitch ranges: bass, baritone, tenor, alto, mezzo-soprano and soprano. - It is now possible to modify imitone's pitch range menu. - A file with instructions appears in AppData (open with control-R). - The tooltip for pitch range options now displays minimum and maximum pitch. - Now reversible. :) Fixes: - Run history is now properly collected by our error reporting system. - Fixed a crash ("~Downloader") when checking for updates. - Fixed a crash ("monitorStop") when using Sound Check. - Made audio device rebooting more reliable. - Upgraded PortAudio to resolve some related crashes. - Fixed a crash when failing to initialize audio ("PortAudio refresh"). - Failed audio initialization will now disable host APIs and retry. - A crash in audio initialization will disable the responsible host API in future runs. Known Issues: - This version of PortAudio may have issues when using kernel mode with sound-check or built-in instruments. Beta 0.10.1c -- December 2, 2020 A support automation update with fixes and workarounds. Changes: - Updated the manual and added links to tutorial videos. - The Windows installer includes new options, tweaks and bug workarounds. - Installation paths for VST plugins may be customized. - MESA Graphics workaround for PCs without hardware - Portaudio variations for PCs that experience audio hangs/crashes. - MSVC Runtime is now required. - Display a more helpful message when trying to run two copies of imitone. - A new AppData file (app_runs.txt) logs imitone runs, errors and hangs. (This is submitted when you choose to send error reports.) - The app automatically disables certain features if they cause a crash. - Redesigned the key-entry screen for ease of use. - Update checks and error reports include some new information: - More specific OS version - A random key unique to the run / session - A random key unique to the machine user (We use this information to compute user and error statistics) - Submitted error reports include some new information: - A log describing every time imitone was run, including crashes. - A file listing features that were disabled after causing a crash. (Only shared with us when you choose "send to imitone HQ") Fixes: - Fixed an issue that made it difficult to cancel pop-up menus. - Fixed a minor graphics compatibility issue. Beta 0.10.1b -- November 2, 2020 Fixes: Switched to modern renderer where available, to avoid compatibility issues. Improved collection of data when encountering "App quit unexpectedly" errors. Fixed a crash affecting older PCs without working OpenGL drivers. Fixed a black window when launching the app with certain graphics cards. Prevented giant log files when encountering certain graphics errors. Fixed a crash when booting without an ini file (which should never happen anyway). Removed an extraneous menu option. Beta 0.10.1a -- October 31, 2020 Fixes: Fixed an issue with the Windows installer that caused a blank green window. Known issues: imitone 0.10.1a displays the version number "0.10.1" in-app. Beta 0.10.1 -- October 29, 2020 Changes: Various changes to engine & 0.10 technology. Energy usage of 0.10 technology was reduced by 50-70%. 0.9 technology remains the default as it can still be more reliable when the environment contains a mix of low- and high-pitched sound. Added instrument & MIDI preset tabs to the preset menu. Icon adjustments in UI. The "App quit unexpectedly" error now appears immediately after a crash. Data collection for these errors is now more reliable. Fixes: Improved on issues whistling at 0.10 technology with full pitch range. (Work is ongoing; recommend using the whistle range when possible.) Miscellaneous bugfixes. Beta 0.10.0c -- February 22, 2020 Changes: Added a zoom control to the piano roll. Adjusted various in-app warnings. Fixes: Reconfigured entitlements for the app and error reporter. Addressed a mic access issue (Mac OS 10.14 and others) Addressed a startup/compatibility issue (Mac OS 10.10) Beta 0.10.0b -- February 15, 2020 Fixes: Fixed a malfunction in the 0.10 technology on Mac. Notarized the Mac build. Fixed a minor bug in graphics rendering. Made some adjustments for compatibility with old Macs. Beta 0.10.0a -- January 31, 2020 Changes: Minor adjustments to volume controls. Added an error report when imitone can't be activated. Fixes: Fixed a bug with MIDI pitch bend messages. Fixed a memory leak in the experimental technology. Fixed a crash related to the classic technology. Fixed a crash in our error & feedback tool, tattle. Addressed an incompatibility with Windows XP. Improved compatibility with Mac OS 10.7 - 10.9. Beta 0.10.0 -- January 16, 2020 Changes: Introduced experimental 0.10 pitch tracking technology. - Enable with the "atom" icon. - Powered by a machine learning model which will continue improving. - Greatly enhances "attack" note recognition. - Better at capturing brief notes. - Better in rooms with reverberation. - Susceptible to low-frequency interference. - Significantly higher CPU usage, pending optimization. Reworked imitone's volume interface. - The "max" slider was replaced by a volume knob. - When loudness control is off, the knob controls velocity. - When loudness control is on, the knob controls mic gain. - Moved the automatic pitch light for clarity. - Added a velocity/expression curve control to imitone studio. Renamed "slide mode" to "following" and consolidated it with pitch guide. - exact pitch disables key & scale. - pitch guide is implicitly on except when exact pitch is set. Simplified the volume & vibrato controls. - controls are now hexagonal on/off switches. - eliminated the "stable" vibrato setting (which did nothing in 0.9.2) - controls now say "imitate" instead of "on". Miscellaneous UI changes. - Added a warning about Windows basic audio's high latency. - Modified the about screen and added some new credits. - Various small changes. Eliminated the fast/reliable tracking setting. - You haven't seen the last of tortoise & hare! Various internal/engine changes. - Significantly restructured graphics and antialiasing code. - Made some major structural changes to imitone's internal processing. - Various other changes. Bundled version 0.9.2g of the plugin with the Windows installer. Fixes: Fixed start-up problems related to framebuffers. Fixed a slow memory leak leading to a crash after some hours. Fixed a memory corruption issue that could cause random crashes. Fixed some minor inconsistencies in the internal pitch-to-MIDI pipeline. Various other bugfixes. Beta 0.9.2d -- September 5, 2017 A Windows-only "emergency patch" to fix another Tattle issue. Fixes: Solved a malfunction when the Windows username contained a space. Beta 0.9.2c -- August 28, 2017 This update fixes some issues with start-up, graphics and error reporting. Fixes: Fixed major malfunctions related to international Windows usernames. Fixed a missing DLL error with tattle and imitone 64-bit. Fixed a graphics initialization error. Fixed a problem with graphics capability detection on some Intel cards. Beta 0.9.2b -- August 23, 2017 This update fixes a few problems with error reporting and improves multi-voice. Changes: Key and scale selections now apply to all voices unless CONTROL is held. Volume threshold changes can be applied to all voices by holding SHIFT. Fixes: Fixed a missing DLL error with tattle (our error reporter). Enabled aggressive error checks to pinpoint graphics problems. Beta 0.9.2a -- August 2, 2017 This update consists of some small bugfixes and instrumentation improvements. Fixes: The Windows installer no longer displays confusing messages. Freeze reporting was improved. imitone now renders correctly even without hardware-accelerated graphics. Disabled internal use of shaders, experimentally. Prevented crashing on Windows when JACK Audio is installed. (Note: JACK is disabled in imitone 64-bit for now) Added more instrumentation to catch graphics startup bugs. Beta 0.9.2 -- July 22, 2017 This update consists of small improvements and fixes to 0.9.1. New Features: + Pitch Bend Range Added a small button to control pitch bend range. + Flow Doodle The illustration in the setup UI now assists with setup. It shows whether app-to-app MIDI is connected (on Windows) and highlights any problems detected with inputs or outputs. We will continue improving this element over time. Changes: imitone for Windows is now a 64-bit app, improving performance by 15%. Re-designed the setup UI. - Flow doodle enhancements. - Channel selection now uses "pop-out" menus. Improved imitone's visual anti-aliasing. Improved tooltips and re-styled menus in various places. Various other small design improvements. Fixes: Fixed an error that sometimes caused CC events to be generated too often. Fixed a problem that prevented imitone from attaching logs to error reports. Various other small fixes. Beta 0.9.1 -- July 2, 2017 This build introduces built-in instruments and numerous UI improvements. New Features: + Built-in instruments Added a small selection of synthesizer instruments for stand-alone play. A switch in the setup menu toggles "instrument mode" and "controller mode". Changes: Added "pop-out menus", making various settings easier to use. - Key and scale - Slide mode - Range - Presets Redesigned the setup UI. - Added play mode switch. - Added an option for the audio output. - Added a graphic that illustrates the current setup. Fixed a confusing behavior with semitone transpose. Various other small visual changes. Fixed some incorrectly-named scales. Various other fixes. The install location on Windows no longer varies by version. (Updates after 0.9.1 will replace imitone when installing.) Fixes: Fixed a start-up crash with certain Intel graphics cards. Known issues: There is no support for duplex input/output. External MIDI devices are not available in the 64-bit build. DirectX (DirectSound) is not available in this version. Audio channel buttons after the first eight will cover other UI. Beta 0.9.0d -- January 12, 2016 Another small bugfix patch, fixing a sporadic hang/crash bug among others. Changes: Restored the "no MIDI output" option for tuner-like usage. (Reverts to Virtual MIDI on restart.) Increased kernel mode's latency slightly (for stability). The scale menu is now dimmed when scale is chromatic or has no effect. Adjusted release time to reduce pitch errors as notes end. Further improved the error and feedback UI. Further enhanced the error reporting system. Tattle is now used to check for updates. Fixes: Note names and octaves are no longer incorrect when scale is non-chromatic. Fixed a common crash in the note painter when using attack mode. Fixed a graphics start-up crash affecting certain older NVIDIA cards. Fixed excessive CPU usage in note painter when sustaining long tones. Fixed a rendering problem affecting the volume bar. Enhanced the error reporter's 'known problem' search function. Fixed some tooltip positioning issues. Known issues: Crashes with Sound Check on Mac have not been addressed. Beta 0.9.0c -- December 7, 2016 This bugfix patch builds upon 0.9.0b, which was not released. (see below) Fixes: Added some logging to track down a rare bug in note tracing. imitone now properly reports version number during start-up crashes. Fixed a problem when using both Retina and non-Retina displays on Mac. Windows builds are now dual-signed with SHA1 and SHA256. Known issues: On Mac, enabling sound check causes audio to freeze with some peripherals. Beta 0.9.0b -- December 7, 2016 This patch fixes more crash bugs, mostly related to Windows ASIO. The manual was changed slightly and brought up to date for Mac. Fixes: Fixed a crash after failing to reboot an audio device. - (Manifested when opening other music apps or unplugging inputs.) Fixed a memory violation when using certain ASIO inputs. Fixed a profiler association issue affecting certain audio inputs. The "imitone closed unexpectedly" report no longer delays the app opening. Improved chances of logging SEH errors when the error handler fails. An error report appears if accelerated graphics are unavailable on Windows. imitone for Windows is less picky about portaudio_x86 DLLs. imitone's installer now correctly detects the Visual C++ runtime. Beta 0.9.0a -- December 5, 2016 This patch fixes a few crash bugs and enhances error reporting. Changes: If imitone does not close normally, it will reopen in "safe mode". - No audio input will be selected at startup. Improved the HTML manual. - Now mentions "quick-bend" feature. The error reporter was improved. - Some technical info is displayed in the report dialog. - Reports include more more timestamp information. - The app log includes more information about audio systems. - Known error searches are more robust. Made it possible to upload audio samples made inside imitone. - Hold C to record up to 30 seconds of audio. - Press R to replay the recording. - Send feedback after recording and audio will be attached. Fixes: Fixed a GUI crash when no audio input is selected. Beta 0.9.0 -- December 1, 2016 A very large update focused New Features: + Presets Allows the user to select useful combinations of settings. Each preset is optimized for a certain category of instruments. They may be selected with the number keys. + Hold Mode (prototype) The new default slide mode for imitone. Does not change notes unless player's voice has settled. + Pitch Guide (prototype) An automatic pitch correction function. Detects when the player is out of tune, and automatically compensates. + Quick-Bend Temporarily engage pitch slides by holding the spacebar. Lock and hold modes will switch to legato mode. Sweep, legato and portamento modes will switch to bend mode. Bend mode will switch to hold mode. + More Scales Added six new scale types including minor, blues and bebop. Changes: imitone's entire UI was re-designed. - The piano roll was re-designed. - Keys are now at the top. - Note and tone lines are painted in a nicer style. - Note lines portray legato and bending more clearly. - Notes look different in attack and sustain modes. - Inactive note tracks are now dimmed. - The tuner was redesigned. - The concept of a "stabilizer" was eliminated. - The dark needle is always present and indicates voice pitch. - A secondary needle indicates guided pitch. - The scale menu was improved. - Key and scale may be adjusted separately. - The devices UI was restyled. - A new feedback UI was created. - The cursor now changes when hovering on buttons or sliders. - Text is somewhat crisper throughout the UI. - Tooltips were adjusted. - A few new warnings were added. Note interpretation was fine-tuned. - imitone is more intelligent about note continuity. - Lock Mode now behaves as a more conservative Hold Mode. - Made note sliding more conservative (less messy) - Some issues with Attack Mode were corrected. - Various other subtle adjustments. imitone was optimized for multi-core processing and low-power CPUs. - imitone is significantly more reliable when CPU usage is high. - It is possible to run more simultaneous voices than before. The audio system was upgraded. - ASIO configuration changes now take effect automatically. - imitone will attempt to reset itself when the stream is frozen. - It is possible to manually reset audio with F5. (Hotkey may change.) - imitone is better at sharing inputs with other apps on Mac OS X. - Windows Kernel Mode requests slightly lower latency. The error handling and reporting system was greatly improved. - Submits error reports automatically over the internet. - Can find solutions to known problems. - Allows you to write a message to us. - Allows you to review report contents before sending. - Catches new types of errors. Added support for Retina displays. imitone for Mac is now 64-bit only. Fixes: Improved graphics probing so that fewer computers will revert to software rendering. ... Contact us for a solution if hardware graphics are unavailable to you. Some device-dependent start-up crashes were fixed. (See: audio system was upgraded) Fixed a start-up error affecting some Windows computers with AMD graphics cards. Fixed some weirdness when opening the README or error files on Windows. Prevented misleading 'input overflow' warnings on OS X. Upgraded the Windows Virtual MIDI driver, improving Windows 10 compatibility. Various other bugfixes related to audio I/O. Various other general bugfixes. Beta 0.8.2 -- July 14, 2016 This update introduces the note interpreter stage, improving imitone's translation. The internal pipeline was enhanced and prepared for next-gen development. A few improvements from 0.9.0 research were added to the tracking system. New Features: ... None. Changes: Added a new "interpretation" stage to imitone's pipeline. - Fewer drop-outs. - Transitions between notes are much less erratic. - Generally improved sense of control. Various parts of the tracking algorithm were improved. - Deep bass voices now track much better. (But not vocal fry!) - "Octave-down" errors were substantially reduced. - Improved behavior during long pitch slides. - The latency difference in "reliable" mode was reduced by about 30%. - Adjusted and fine-tuned various parameters. Altered imitone's settings file format. - 0.8.1 settings will be lost. - It is a little easier to change settings like range by hand. - The settings file now includes a few helpful comments. CPU usage was reduced by 10-20%, depending on machine. Note mode is now called "slide mode". Renamed "slide" option to "sweep". Settings are preserved better in multi-channel performances. Auto-adjust was adjusted (ha) to better tolerate irregular tones. Fixes: Fixed a crash related to device selection. Fixed a graphics-related startup error. imitone now properly remembers the trigger mode setting, among others. Fixed a bug that caused stuck notes in certain receiving apps. Fixed an issue where imitone would leave notes playing when closed. Fixed a problem with sticking notes during sleep mode. Various other small fixes. Beta 0.8.1 -- February 5, 2016 New Features: + Hard Triggering A new trigger mode ideal for guitars, pianos and other stricken/plucked instruments. New notes are only triggered by sounds which begin suddenly. Attack power appears as a dot on the volume bar. Power control is based on attack, and does not change during the note. This mode is recommended for guitars, pianos and mallets, among others. + Warnings & Guidance imitone now displays warnings and advice when it detects certain problems: - Overly loud input - Silent input - Frozen input - CPU overload - No audio device - Unclear tone (identifies sources of tracking errors) - Out of range (too high) - Sudden sounds while using soft mode - Sustained sounds while using hard mode + New Note Mode: Lock This mode prevents notes from changing, regardless of slides in the actual pitch. This is useful with hard triggering, pending "hold mode" in 0.8.2. Changes: imitone consumes about 33% less CPU. Various subtle improvements have been made to pitch tracking. In particular: Pitch tracking is somewhat less "jittery" when the tone is unclear. Various new measures were taken against "octave errors". Tone Stabilization was rewritten again, making it more effective and responsive. ...A still more effective stabilizer is planned. Volume levels and quiet sounds are tracked somewhat more accurately. imitone for Mac now uses a "pro audio" stream configuration. (This makes imitone somewhat less likely to choose a conflicting sample-rate.) Pitch bend is no longer reset to zero when notes end. Long-range pitch bend now uses a range of 24 semitones (two octaves in each direction). imitone transmits a default expression (CC11) value when this articulation is disabled. (This prevents a confusing problem where instruments can be silenced.) Fixes: Fixed a problem which could prevent imitone from responding to hotkeys. Fixed an error that could cause pitch bend to display improperly. Sudden, extreme changes in pitch can cause the stabilizer to fluctuate wildly. Known issues: Note mode is not saved between runs. Trigger mode is not saved between runs. ASIO occasionally causes a crash. Beta 0.8.0 -- November 5, 2015 This update introduces a greatly improved pitch tracking system. The accuracy and latency are significantly improved. New Features: + Pitch Range Allows the user to select from three pre-configured pitch ranges: Vocal, whistle and full (encompassing both). Using vocal or whistle range reduces CPU usage. + Scale Button Allows the user to switch between a variety of scales. This will be developed into a proper menu later. + Tracking Mode (tortoise & hare) Allows a choice between responsive and careful pitch tracking. This is experimental and may be removed later. + Note Mode Consolidates the former "glide" and "bend" settings. A new "portamento" mode has been added. More modes will be added later. Changes: Tone Stabilization was rewritten and improved slightly. ...But a much more effective tone stabilizer is planned. Automatic volume adjustment is now much more intelligent. imitone's visual size was increased from 500x550 to 600x660. The sequencer's appearance was adjusted, and notes now appear rounded. The UI was re-designed for a more polished, less "fuzzy" appearance. Fixes: Fixed (?) a bug which prevented imitone from working on Windows when the system username contains foreign characters Input and output devices are now properly remembered between runs. The automatic volume setting is properly remembered between runs. Various other problems not listed. Known issues: CPU usage is generally higher than in 0.7.0, pending optimization. - Setting the range to "vocal" or "whistle" helps. Pitch tracking is jittery when the user's voice is not much louder than background noise. Note range is not stored between runs. * * * * * * * * * Beta 0.7.0 -- January 31, 2015 This update focuses on improvements to analysis and MIDI generation. Changes: Pitch tracking is significantly improved, especially for deeper timbres. The UI was redesigned with a new look for the keyboard and shut-off notes. Reduced CPU usage somewhat. Control-clicking the pitch bend button now activates long-range pitch bend. The receiving synthesizer must support pitch bend range configuration! Engaging pitch-bend mode now turns off scale snapping. Implemented manual .ini file setting for pitch detection range. This can be used to save CPU or pick up pitches outside the standard range. Use this format, with MIDI note values between 0-127: set imitone.note_bottom 36 set imitone.note_top 84 Implemented manual .ini file setting for buffer size. This can be used to lower imitone's I/O latency. Use this format, where the value is a sample count: set imitone.buffer_size 64 imitone now requests a 128-sample buffer on Mac, and with Kernel / ASIO modes on Windows. (All other modes use 256, except multimedia mode which is 512.) Tweaks to MIDI sequencing: - Pitch glide now utilizes the legato pedal controller. - imitone always switches the MIDI receiver to mono mode. - Pitch bend and vibrato controllers are no longer reset when a note ends. - Controllers are now truly inactive when shut off. (formerly they would send "default" values with each note) - It is now possible to configure large pitch-bend ranges. The license key entry interface now supports copy-paste. Consolidated MIDI device selection to one dialog box. Hid some extraneous audio modes on Windows -- the set offered varies by OS version. MIDI channels now light up in device configuration when transmitting notes. Up to 32 audio input channels may now be recognized and displayed in the interface. Drop-down menus now prefer to drop DOWN instead of pop up. Fixes: Deactivated a scripting module that caused start-up to fail on certain (very old) computers. Fixed a problem that could cause articulation values to "stick" after they were shut off. Fixed a display bug when re-opening imitone with a MIDI output channel other than 1. Various other small fixes. * * * * * * * * * Beta 0.6.1a -- November 11, 2014 This update fixes various bugs, improves audio channel support and adds freeze diagnosis. Changes: imitone can now use up to 32 channels of audio input (formerly 8) Note: due to a UI issue only about 19 of these can be selected. Added a method to detect and report application freezes. imitone now automatically configures its graphics based on available capabilities. Fixes: Fixed a routing issue introduced in 0.6.1 that locked imitone to the last audio channel. (EG, an 8-channel interface would always use channel 8; stereo always used Right.) Most "graphics initialization" errors should be fixed by auto-configuration. Beta 0.6.1 -- October 30, 2014 This update addresses problems that could corrupt audio I/O in imitone and other apps. It also adds a feedback function which aids in diagnosing this type of problem. Changes: imitone Windows and Mac builds are now securely code-signed. Added monitor ("echo") function as a button on the UI. imitone now remembers the audio / MIDI configuration between runs. - If audio or MIDI was shut off when imitone closed, the default is used instead. - This doesn't work for multi-channel mode, yet! Switching imitone off will now drop its CPU usage to negligible levels. Various minor UI tweaks. Fixes: Fixed a DSP bug that badly distorted audio input. imitone now requests a more moderate latency from the sound card. (This will be made into an adjustable setting in Prime, eventually.) Beta 0.6.0 -- October 5, 2014 Extensive R&D on the core algorithm, and some features/UI development. This build marks a transition from "proof of concept" to "applicable tool". (There's still plenty more room for improvement, of course.) Changes: UI and logo partially redesigned. - The UI is now skinnable. - The UI now differs between core and prime editions. - The tuner is now more responsive and magnifies the center slice. Added buttons to transpose the voice by octaves. Altered the expression (loudness) control to use an industry standard formula. (this makes expression control feel more natural in most situations.) Major overhauls to core algorithm, with the following effects: - Quicker Response (to most sounds) - Greater accuracy - Now responds to gritty/nasal sounds, "oh" and "ooh" more reliably Tweaked the device system to enable lower audio input latency. The "default" input mode on Windows is now WASAPI shared mode. Many modes including ASIO now request a much smaller buffersize. Added output channel configuration: In imitone, the MIDI output channel may now be changed. In imitone prime, multiple channels may be controlled simultaneously. Removed some superfluous audio-related information from the log files. The self-diagnostics system can now report exceptions. Fixes: Fixed a math error that caused resonator responsiveness to vary with resolution. Fixed an anti-aliasing bug that was damaging imitone's accuracy. Fixed an issue with device selection save data that interfered with MIDI config. When updating, preferred audio devices may be forgotten. Various other fixes not noted here... * * * * * * * * * Beta 0.5.3 -- June 29, 2014 An update including various bugfixes and improvements. Released as part of the transition to the new purchase system. Changes: Device Selection: - Traditional drop-down boxes were implemented for device selection. - It is now possible to select the audio input channel. - Audio channels display helpful loudness indicators. Volume Bar: - Volume range is now 80 decibels rather than 100. - The volume threshold no longer affects the displayed silence level. - Auto-adjust was adjusted: - Sensitivity is restored when input is quiet. - Thresholds were tweaked, and will eventually be adjustable in prime. - Now remembers settings between runs. - Indicator flashes when automatic adjustments occur. Error reports now overwrite the error log rather than appending to it. Clipping indicator is now much less finicky. Fixes: Virtual MIDI on Mac was sending improperly-formatted MIDI messages, lacking timestamps. (Now that this is fixed, more Mac apps should be imitone-compatible.) Fixed a crash which would occur when no audio input was in use. Beta 0.5.2 -- June 20, 2014 An update focused on common convenience features. Changes: imitone now saves its settings (audio device and sequencing) between runs. imitone's MIDI controls may now be configured in config.xml. Implemented tooltips for switches, sequencer keys and volume bar. Right clicking on a piano key repeatedly now toggles the chromatic scale. Reduced the amount of text in the sequencer window. Fixes: Updated the Windows build to SDL 2.0.3 to solve some rate crashes. Updated Windows build to portaudio rev.1919, fixing some device-related bugs. (kernel mode plays better with ASIO4ALL + less logspam from ASIO) Decreased audio-related log-spam somewhat. Beta 0.5.1c -- June 10, 2014 Bugfix patch aiming to fix a majority of graphics-related issues for good. Fixes: Isolated and fixed the sporadic "cannot resize default framebuffer!" crash. Graphics are now less likely to fall back to software renderer on Windows. Removed graphics dependencies: Framebuffer objects, shaders, vertex buffer objects, blend equations. (imitone is now OpenGL 1.1 compatible) Fixed a black-screen bug related to a conflict in anti-aliasing. Changes: Added four-digit "crash codes" to help users categorize errors more easily. The text on the red-screen was made slightly larger. Memory Access Violations and other crashes are reported in a more helpful way. Lowered color depth requirements to avoid software rendering on old graphics cards. Anti-aliasing now uses a more classical method that may work on more machines. Notes: imitone has been tested successfully on the Microsoft GDI Generic driver -- Meaning it can run (slowly) with no graphics hardware acceleration on Windows. Beta 0.5.1b -- May 29, 2014 Changes focused on improving graphics compatibility and better data collection. Fixes: Fixed a major error in detection of multisampling support. Fixed a most terrible bug which caused imitone to spawn hundreds of windows. On Windows, graphics now use older GL_EXT extensions rather than core extensions. imitone no longer requires GL_EXT_packed_depth_stencil for multisampling. Fixed a possible invalid operation error on machines that didn't support multisampling. Fixed a possible error with the stencil buffer that might have caused some black-screens. Changes: Start-up errors and recursive errors are now reported by a message box. The graphics engine now requests an OpenGL 2.0 compatibility context. Required graphics extensions are now checked at startup: framebuffers, shaders, and vertex buffer objects. The graphics engine now runs in "debug mode" by default to help catch errors. imitone now indicates NVidia Optimus should use the discrete graphics card. Beta 0.5.1a -- May 19, 2014 A quick patch made to improve data collection. imitone now reports the set of available OpenGL extensions in log.txt. Anti-aliasing capabilities are now detected in a more robust manner. Moved the "feedback" button to the about screen. Minor changes to useless secret hotkeys to prevent bizarre behavior. Beta 0.5.1 -- May 16, 2014 This minor update was focused on crash bugs and improved error reporting. imitone no longer requires a script to launch on Mac OS 10.9 (Mavericks) imitone no longer requires Virtual MIDI installed on the system to run. Attempted bug-fixes in graphics system. imitone now stores its data in an AppData folder, fixing permissions issues. imitone's recorded audio files can now be viewed by pressing control-R. Error reports are now stored in the application data folder. The location of diagnostic data can now be opened when an error occurs. Better debug instrumentation in startup, shutdown, console and graphics. Changed from F1 to typing '?' to display help files, and added click option. Fixed an issue where the key-entry screen would run in the background. Feedback dialog now sends identifying information to help diagnose problems. Beta 0.5.0 -- May 10, 2014 Added the ability to change input and output devices at run-time. (still needs a lot of work!) Failure to acquire default input is now a non-critical error. Fixed a major memory leak. Reduced "flickering" in sustained notes. Adjustments to automatic volume calibration. Added the "about" screen. Various small tweaks and fixes. Added purchase-key system. Implemented installer (windows) and DMG (Mac). * * * * * * * * * Alpha 0.4.2 -- May 1, 2014 Incorporated virtual MIDI driver into Windows version. imitone may now start up "inactive" without a viable input and output. imitone now outputs notes with a default velocity of 100 instead of 64. The volume threshold now auto-calibrates to 1/100 of the loudest sound heard. Added noise-floor to input to avert errors with silent and noise-cancelled issues. Notes below the volume threshold no longer show up on tuner and sequencer. Added octave and semitone transpose (up / down and control + up / down) Added record-replay functionality (hold C to record, tap R to replay) Added an initial device-information screen -- non-interactive for now. Added manual Audio/MIDI configuration via the pg.ini file. The native mouse cursor is now used. Various tweaks to animations and behaviors. Alpha 0.4.1 (improvements to sequencing) Fixed "pop" in expression control as notes ended. CC controls now transmit their values at note-start even when inactive. (This solves issues with automation in Ableton Live.) pitch bend mode attempts to ensure the synth uses a bend range of 2 semitones. The chance of a volume or pitch-bend getting "stuck on" is now reduced. Notes are no longer interrupted by most setting changes. Overhauled the stabilization filter -- still needs more work. Fixed a possible inconsistency between MIDI data and meter displays. Added 50% more resonators. Mac version now has an icon. Alpha 0.4.0 Re-designed from earlier 0.3.0 version with many improvements. Changelog established.