The next update will come with a lot of significant fixes and changes. It was assigned a new minor version number: Synfire Pro 1.2. We have rewritten very large sections of the code. As a result, testing takes longer this time than usual. Therefore I thought it was a good idea to post this preliminary information, so everyone is up to date while we are testing.
We rewrote the internal organization and technical underpinnings of both articulations and custom CCs entirely. They now support full inheritance (Device -> Sound -> Instrument). That is, they can be customized for each instrument saved with the project. This makes it easy to tweak CCs and articulations per project, building on top of already defined standards in the sound database (inherited). With eight parameter slots available (A-H), each of which can use all thinkable MIDI CCs, there should now be enough room even for complex projects (see pictures below).
Instrument Management Reworked
We revised the way the instrument manager manages sound resources and MIDI transmissions. The performance lag for large projects (AR1011) seemed to have gone away (at least partly) with the new code (still testing). We also hope, as a positive side effect, the new instrument manager code will eliminate some of the hard to reproduce "random" effects that one of our users experienced with large projects (AR1065).
Simplified Opening Documents on Windows
It is now possible to double-click open documents in the Explorer when Synfire Pro is already running (seems trivial, but unlike on the Mac, this behavior is not natively supported by Windows and every developer is required to provide their own dirty hacks for this).
More Ports
The number of supported MIDI ports was increased to 64.
In addition to the changes listed below, we will try to address a few more AR's related to the transport, CCs and rendering in general, that have been around for a while. Based on the improved and more clean framework, it should be easier and more logical to incorporate these changes.
As a consequence of these major refactorings, documents saved with 1.2 will use a new file format for some vital objects and hence can't be opened by previous versions. Therefore, if you go about to test 1.2, please be sure you backup your projects before installing 1.2, just in case you might possibly need to return to 1.1.11 for some reason.
Current Summary of Changes
Feature Enhancements:
- Simplified grouping (Instrument>>Combine on Same Channel)
- Custom CCs: Provide more static slots for custom CCs [AR1015]
- Custom CCs: Support custom specs saved with project (per instrument) [AR1015]
- Custom CCs: Support inheritance (device -> sound -> instrument) [AR1015]
- Ability to export a phrase with global parameters (File/Convert/Extract Phrase)
- Ability to disable merging of adjacent equal chords [AR1069]
- Retain container position with SHIFT when dragging [AR933]
- Articulations: Support specs saved with project (per instrument) [AR1085]
- Articulations: Support inheritance (device -> sound -> instrument) [AR1085]
- Articulations: Transmit articulation switch on selection (setup)
- Custom CCs: Locate in separate group on parameter block
- Ability to backup entire configuration folder (preferences)
- Articulations: Latency now set in milliseconds
- Indicate custom CCs [C] and articulations [A] in sound name
- MIDI Setup: Display overall pitch range on keyboard widget
Resolved Bugs:
- (MacOS X) Problem with file dialogs crashing the program [AR1061]
- (Windows) Can't double-click open documents when app is already running [AR388]
- Fixed a bug with invalid CC values causing a crash
- Error opening phrases and pools via double-click in file system
- Allocation problem with fixed channel instruments
- MIDI Through not cancelled when instrument was released
- (Windows) Context menu keyboard hotkey broken [AR1071]
- Fixed issues with the sound allocation monitor
- Template devices must not connect when routing is restored from file [AR1087]
- Fixed minor issues with instrument categories
- Fixed problem with copy/paste playing ranges in MIDI setup
- Error adopting sound properties for multiple instruments
- Context menu issues with instrument properties dialog
- MIDI Setup: Disconnected device should not be sent any data
Other Changes:
- MIDI note off velocity now uses standard value 64
- Get rid of 32 port limit in midi subsystem [AR1038]
- New container no longer immediately selected (global preference)
- Removed option to always reset instrument manager (obsolete now)
- Increased robustness of various GUI widgets
- Ability to backup entire configuration folder (preferences)
Maybe consider allowing users to store this folder anywhere they choose. Then, in Synfire's prefs, they could point Synfire to that location.
That's very handy when managing all files on a separate hard drive. For example, in my case, all of my user data and content is stored on a separate hard drive, which I backup often.
Storing the Synfire prefs on that drive would fit nicely into that process.
Most pro-audio apps allow users to specify their own directories for "factory" settings and content.
While we are testing, additional changes are being incorporated, because they are easier and faster to accomplish now that we have a very in-depth understanding of the code in certain areas (hey, Synfire consists of some 3,000 classes, impossible to deal with all at the same time).
The list of changes got longer:
Feature Enhancements:
- Implement a more standard transport model [AR756]
- Remember zoom factor for each container [AR1088]
- Provide visual indication where vectors exceed container length [AR865]
- Provide visual indicaton for subcontainers only partially visible [AR843]
Resolved Bugs:
- User interface lockups during playback [AR1000]
- Inconsistent midi output for repeated playbacks [AR1065]
- Mapping error with parameters that override figure properties [AR926]
- Progression display truncated when length exceeded container limit
- Issues scheduling articulations ahead of time near clock zero [AR833]
- Buggy display of playhead over instrument sheet
- Vectors partially truncated in instrument sheet view
Other Changes:
- Improved overall graphics performance
Graphics Improvements
As we were investigating the GUI lockup problem, we foud that it could not be resolved without simplifying essential logic in the graphics system (mostly multi-threading and synchronization for display updates). This is currently being tested and it seems to have removed other graphics related issues as well (see list above). The GUI now feels a lot more snappy and responsive.
Transport Model
Stopping a playback will now retain the current playhead position. Stopping again will return to the beginning of the last playback. Stopping once again will return to the beginning of the arrangement (in addition to the spacebar, the Return key also triggers Stop for this purpose).
We are still a bit unsure regarding the details of transport behavior. It is not yet clear, how the loop selection, container selection and vector selections should affect the playback start position. We will have a look at popular DAWs and figure out the most standard behavior.
Container Limits
The instrument sheet now indicates the container's rendering limits (gray background, see attached picture). It often gets confusing when long figures or other vectors didn't seem to render at all, only because they were off-limits in a nested child container. The gray background now clearly indicates how much of the container is actually being rendered to output.
There's also an indication in the structure view, showing if a child container is partially off-limits (obscured by its parent container).
Beta Release
The many changes of version 1.2 and their countless potential side effects are impossible to test by a small team like us alone. Therefore we will publish a Beta release prior to releasing the official update. Please do not use the Beta for production and make a backup of your projects and configuration folder before you install.
Although the Beta release is approaching, we don't have a date yet. We will continue our own testing over the weekend. If no further issues arise, we can announce a date.
Andre, I just wanted to say that I really appreciate the level of support you provide for Synfire Pro. I've never seen this level of support with ANY other software company in the music business. Great job man!
Andre, I just wanted to say that I really appreciate the level of support you provide for Synfire Pro. I've never seen this level of support with ANY other software company in the music business. Great job man!
+1
andre wrote:
Container Limits
The instrument sheet now indicates the container's rendering limits (gray background, see attached picture). It often gets confusing when long figures or other vectors didn't seem to render at all, only because they were off-limits in a nested child container. The gray background now clearly indicates how much of the container is actually being rendered to output.
There's also an indication in the structure view, showing if a child container is partially off-limits (obscured by its parent container).
Here's a minor suggestion:
Maybe consider reversing the color scheme, so gray represents the non-rendered or limited portions, and white represents or indicates the rendered portions.
I think the color gray has been ingrained in users' minds over the years as representing things that are "inactive" or "grayed-out".
Maybe consider reversing the color scheme, so gray represents the non-rendered or limited portions, and white represents or indicates the rendered portions.
Gray already is the inactive portion. Sorry if I didn't put it clearly enough.
This is the complete list of changes as of today. I will be preparing the beta upload this weekend.
Feature Enhancements:
- Simplified grouping (Instrument>>Combine on Same Channel)
- Custom CCs: Provide more static slots for custom CCs [AR1015]
- Custom CCs: Support custom specs saved with project (per instrument) [AR1015]
- Custom CCs: Support inheritance (device -> sound -> instrument) [AR1015]
- Ability to edit a figure during loop playback
- Ability to export a phrase with global parameters (File/Convert/Extract Phrase)
- Ability to disable merging of adjacent equal chords [AR1069]
- Retain container position with SHIFT when dragging [AR933]
- Implement a more standard transport model [AR756]
- Articulations: Support specs saved with project (per instrument) [AR1085]
- Articulations: Support inheritance (device -> sound -> instrument) [AR1085]
- Custom CCs: Locate in separate group on parameter block
- Ability to backup entire configuration folder (preferences)
- Articulations: Latency now set in milliseconds
- Articulations: Transmit articulation switch on selection (setup)
- Ability to start playback in phrase editor anywhere in arrangement
- Indicate custom CCs [C] and articulations [A] in sound name
- Remember zoom factor for each container [AR1088]
- MIDI Setup: Display overall pitch range on keyboard widget
- Provide visual indication where vectors exceed container length [AR865]
- Provide visual indicaton for subcontainers only partially visible [AR843]
- Setup: Ability to switch MIDI port of direct addressing devices
Resolved Bugs:
- User interface lockups during playback [AR1000]
- (MacOS X) Problem with file dialogs crashing the program [AR1061]
- Mapping error with parameters that override figure properties [AR926]
- Crash when dropping parent container into a child
- Bug with instrument manager and sound lookup
- Parameters lock up when editing during playback [AR1083]
- (Windows) Can't double-click open documents when app is already running [AR388]
- Fixed a bug with invalid CC values causing a crash
- Error opening phrases and pools via double-click in file system
- Allocation problem with fixed channel instruments
- MIDI Through not cancelled when instrument was released
- MIDI Setup: Adding sound from template did not properly copy CCs and articulations
- Progression display truncated when length exceeded container limit
- (Windows) Context menu keyboard hotkey broken [AR1071]
- Fixed issues with the sound allocation monitor
- Issues scheduling articulations ahead of time near clock zero [AR833]
- Template devices must not connect when routing is restored from file [AR1087]
- Fixed minor issues with instrument categories
- Fixed problem with copy/paste playing ranges in MIDI setup
- Error adopting sound properties for multiple instruments
- Context menu issues with instrument properties dialog
- MIDI Setup: Disconnected device should not be sent any data
- Buggy display of playhead over instrument sheet
- Vectors partially truncated in instrument sheet view
- Several issues with loop selection and playback
- Phrase>>Harmonize did not save window position when cancelled
Other Changes:
- MIDI note off velocity now uses standard value 64
- Improved overall graphics performance
- Get rid of 32 port limit in midi subsystem [AR1038]
- New container no longer immediately selected (global preference)
- Removed option to always reset instrument manager (obsolete now)
- Improved ruler selection tracking and graphics
- External transport should stop at end of arrangement [AR983]
- Increased robustness of various GUI widgets
- Improved behavior of resizing handles and repeat switches
- Retain last used device selection after closing setup window
- Minor fixes in the GM instrument hierarchy
- Do not move to next input field after Enter key [AR1092]
Fixing the issue was not reasonable without reworking the transport GUI. Here's how it looks now. Quick test showed it just works fine, and that's great. Anyway, I'm going to do more in-depth testing tomorrow (when I'm less tired ).
The Beta is now online for download. Please don't forget to backup your project files and configuration folder before installing. Please post any feedback regarding bugs or suggestions to the normal forums.
I am in the process of making a new build. We only received a few crash reports yet and do much appreciate your report submissions, if you encountered any error messages:
Please open the window Help >> Online Updates and submit the reports. This is the fastest way to get us fixing bugs.
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You cannot download files in this forum