<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>A New Music &#187; loading</title>
	<atom:link href="http://joshparnell.com/blog/tag/loading/feed/" rel="self" type="application/rss+xml" />
	<link>http://joshparnell.com/blog</link>
	<description>An Exploration of Procedural Content in Art, Music, and Reality</description>
	<lastBuildDate>Thu, 12 Apr 2012 05:33:36 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Loading &amp; Saving Structures with Object System</title>
		<link>http://joshparnell.com/blog/2010/03/21/loading-saving-structures-with-object-system/</link>
		<comments>http://joshparnell.com/blog/2010/03/21/loading-saving-structures-with-object-system/#comments</comments>
		<pubDate>Sun, 21 Mar 2010 23:28:52 +0000</pubDate>
		<dc:creator>Josh Parnell</dc:creator>
				<category><![CDATA[General News]]></category>
		<category><![CDATA[loading]]></category>
		<category><![CDATA[Object System]]></category>
		<category><![CDATA[OS]]></category>
		<category><![CDATA[saving]]></category>

		<guid isPermaLink="false">http://joshparnell.wordpress.com/?p=697</guid>
		<description><![CDATA[Now that I&#8217;ve got the engines out of the way, there&#8217;s really only one major thing standing in the way of a new GGrewve: data handling between sessions.  All these well-organized data structures look great inside a compiler&#8230;but one glaring downside to using object-oriented programming over my previous &#8220;hack-ish&#8221; data system is that loading and [...]]]></description>
			<content:encoded><![CDATA[<p>Now that I&#8217;ve got the engines out of the way, there&#8217;s really only one major thing standing in the way of a new GGrewve: data handling between sessions.  All these well-organized data structures look great inside a compiler&#8230;but one glaring downside to using object-oriented programming over my previous &#8220;hack-ish&#8221; data system is that loading and saving are no longer as easy as writing the data structure to a file &#8211; because such an operation isn&#8217;t well-defined for arbitrary structures like it is for a data structures that consists of one large string (GDS and OS structures from the AHK code).  Loading and saving the structures from the c++ library requires a custom interface for each structure which is, to put it plainly, no fun at all.</p>
<p>For backwards compatibility, I&#8217;ve chosen to write all structures in Object System&#8217;s encoding format.  It&#8217;s not nearly as efficient as binary data, but it takes a lot less work to handle the data in lesser languages like AHK.  After writing a c++ version of the OS data system, to which most of my day today was devoted, reading and writing arbitrary data structures now consists of implementing an OS conversion interface for each structure.  That is, each data structure must be given a function for converting its data to Object System format as well as a function for loading its data from an Object System structure.</p>
<p>It sounds pretty straightforward, but in complex engines like gMSE in which structures are nested within structures that are, in turn, nested within superstructures, the task gets daunting.  Nonetheless, I&#8217;ve finished implementing loading/saving for all MSE structures and am in the process of writing the function for the gMSE space.</p>
<p>After loading and saving are out of the way, it should be relatively smooth sailing to the new GGrewve.</p>
<p><img class="aligncenter" title="C++ to Object System" src="http://algocomp.anewmusic.com/images/blog/ossaveload.png" alt="" width="495" /></p>
]]></content:encoded>
			<wfw:commentRss>http://joshparnell.com/blog/2010/03/21/loading-saving-structures-with-object-system/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Structural Updates &amp; Touch-Ups</title>
		<link>http://joshparnell.com/blog/2009/05/19/structural-updates-touch-ups/</link>
		<comments>http://joshparnell.com/blog/2009/05/19/structural-updates-touch-ups/#comments</comments>
		<pubDate>Tue, 19 May 2009 21:06:31 +0000</pubDate>
		<dc:creator>Josh Parnell</dc:creator>
				<category><![CDATA[Main Framework]]></category>
		<category><![CDATA[data structure]]></category>
		<category><![CDATA[loading]]></category>
		<category><![CDATA[mgen]]></category>
		<category><![CDATA[saving]]></category>

		<guid isPermaLink="false">http://joshparnell.wordpress.com/?p=150</guid>
		<description><![CDATA[Several fixes and minor changes are going on in the mainframe. Loading and saving have each been completely reworked to use the GDS data system instead of INI file storage. The result is a smaller file that is easier to work with. The plugin loading algorithm has also been tweaked to no longer function on [...]]]></description>
			<content:encoded><![CDATA[<p>Several fixes and minor changes are going on in the mainframe. Loading and saving have each been completely reworked to use the GDS data system instead of INI file storage. The result is a smaller file that is easier to work with. The plugin loading algorithm has also been tweaked to no longer function on absolute paths but rather on relative ones. Now I won&#8217;t have problems loading the project files I saved on my laptop into my desktop&#8217;s mGen (previously the project files were not transferrable because of the differences in the file path names on my two systems, even though the differences are not at all relevent to mGen).</p>
]]></content:encoded>
			<wfw:commentRss>http://joshparnell.com/blog/2009/05/19/structural-updates-touch-ups/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Saving &amp; Loading</title>
		<link>http://joshparnell.com/blog/2009/02/16/saving-loading/</link>
		<comments>http://joshparnell.com/blog/2009/02/16/saving-loading/#comments</comments>
		<pubDate>Mon, 16 Feb 2009 20:08:55 +0000</pubDate>
		<dc:creator>Josh Parnell</dc:creator>
				<category><![CDATA[General News]]></category>
		<category><![CDATA[Main Framework]]></category>
		<category><![CDATA[loading]]></category>
		<category><![CDATA[saving]]></category>

		<guid isPermaLink="false">http://joshparnell.wordpress.com/?p=255</guid>
		<description><![CDATA[Although it might not seem likes a big step, the ability to save and load project data is pivotal in almost every program. Imagine having to always type an essay in a single sitting, and then having to retype it when you want to make corrections. We simple wouldn&#8217;t be able to function efficiently without [...]]]></description>
			<content:encoded><![CDATA[<p>Although it might not seem likes a big step, the ability to save and load project data is pivotal in almost every program. Imagine having to always type an essay in a single sitting, and then having to retype it when you want to make corrections. We simple wouldn&#8217;t be able to function efficiently without the ability to save and load.</p>
<p>Today I finished a basic saving/loading system that allows my program to save project files and load them again when the user wants. The system saves all instrument and composition data, including all the individual plugin configurations. It wasn&#8217;t an easy task, but it works, and it makes testing everything a lot easier, since now I can simply make a save file that contains the configurations for all my testing instruments and use it over and over again.</p>
<p>Progress!</p>
]]></content:encoded>
			<wfw:commentRss>http://joshparnell.com/blog/2009/02/16/saving-loading/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

