<?xml version="1.0" encoding="ISO-8859-1"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ref="http://purl.org/rss/1.0/modules/reference/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns="http://purl.org/rss/1.0/">
	<channel rdf:about="http://www.toptensoftware.com/blog/rss.rdf">
		<title>Topten Software - Cantabile</title>
		<link>http://www.toptensoftware.com/blog/index.php</link>
		<description><![CDATA[]]></description>
		<items>
			<rdf:Seq>
				<rdf:li resource="http://www.toptensoftware.com/blog/index.php?entry=entry080729-063219" />
				<rdf:li resource="http://www.toptensoftware.com/blog/index.php?entry=entry080728-063523" />
				<rdf:li resource="http://www.toptensoftware.com/blog/index.php?entry=entry080728-061629" />
				<rdf:li resource="http://www.toptensoftware.com/blog/index.php?entry=entry080717-064038" />
				<rdf:li resource="http://www.toptensoftware.com/blog/index.php?entry=entry080710-160325" />
				<rdf:li resource="http://www.toptensoftware.com/blog/index.php?entry=entry080705-155608" />
				<rdf:li resource="http://www.toptensoftware.com/blog/index.php?entry=entry080627-061355" />
				<rdf:li resource="http://www.toptensoftware.com/blog/index.php?entry=entry080618-055302" />
				<rdf:li resource="http://www.toptensoftware.com/blog/index.php?entry=entry080616-201449" />
				<rdf:li resource="http://www.toptensoftware.com/blog/index.php?entry=entry080615-221543" />
			</rdf:Seq>
		</items>
	</channel>
	<item rdf:about="http://www.toptensoftware.com/blog/index.php?entry=entry080729-063219">
		<title>Continuing with Sub-Sessions</title>
		<link>http://www.toptensoftware.com/blog/index.php?entry=entry080729-063219</link>
		<description><![CDATA[Today I completed most of the user interface for sub-sessions, including primarily the sub-session list:<br /><br /> <img src="images/subsession_list2.png" width="352" height="383" border="0" alt="" /> <br /><br />Sub-session name is on the left, it&#039;s program number on the right.  As can be seen in the screen shot, I&#039;ve also added ability to sort the sub-session list by either name or program number.<br /><br />The list of sub-sessions is now saved with the session file, though they don&#039;t actually store anything except the name and program number.<br /><br />That completes most of the UI for sub-sessions, tomorrow I&#039;ll start on actually making them do something.<br /><br />]]></description>
	</item>
	<item rdf:about="http://www.toptensoftware.com/blog/index.php?entry=entry080728-063523">
		<title>Slashing the Feature Creep</title>
		<link>http://www.toptensoftware.com/blog/index.php?entry=entry080728-063523</link>
		<description><![CDATA[One thing this version of Cantabile has suffered from is a serious dose of feature creep.  Mostly this was made worse by the much longer than expected time it took to write the new user-interface.<br /><br />Anyway, in an attempt to combat this I&#039;ve culled the rather lengthy list of ideas down to a more cohesive and reachable target.  <br /><br />This is what&#039;s left to do:<br /><br /><ul><li>Sub-sessions (see previous post)</li><li>Enhance Quick Sessions to allow specifying a session and a sub-session for each entry.</li><li>Ability to send MIDI clock (receive is done, send is not)</li><li>MIDI Note Assignments - ability to assign MIDI notes similarly to how controllers can currently be assigned.</li><li>Ability to solo/mute and unload media players.</li><li>Anything else ever hinted to, thought about, promised or whatever is not going to make it.  I&#039;ve just got to draw the line.</li></ul>Then there&#039;s the unfinished bits:<br /><br /><ul><li>Disabling synchronisation of audio files to external clock (it&#039;s a problem bigger than I want to solve right now).</li><li>Possibly removing the offline renderer - it mostly works but doesn&#039;t really belong in Cantabile.</li><li>Re-writing the entire help (can&#039;t wait to do that - NOT)</li><li>Updating the purchase ordering pages/website, license key generation etc... and,</li><li>lots of testing...</li></ul>]]></description>
	</item>
	<item rdf:about="http://www.toptensoftware.com/blog/index.php?entry=entry080728-061629">
		<title>Starting Sub-Sessions</title>
		<link>http://www.toptensoftware.com/blog/index.php?entry=entry080728-061629</link>
		<description><![CDATA[For the last week or so I&#039;ve been busy on some other web development projects and haven&#039;t had much time on Cantabile, but today I&#039;m getting back into it and started on support for sub-sessions.<br /><br />I&#039;ve mentioned sub-sessions in previous posts, but here&#039;s a more complete picture:<br /><br /><ul><li>Sub-sessions are named states within a session.</li><li>Each state stores the bypass/mute/solo/loaded states of all plugins, racks and media files.</li><li>Each plugin can be configured to have it&#039;s entire bank, selected program or nothing saved in the sub-session.  (eg: switching sub-sessions can reload the whole plugin, or completely skip it)</li><li>Each sub-session can have an optional program number associated with it that can be used to select it by program changes.</li><li>The current metronome settings are saved with each sub-session.</li><li>Possibly some other settings will be saved with the sub-session (that will depend on testing/feedback/usability).</li></ul>Note that sub-sessions don&#039;t store different sets of plugins.  If you add a plugin it gets added to all sub-sessions and similarly for removing a plugin.  ie: sub-sessions just make adjustments to things in the session.<br /><br />So I&#039;ve just started coding this, but so far there a new &quot;sub-session&quot; drop down menu on the home tab. I&#039;m not sure about that icon - I just threw it together, but sort of like it.  Note too the return of the Quick Sessions.<br /><br /> <img src="images/subsession_dropdown.png" width="416" height="323" border="0" alt="" /> <br /><br />The commands are fairly self explanatory:<br /><br /><ul><li>New - prompts for the name and program number for a new sub-session and saves the current state to that sub-session.</li><li>Update - updates the last loaded sub-session with the current state</li><li>Revert - reloads the last loaded sub-session.</li><li>Auto Save Mode - automatically saves each sub-session when switching to another one.</li><li>Enable Program Changes - enable/disable loading sub-session by program change.</li><li>Show Sub-Session List - show the list of sub-session</li></ul>The sub-session list, appears as a dock panel to the left of the main window and will contain a list of all sub-sessions and their program numbers.<br /><br /> <img src="images/subsession_list.png" width="464" height="326" border="0" alt="" /> <br /><br />Most of what I&#039;ve described here isn&#039;t implemented but it is started...]]></description>
	</item>
	<item rdf:about="http://www.toptensoftware.com/blog/index.php?entry=entry080717-064038">
		<title>Unloaded Plugins</title>
		<link>http://www.toptensoftware.com/blog/index.php?entry=entry080717-064038</link>
		<description><![CDATA[Cantabile now has the ability to support &quot;unloaded plugins&quot;.<br /><br />When unloaded, a plugin behaves the same as being bypassed but is completely unloaded from memory - except for it&#039;s state which is kept.<br /><br />Loading and unloading of plugins is done through the plugin slot&#039;s context menu:<br /><br /> <img src="images/unloaded2.png" width="519" height="345" border="0" alt="" /> <br /><br />When unloaded, its bypass button is checked and the slot becomes disabled and displays &quot;unloaded&quot;:<br /><br /> <img src="images/unloaded1.png" width="598" height="84" border="0" alt="" /> <br /><br />Reloading a plugin restores the plugin to the same state as before it was unloaded.  The state of unloaded plugins is also saved with the session so on re-opening a session with unloaded plugins they can be reloaded and returned to their original state.<br /><br />A nice side effect of supporting unloaded plugins is that it makes Cantabile&#039;s handling of plugins that fail to load so much better.  Now when Cantabile can&#039;t reload a plugin from a saved session (say the plugin is no longer installed), that plugin will automatically be treated as an unloaded plugin except it will display &quot;Failed&quot; instead of &quot;Unloaded&quot;.  If the session is then saved again, the state of the plugin is maintained even though the plugin is not available.  Also, the user can re-install the plugin, right click and choose reload to fix it up without needing to reload the whole session.<br /><br />The purpose of this functionality is primarily intended for when I add support for sub-sessions which will be named states within a session. The loaded/unloaded state of plugins will be included in that sub-session state making it possible to build complex arrangements of plugins that can be switched between quickly.]]></description>
	</item>
	<item rdf:about="http://www.toptensoftware.com/blog/index.php?entry=entry080710-160325">
		<title>MIDI Clock Synchronisation</title>
		<link>http://www.toptensoftware.com/blog/index.php?entry=entry080710-160325</link>
		<description><![CDATA[Finally, I’ve now got syncing to incoming MIDI clock working.  There’s a new option in the Metronome’s tempo drop down named “Sync to Incoming MIDI Clock” which enables this.<br /><br /> <img src="images/MidiClock.png" width="379" height="250" border="0" alt="" /> <br /><br />There&#039;s also a new option to specify which MIDI input device MIDI clock should be read from.  <br /><br /> <img src="images/MidiClockSource.png" width="526" height="241" border="0" alt="" /> <br />]]></description>
	</item>
	<item rdf:about="http://www.toptensoftware.com/blog/index.php?entry=entry080705-155608">
		<title>Input connect, rack bypassing and soft ramping</title>
		<link>http://www.toptensoftware.com/blog/index.php?entry=entry080705-155608</link>
		<description><![CDATA[It’s been a while since I’ve posted anything here but things are still progressing.<br /><br />I’ve added two new options to each rack slot:<br /><br /><ul><li>Input Connect - which connects the rack to audio input.  In previous versions this happened automatically when a rack wasn’t routed to by another rack.  Now it’s an explicit option that must be manually enabled and allows connection even when the rack is routed to.</li><li>Rack Bypass – completely bypasses the rack, as opposed to muting it.</li></ul> <img src="images/inputconnect.png" width="345" height="172" border="0" alt="" /> <br /><br />(the icon is supposed to look like a little microphone)<br /><br />Also I’ve re-written all the soft ramp functionality.  When muting/unmuting a rack, bypassing a plugin or rack or enabling input connect on a rack, these operations are soft ramped to avoid clicks and glitches.  It’s also used when re-ordering plugins, deleting or inserting plugins or racks and on undo operations too.  <br /><br />Pretty much anything that could cause a glitch due to re-wiring or enabling/disabling should now be soft ramped.  The one exception is changing the target routing of a rack.   I’ll probably revisit that at some point but it’s a bit of a tricky one to implement properly.<br />]]></description>
	</item>
	<item rdf:about="http://www.toptensoftware.com/blog/index.php?entry=entry080627-061355">
		<title>Multiple File Players</title>
		<link>http://www.toptensoftware.com/blog/index.php?entry=entry080627-061355</link>
		<description><![CDATA[Recent changes:<br /><br /><ul><li>Ability to load multiple media files (either MIDI or audio)</li><li>Each gets a &quot;slot&quot; similar to a rack slot that can be expanded to show the microscore/audio peak view.</li><li>Moved the media players to above the plugin and rack slots (conceptually makes more sense as in audio/MIDI flows down the screen, from players to plugins)</li><li>Full support for drag/drop, clipboard, undo/redo etc for working with media players.</li><li>New icons for insert/replace plugin commands.</li><li>New commands for insert/replace media file.</li><li>Quick session commands removed and will probably reappear elsewhere at a later date.</li></ul> <img src="images/multifileplayers.png" width="596" height="277" border="0" alt="" /> <br /><br />]]></description>
	</item>
	<item rdf:about="http://www.toptensoftware.com/blog/index.php?entry=entry080618-055302">
		<title>Main Screen Changes</title>
		<link>http://www.toptensoftware.com/blog/index.php?entry=entry080618-055302</link>
		<description><![CDATA[Yesterday and today I&#039;ve been working on some minor, but important changes to the main screen.  (click for full size screen shot).<br /><br />  <a href="http://www.toptensoftware.com/blog/images/MainScreen.png" target="_blank" ><img src="images/MainScreen_small.png" width="600" height="423" border="0" alt="" /></a>  <br /><br />Changes include:<br /><br /><ul><li>The rack and plugin slots are now contained in their own expander panel &quot;Racks and Plugins&quot;</li><li>The file player is now contained in &quot;Media Files&quot; expander.  This panel will soon be able to hold multiple media file clips.</li><li>There is a resize splitter between these two expanders.</li><li>The file player has an expand button (like the rack slots) to hide/show the microscore.</li><li>Increased the spacing around all the expander panels and darkened the background color to add more definition between these panels.</li><li>Added a bypass button to the rack slot (immediately to the left of the mute button).  This is not functional yet.</li><li>Added mute and solo buttons to the file player.  This it not yet functional either.</li><li>Changed the icon on plugin slot mute button to the bypass icon to more correctly describe it&#039;s function.</li></ul>Next is to put heading labels in the media files panel (this is more difficult than you&#039;d think as it needs to resize correctly with the buttons they head). Then I&#039;ll add the ability to load multiple media files at once.<br /><br />I realise that the changes I&#039;ve been making lately are bit all over the place but there is method to the madness (hopefully).  I&#039;ve got a list of features that I&#039;m trying to pull together and while I&#039;m concentrating on the more difficult parts first I&#039;ve got bits of UI and overall design that need to be done along the way.<br /><br />The other problem I&#039;m facing is a serious case of &quot;feature creep&quot;.  I was hoping to be well into beta testing by now, but by re-focusing my efforts on live performance I&#039;m adding quite a few new features that I hadn&#039;t originally counted on.  I&#039;m also planning and designing for features that will be added in versions beyond this one.<br /><br />I&#039;m sure it will all come together in the end.<br />]]></description>
	</item>
	<item rdf:about="http://www.toptensoftware.com/blog/index.php?entry=entry080616-201449">
		<title>Quick Configure</title>
		<link>http://www.toptensoftware.com/blog/index.php?entry=entry080616-201449</link>
		<description><![CDATA[Today I was updating the documentation for &quot;Getting Started with Cantabile&quot; and found the whole initial process of configuring Cantabile a little cumbersome.<br /><br />So now the first time Cantabile is run, the user gets a much easier set of options, enough just to get them running:<br /><br /> <img src="images/QuickConfigure.png" width="577" height="415" border="0" alt="" /> <br /><br />Also, this dialog gets displayed:<br /><br /><ul><li>On restarting after a crash and the user chooses not to reload their previous settings.</li><li>If Cantabile is started while holding Ctrl+Alt+Shift</li><li>If Cantabile is started with /clean on the command line.</li></ul>]]></description>
	</item>
	<item rdf:about="http://www.toptensoftware.com/blog/index.php?entry=entry080615-221543">
		<title>MIDI Controller Assignments Improvements</title>
		<link>http://www.toptensoftware.com/blog/index.php?entry=entry080615-221543</link>
		<description><![CDATA[Today I made some improvements to Cantabile&#039;s MIDI Controller Assignments - primarily the ability to create assignments to global settings for the current session.<br /><br />Previously, assignments to global items (eg: master volume) could only be saved globally - not per session.  There&#039;s a new setting now labelled &quot;Context&quot; that lets you specify if the settings should be saved for the current session or globally:<br /><br /> <img src="images/MidiControllers2.png" width="585" height="473" border="0" alt="" /> <br /><br />Also, cleaned up the dialog a little, disabling controls rather than hiding them and changed the formatting of some of the text in the Assign To combo.]]></description>
	</item>
</rdf:RDF>

