<?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>PyWright Metaverse</title>
	<atom:link href="http://pywright.dawnsoft.org/wordpress/feed/" rel="self" type="application/rss+xml" />
	<link>http://pywright.dawnsoft.org/wordpress</link>
	<description></description>
	<lastBuildDate>Thu, 05 Aug 2010 18:42:14 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>0.975 is released, only a couple days later than TS times 2!</title>
		<link>http://pywright.dawnsoft.org/wordpress/2010/07/30/0-975-is-released-only-a-couple-days-later-than-ts-times-2/</link>
		<comments>http://pywright.dawnsoft.org/wordpress/2010/07/30/0-975-is-released-only-a-couple-days-later-than-ts-times-2/#comments</comments>
		<pubDate>Sat, 31 Jul 2010 00:51:12 +0000</pubDate>
		<dc:creator>saluk</dc:creator>
				<category><![CDATA[development status]]></category>
		<category><![CDATA[releases]]></category>

		<guid isPermaLink="false">http://pywright.dawnsoft.org/wordpress/?p=309</guid>
		<description><![CDATA[This is the release that was meant to be only a short bit behind 0.974, which I&#8217;ll admit was released in a very halfway done and somewhat broken state. The whole issue with automatic saves, but not actually showing users a list of saves to load from, caused so much confusion it&#8217;s actually pretty funny. [...]]]></description>
			<content:encoded><![CDATA[<p>This is the release that was meant to be only a short bit behind 0.974, which I&#8217;ll admit was released in a very halfway done and somewhat broken state. The whole issue with automatic saves, but not actually showing users a list of saves to load from, caused so much confusion it&#8217;s actually pretty funny. I learn something every single time. So I was sitting here, finishing up 0.975, trying to remember if there was anything I was missing.</p>
<p>Then I decided, I don&#8217;t care. I&#8217;m sure there is something missing, but I won&#8217;t be sure until one of you lucky individuals finds it. So here&#8217;s your chance to make PyWright better! Download 0.975 today, kick it and poke it until it breaks, then let me know about it! If there is anything either A) serious or B) easy, I&#8217;ll probably work it in to another release pretty quick.</p>
<p>The update is in the usual places, download service, or<span style="color: #000000;"> <a href="http://pywright.dawnsoft.org/wordpress/downloads/">downloads</a> </span>page; and all of the binaries for platforms have been updated as well. The Pezman complained at how infrequently I update the binaries, and he was totally right. I plan on updating the binaries every time. It&#8217;s a pain, but oh well.</p>
<p>Full changelog in the update, here&#8217;s a quick rundown:</p>
<ul>
<li>List of saves to load</li>
<li>More save control for game devs and users</li>
<li>&#8220;Sticky&#8221; cross examination arrows</li>
<li>Object priorities revamped to allow timers while interfaces are open</li>
<li>The ability to include file extensions or leave them off almost everywhere rather than having some commands need them and some commands need them to be left off</li>
<li>More support for spaces in games</li>
</ul>
<p>And here&#8217;s my plan of features for the version after next (the next one being reserved for bug fixes)</p>
<ul>
<li>Tools included with pywright to aid casemakers</li>
<li>Add hotkey to gui Buttons</li>
<li>Buttons that repeat if you hold them down</li>
<li>User controls config</li>
<li>More control over file layout (being able to use fg on files in art/bg for instance)</li>
</ul>
<p>Most likely some of that will be pushed into the next next next version, but who knows. Let me know what you guys think.</p>
]]></content:encoded>
			<wfw:commentRss>http://pywright.dawnsoft.org/wordpress/2010/07/30/0-975-is-released-only-a-couple-days-later-than-ts-times-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PyWright has been updated to 0.974</title>
		<link>http://pywright.dawnsoft.org/wordpress/2010/06/12/pywright-has-been-updated-to-0-974/</link>
		<comments>http://pywright.dawnsoft.org/wordpress/2010/06/12/pywright-has-been-updated-to-0-974/#comments</comments>
		<pubDate>Sat, 12 Jun 2010 07:41:48 +0000</pubDate>
		<dc:creator>saluk</dc:creator>
				<category><![CDATA[development status]]></category>
		<category><![CDATA[releases]]></category>

		<guid isPermaLink="false">http://pywright.dawnsoft.org/wordpress/?p=304</guid>
		<description><![CDATA[After a couple of months slipped by I finally finished the last few touches I was wanting to include. It has a mix of semi new features and tweaks to old stuff. Check it out! The update is available in the engine, or at this link: http://pywright.dawnsoft.org/updates3/engine/0.974.zip
(The full binaries are not yet updated, so if [...]]]></description>
			<content:encoded><![CDATA[<p>After a couple of months slipped by I finally finished the last few touches I was wanting to include. It has a mix of semi new features and tweaks to old stuff. Check it out! The update is available in the engine, or at this link: http://pywright.dawnsoft.org/updates3/engine/0.974.zip</p>
<p>(The full binaries are not yet updated, so if you don&#8217;t have PyWright yet, you&#8217;ll have to grab 0.973 first)</p>
<p>The changelog has a detailed list of the fixes, but here are the most important:</p>
<ul>
<li>Preliminary gamepad support</li>
<li>Easier window scaling</li>
<li>Autosaves, multiple save files</li>
<li>Expressions to aid coding and eventually help in the AAO converter</li>
<li>Some protection against easy to make coding mistakes</li>
<li>More fixes to the downloader</li>
</ul>
<p>For the future I am thinking of adding more flexible input support and maybe tackling the settings dialog again. That&#8217;s the kind of stuff a 1.0 release needs. Other than that, I&#8217;ve been working on various tools like the gif2sheet program, something to help find overhanging words on speech bubbles, and the aao converter of course. I&#8217;m trying to figure out the best way to bundle this stuff so that others can use them. I have some ideas but haven&#8217;t really tackled it as of yet.</p>
<p>My goal is to finish 1.0 this summer. Here&#8217;s hoping I make it <img src='http://pywright.dawnsoft.org/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://pywright.dawnsoft.org/wordpress/2010/06/12/pywright-has-been-updated-to-0-974/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>April fools is over, pymagine will only remain in our hearts</title>
		<link>http://pywright.dawnsoft.org/wordpress/2010/04/01/april-fools-is-over-pymagine-will-only-remain-in-our-hearts/</link>
		<comments>http://pywright.dawnsoft.org/wordpress/2010/04/01/april-fools-is-over-pymagine-will-only-remain-in-our-hearts/#comments</comments>
		<pubDate>Fri, 02 Apr 2010 06:30:40 +0000</pubDate>
		<dc:creator>saluk</dc:creator>
				<category><![CDATA[development status]]></category>

		<guid isPermaLink="false">http://pywright.dawnsoft.org/wordpress/?p=296</guid>
		<description><![CDATA[Ok back to the regularly scheduled PyWright. Version 0.974 is scheduled for the 7th. It doesn&#8217;t look like it&#8217;s going to be a very big release, there are a few tiny requests to be filled, but other than that I don&#8217;t have huge plans. I keep saying that I will get the aao converter out [...]]]></description>
			<content:encoded><![CDATA[<p>Ok back to the regularly scheduled PyWright. Version 0.974 is scheduled for the 7th. It doesn&#8217;t look like it&#8217;s going to be a very big release, there are a few tiny requests to be filled, but other than that I don&#8217;t have huge plans. I keep saying that I will get the aao converter out eventually, and it keeps being mostly true. I&#8217;m really not sure how useful it will be, except for the novelty of playing an aao game in fullscreen or whatever. But I&#8217;ve put enough time into it now that I have to at least show that it exists!</p>
]]></content:encoded>
			<wfw:commentRss>http://pywright.dawnsoft.org/wordpress/2010/04/01/april-fools-is-over-pymagine-will-only-remain-in-our-hearts/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>PyMagine 1.0!</title>
		<link>http://pywright.dawnsoft.org/wordpress/2010/04/01/pymagine-1-0/</link>
		<comments>http://pywright.dawnsoft.org/wordpress/2010/04/01/pymagine-1-0/#comments</comments>
		<pubDate>Thu, 01 Apr 2010 07:19:18 +0000</pubDate>
		<dc:creator>saluk</dc:creator>
				<category><![CDATA[silly]]></category>

		<guid isPermaLink="false">http://pywright.dawnsoft.org/wordpress/?p=293</guid>
		<description><![CDATA[I am happy to report I have returned to this project after several weeks of low activity. My time away has given me some time to think of a new approach to the engine, which I think will work out better for me as a developer, as well as for everyone making games with the [...]]]></description>
			<content:encoded><![CDATA[<p>I am happy to report I have returned to this project after several weeks of low activity. My time away has given me some time to think of a new approach to the engine, which I think will work out better for me as a developer, as well as for everyone making games with the engine. It&#8217;s not so much a set of new features that is the most exciting, but a new philosophy. Rather than build something which can emulate a specific series of games, why not open it up to allow other kinds of games to be made?</p>
<p>This idea of branching out in the game world, and seeing where things can go, has led me to look for another popular series of DS games to start with. I think I have found the perfect series. This series is so different from Phoenix Wright, that it will be a great test for the engine. There is no courtroom, no court record, no focus on textboxes, none of the things that make the &#8220;ace law&#8221; games what they are. And there are quite a lot of these games too, and I&#8217;m sure many fans (although I don&#8217;t know any).</p>
<p>A limited beta release of 1.0 has been making the rounds, and received great feedback! &#8220;I&#8217;ve never seen anything like it before&#8221;, said one beta tester. &#8220;It was so, I mean, wow. It made my eyes bleed,&#8221; said another. Some random guy on the court records forum who managed to beg the beta from me informed me that &#8220;I didn&#8217;t try it for very long, I am done with it.&#8221; I think he means it is really fast to get things done with it! It&#8217;s quite simply unique in the case maker world.</p>
<p>Screenshot is below, and once the beta testing period has ensured that there are no last minute bugs which will need updates and patch nonsense (ha ha ha), you will all get to try out this grand new vision for my engine. Enter PyMagine:</p>
<p><a href="http://pywright.dawnsoft.org/wordpress/wp-content/uploads/2010/04/pymagine_ss1.jpg"><img class="alignnone size-full wp-image-294" title="pymagine_ss1" src="http://pywright.dawnsoft.org/wordpress/wp-content/uploads/2010/04/pymagine_ss1.jpg" alt="" width="221" height="304" /></a></p>
<p>It will let you create games based on the &#8220;imagine&#8221; series of games for the Nintendo Ds!</p>
<p>I hope you will enjoy the new changes!</p>
]]></content:encoded>
			<wfw:commentRss>http://pywright.dawnsoft.org/wordpress/2010/04/01/pymagine-1-0/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Ace Attorney Online has expressions!?</title>
		<link>http://pywright.dawnsoft.org/wordpress/2010/03/18/ace-attorney-online-has-expressions/</link>
		<comments>http://pywright.dawnsoft.org/wordpress/2010/03/18/ace-attorney-online-has-expressions/#comments</comments>
		<pubDate>Fri, 19 Mar 2010 06:44:06 +0000</pubDate>
		<dc:creator>saluk</dc:creator>
				<category><![CDATA[Ace Attorney Online Converter]]></category>

		<guid isPermaLink="false">http://pywright.dawnsoft.org/wordpress/?p=290</guid>
		<description><![CDATA[I am officially impressed. I have not been that up to date with AAO. I&#8217;ve played a few games here and there, but I was too focused on my own engine to really pay attention to how other great developers have approached this domain. I knew that AAO was basically an editor, and that it [...]]]></description>
			<content:encoded><![CDATA[<p>I am officially impressed. I have not been that up to date with <a href="http://aceattorney.sparklin.org/">AAO</a>. I&#8217;ve played a few games here and there, but I was too focused on my own engine to really pay attention to how other great developers have approached this domain. I knew that AAO was basically an editor, and that it used javascript somehow to play the cases. But I didn&#8217;t realize how advanced it really is. It would be a mistake to write it off just because it is focused on an editor instead of having a full scripting language.</p>
<p>Anyway, the feature that kind of floored me today, is one of the last features I have to implement in order to convert games from AAO to PyWright with 99% accuracy. (I say 99%, as that last 1% of compatibility may or may not be there &#8211; it&#8217;s hard to know without testing every single AAO game in existence) This feature is expressions. Expressions in AAO allow a developer to have almost a mini scripting engine, interacting with variables and doing math on them. You can increment variables with &#8220;set x = x + 1&#8243;, you can do booleans with &amp; and |, and you can do very complex math such as the &#8220;%&#8221; operator. It also follows the general order of operations like most programming languages with expressions engines do. Not what I expected from an easy-to-use, true casemaker.</p>
<p>PyWright has no expression engine.<span id="more-290"></span>This doesn&#8217;t prevent developers from doing mathematics or accomplishing the same goals that you would use an expression for in AAO. Sometimes it will take several operations in PyWright instead of just one. For example:</p>
<pre style="padding-left: 90px;">x = (x + 1) * 12
</pre>
<p>could be translated as</p>
<pre style="padding-left: 90px;">addvar x 1
mulvar x 12
</pre>
<p>It takes more steps, but this kind of math is generally not that useful in this style of game. It is important for creating custom code, making animation work in a different way, or showing some specified interface. But when I am writing this stuff I don&#8217;t miss expressions that much.</p>
<p>However, to convert from AAO, it can&#8217;t be avoided. So the thing to decide, is how to automatically do the above conversion. I also have to choose whether to integrate the expression solver into PyWright itself, or do the translation in the converter. Most likely it will go in the converter, however I don&#8217;t think it&#8217;s crazy to think that expressions will be a standard language feature at some point. The reason I avoided it was out of simplicity, but even the most &#8220;simple&#8221; casemaker seems to have it!</p>
<p>Anyway, this is not a trivial task, so it is going to delay AAO -&gt; PyWright a bit more.</p>
]]></content:encoded>
			<wfw:commentRss>http://pywright.dawnsoft.org/wordpress/2010/03/18/ace-attorney-online-has-expressions/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>0.960 and some other stuff</title>
		<link>http://pywright.dawnsoft.org/wordpress/2010/03/12/0-960-and-some-other-stuff/</link>
		<comments>http://pywright.dawnsoft.org/wordpress/2010/03/12/0-960-and-some-other-stuff/#comments</comments>
		<pubDate>Fri, 12 Mar 2010 18:17:53 +0000</pubDate>
		<dc:creator>saluk</dc:creator>
				<category><![CDATA[Ace Attorney Online Converter]]></category>
		<category><![CDATA[development status]]></category>
		<category><![CDATA[releases]]></category>

		<guid isPermaLink="false">http://pywright.dawnsoft.org/wordpress/?p=283</guid>
		<description><![CDATA[To coincide with Turnabout Substitution&#8217;s third demo release (congrats to Ping&#8217; and his team for all of their hard work!) PyWright has received a minor version bump. It is almost exclusively fixing bugs related to Turnabout Substitution and how far that game pushes the engine; although most of the fixes are generic problems anyone could [...]]]></description>
			<content:encoded><![CDATA[<p>To coincide with <a href="http://forums.court-records.net/games/apollo-justice-case-demo-released-2h30-gameplay-t13200.html">Turnabout Substitution</a>&#8217;s third demo release (congrats to Ping&#8217; and his team for all of their hard work!) PyWright has received a minor version bump. It is almost exclusively fixing bugs related to Turnabout Substitution and how far that game pushes the engine; although most of the fixes are generic problems anyone could run into.</p>
<p>The binaries on the <a href="http://pywright.dawnsoft.org/wordpress/downloads/">download</a> page have been updated to 0.960, or you can update by going to the download section from PyWright&#8217;s main screen. If you update from the engine, don&#8217;t forget to close and restart the engine after the update.</p>
<p>Note: If you have a version of PyWright prior to 0.95, you may have been confused when I said 0.95 was out, as your engine didn&#8217;t automatically update to it. I might not have made this clear, but 0.95 uses new binaries, so the only way to update is to <a href="http://pywright.dawnsoft.org/wordpress/downloads/">download</a> the full package again. If you haven&#8217;t updated PyWright yet, and are still using beta 10.94, head there and grab the shiny new 0.960.</p>
<p>Some other changes in 0.960 are related to the Ace Attorney Online converter. For those paying attention, I put a version of DramaticaXIV2&#8217;s hilarious AAO case, <a href="http://aceattorney.sparklin.org/jeu.php?id_proces=6561">Ace  Attorney Online: The Game</a>, on PyWright&#8217;s game download section. It&#8217;s still very buggy, but mostly works. Download it and play around, if you dare.</p>
<p>I already have a load of new fixes for 0.970 planned, most of which are related to the scary 0.95 in which I allowed feature creep to roll me over. I added so many things I was bound to leave bugs and irritations in my wake! There are also some things which AAO games need, such as the password control, in order to be more accurately converted, so that kind of stuff will be there as well.</p>
<p>Finally, I am working on the test game which was supposed to come out closer to 0.95&#8217;s release, but isn&#8217;t out yet. It will have some examples of how to emulate AAI in PyWright, as well as demonstrate how to use all of the new features. Note that, emulating AAI is not going to be that close to the real game at this time. Version 2.0 may be able to handle it better, but for now it&#8217;s just an emulation. If you want true AAI support, <a href="http://www.gyakutenwiki.net/w/PWLib">pwlib</a> is probably going to be a better choice, if version 1.2 of that ever comes out.</p>
<p>Yep so that&#8217;s my progress in a nutshell. 2.0 is still on the shelf, looking at me forlornly with it&#8217;s extreme features, but I am not ready to tame the beast. I hope that somewhere I will find a good way to transition smoothly into that.</p>
]]></content:encoded>
			<wfw:commentRss>http://pywright.dawnsoft.org/wordpress/2010/03/12/0-960-and-some-other-stuff/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>PyWright 0.95 is live</title>
		<link>http://pywright.dawnsoft.org/wordpress/2010/03/01/pywright-0-95-is-live/</link>
		<comments>http://pywright.dawnsoft.org/wordpress/2010/03/01/pywright-0-95-is-live/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 03:12:07 +0000</pubDate>
		<dc:creator>saluk</dc:creator>
				<category><![CDATA[releases]]></category>

		<guid isPermaLink="false">http://pywright.dawnsoft.org/wordpress/?p=276</guid>
		<description><![CDATA[And I can finally sleep. I am really excited about this version, and I hope that you are too! I have incorporated almost every suggested change or new feature, or at least laid out some plans for how to add those in the future. More than that, I have cleaned up and fixed many of [...]]]></description>
			<content:encoded><![CDATA[<p>And I can finally sleep. I am really excited about this version, and I hope that you are too! I have incorporated almost every suggested change or new feature, or at least laid out some plans for how to add those in the future. More than that, I have cleaned up and fixed many of the things that have hampered the engine a bit in the past.</p>
<p>Things like label none conflicts, menus forcing you to split your scripts a certain way, and there being no way to load a script at any other line then the first, forced game coders to do things in a certain clunky way. Many of those kinds of limitations are now gone.</p>
<p>There were still a few areas where PyWright could not easily be customized. There were hacky ways to do things, and it was MUCH more flexible than some people gave it credit for, but it still had a long way to go. In fact it still does. However, being able to put graphics on your buttons, and some more variables to customize other core components, makes this the most customizable version ever.</p>
<p>So to sum up, I&#8217;m really happy with how this version came out. When I started working on 0.95 (which was then called beta10.95), I didn&#8217;t expect to get into it as much as I did. But with all of the great feedback from users, the help I&#8217;ve gotten with various things, testers finding new ways to break it, and some epiphanies on how to fix long-standing issues; it has culminated into something I&#8217;m actually proud of.</p>
<p>It&#8217;s a long way from 2.0, but I am happy to finish 1.0 before going there. One step at a time.</p>
<p>Downloads <a href="http://pywright.dawnsoft.org/wordpress/downloads/">here</a>, as usual. I hope you enjoy it. If something breaks, that is good too, because there is so much more to be done.</p>
<p>Don&#8217;t forget to read the changelog, especially the part about regressions. While there is mostly just a bunch of new features, some things have changed that may or may not be detrimental to your project. beta 10.94 won&#8217;t force upgrade to 0.95, so you are safe to stick with the old version if you must.<br />
And with that, I&#8217;m going to have a nap!</p>
]]></content:encoded>
			<wfw:commentRss>http://pywright.dawnsoft.org/wordpress/2010/03/01/pywright-0-95-is-live/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>0.95 Ahoy!</title>
		<link>http://pywright.dawnsoft.org/wordpress/2010/03/01/0-95-ahoy/</link>
		<comments>http://pywright.dawnsoft.org/wordpress/2010/03/01/0-95-ahoy/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 21:07:55 +0000</pubDate>
		<dc:creator>saluk</dc:creator>
				<category><![CDATA[development status]]></category>

		<guid isPermaLink="false">http://pywright.dawnsoft.org/wordpress/?p=271</guid>
		<description><![CDATA[The new version is finally upon us. I for one will be glad to stop shuffling files in and out of zip files, waiting for people to report breakages, fixing it, and then zipping it up again, and uploading it, and editing 50 files at once&#8230;
Yeah, releasing is HARD.
Until all of the files are uploaded [...]]]></description>
			<content:encoded><![CDATA[<p>The new version is finally upon us. I for one will be glad to stop shuffling files in and out of zip files, waiting for people to report breakages, fixing it, and then zipping it up again, and uploading it, and editing 50 files at once&#8230;</p>
<p>Yeah, releasing is HARD.</p>
<p>Until all of the files are uploaded things will be kind of broken. Downloads on the download page will not work. </p>
<p>0.95 will NOT download automatically by running PyWright, the full packages for your system will need to be fetched again.</p>
<p>I am not too upset that I didn&#8217;t make February, considering it&#8217;s a day difference.</p>
<p>I can&#8217;t wait for you guys to see what I&#8217;ve been working on!</p>
]]></content:encoded>
			<wfw:commentRss>http://pywright.dawnsoft.org/wordpress/2010/03/01/0-95-ahoy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My music file plays slow in PyWright! Is it just me?</title>
		<link>http://pywright.dawnsoft.org/wordpress/2010/02/25/my-music-file-plays-slow-in-pywright-is-it-just-me/</link>
		<comments>http://pywright.dawnsoft.org/wordpress/2010/02/25/my-music-file-plays-slow-in-pywright-is-it-just-me/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 01:54:03 +0000</pubDate>
		<dc:creator>saluk</dc:creator>
				<category><![CDATA[PyWright tips]]></category>

		<guid isPermaLink="false">http://pywright.dawnsoft.org/wordpress/?p=261</guid>
		<description><![CDATA[Ping&#8217; informed me that there are songs that appear to play slower in PyWright than they should. Here is the reason:
In a typical music player, it is always only playing one music/sound at a time. Because of this, it can shape the music player to fit the rate of whatever is loaded. Music can have [...]]]></description>
			<content:encoded><![CDATA[<p>Ping&#8217; informed me that there are songs that appear to play slower in PyWright than they should. Here is the reason:</p>
<p>In a typical music player, it is always only playing one music/sound at a time. Because of this, it can shape the music player to fit the rate of whatever is loaded. Music can have different sample rates, which is similar to a framerate. It says how many samples per second are stored in the file. When your music player loads a file, it adjust it&#8217;s playing rate based on what rate the file says.</p>
<p>Now, with a game engine, it&#8217;s not so simple. You have many sound effects and different music playing at different times. Because of the way the hardware works, you can only run things at one speed at a time. If you try to play music stored at one rate, and a sound effect stored at another rate, you either have to stop the music to change the settings and play the sound; or resample each file to the settings of the hardware. Resampling means analyzing the sound file and either cutting out frames to make it a slower rate, or adding frames to make it a higher rate.</p>
<p>Some kinds of resampling are very easy. To double the rate, you just have to read two frames at a time; while to half the rate, you can skip a frame. If you are not doubling or halving the frame rate of the sound though, you have to do deeper analysis of the frames.</p>
<p>The libraries PyWright depends on, namely SDL_Mixer, can do the cheap resampling for free. It doesn&#8217;t know anything about more advanced resampling however.</p>
<p><span id="more-261"></span></p>
<p><a href="http://pywright.dawnsoft.org/wordpress/wp-content/uploads/2010/02/settings_format.png"><img class="alignnone size-full wp-image-262" title="settings_format" src="http://pywright.dawnsoft.org/wordpress/wp-content/uploads/2010/02/settings_format.png" alt="" width="256" height="192" /></a></p>
<p>When you check the PyWright sound settings, there are a couple different sample formats to choose. These are all compatible with each other because they are either half or double the frame rate of the next one. If the sample rate of 22050 is chosen, and you try to play a sound that has a sample size of 11025, it will convert that sound into a rate of 22050 in real time, and sound the same as it is supposed to. If you play a sound that is set to 44100 Hz, it will convert it down, and play at the right speed.</p>
<p>Where things get interesting, is if you try to play music that is set at a Hz that can&#8217;t be double or halved from the system rate. Most common is 48000. 48000 hz doesn&#8217;t half or double to any of the values the system is set to by PyWright. So what happens, is it just pretends that the framerate of that 48000 file is 44100 (if 44100 is your setting). If you change the settings down to 11025, I&#8217;m not positive, but I think it does a simple resample down to 12000 (48000/2/2), and then treats it like it is 11025.</p>
<p>How to solve this? If there were an option for it, you could actually set the sound player to have a framerate of 48000, just like the music file you are trying to play. There is just one problem &#8211; all of the standard PyWright sounds have a framerate of 44100 or 22050. If you change the settings to match the music, all of the sounds will now sound like they are on helium!</p>
<p>One way to solve this in code, would be to have a smart resampler that resamples the music if it sees that the rate doesn&#8217;t fit. This would add two things that I don&#8217;t like: much longer loading time for music files as it reads the entire file to convert it; and also making the PyWright installation bigger and harder to package. So I am not going to do this <img src='http://pywright.dawnsoft.org/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>SOLUTION</p>
<p>Resample your files to either 22050 or 44100. Yes, not only do you have to make sure to use .ogg and not .mp3, you also have to be aware of the sample rate. Such is game development! Of course the other solution is to just let the music play that 20% slower. It&#8217;s most likely not that noticeable to most people.</p>
<p>If you are going to resample, make sure to use as your source track the oldest version of the track. If you have an mp3 file, which you converted to ogg, don&#8217;t do anything to the ogg. Resample the mp3 and export to ogg in one step if you can. Each operation to a sound file will have some quality lost. wav-&gt;mp3 has loss, mp3-&gt;ogg has loss, ogg-&gt;resample has loss. wav-&gt;resample/ogg will have the best outcome.</p>
<p>Here&#8217;s how to change the rate in audacity:<br />
Open audacity<br />
Drag source file (wav, mp3, ogg if you have to &#8211; use the best quality source you can) into audacity<br />
EDIT: Change the project sample rate in the lower left corner (previously I thought you change sample rate on track itself, but that was wrong)<br />
Click file, export as ogg vorbis, and name the output</p>
<p>Most other converters will also have a field letting you input what you want the output quality to be. They may be like &#8220;cd quality&#8221;, &#8220;better than cd quality&#8221; etc. You usually will want cd quality or 44100.</p>
<p>Hope this helps!</p>
]]></content:encoded>
			<wfw:commentRss>http://pywright.dawnsoft.org/wordpress/2010/02/25/my-music-file-plays-slow-in-pywright-is-it-just-me/feed/</wfw:commentRss>
		<slash:comments>608</slash:comments>
		</item>
		<item>
		<title>Version number shuffle: 0.95 to be streaming down your tubes this February!</title>
		<link>http://pywright.dawnsoft.org/wordpress/2010/02/19/version-number-shuffle-0-95-to-be-streaming-down-your-tubes-this-february/</link>
		<comments>http://pywright.dawnsoft.org/wordpress/2010/02/19/version-number-shuffle-0-95-to-be-streaming-down-your-tubes-this-february/#comments</comments>
		<pubDate>Fri, 19 Feb 2010 22:47:31 +0000</pubDate>
		<dc:creator>saluk</dc:creator>
				<category><![CDATA[development status]]></category>

		<guid isPermaLink="false">http://pywright.dawnsoft.org/wordpress/?p=227</guid>
		<description><![CDATA[I&#8217;ve been spending some serious time on the next release of PyWright, and been having a blast. It kind of started when Ptapcc from court-records.net started asking me if PyWright could handle certain features he was interested in. When looking closely at what he wanted, most of the things were either doable right now, or [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been spending some serious time on the next release of PyWright, and been having a blast. It kind of started when Ptapcc from court-records.net started asking me if PyWright could handle certain features he was interested in. When looking closely at what he wanted, most of the things were either doable right now, or would be doable with just a few modifications to the PyWright core.</p>
<p>One of the features had to do with zooming, which had already been implemented but not hooked up to wrightscript; and the other had to do with being able to do collision detection with wrightscript alone.</p>
<p>Now I am not trying to compete with pwlib, I don&#8217;t intend to fully replicate the edgeworth walkabout code. But I was interested in whether implementing that was possible without too many changes to the engine.</p>
<p>After implementing a few things, each change led to another, and beta 10.95 is turning out to be one of the biggest updates PyWright has ever had. Most of the updates are small, but quite a few of them are meaningful enough to really have an effect. Being able to add graphics to buttons, rock-solid saving capabilities, and more control over where code jumps (label none is being deprecated) can make workarounds the exception rather than the norm.</p>
<p>It&#8217;s such a big set of fixes in fact, that I am starting to think that the &#8220;beta 10.95&#8243; moniker isn&#8217;t really fitting. PyWright for the most part has been pretty stable. Each release brings issues along with it that can break games, but the amount of changes needed to update games to be compatible has been low. I would have liked to break old games less than I have, but it was beta right? Well now it&#8217;s not. I&#8217;m not going to hide behind the beta name any longer. The internet has enough betas on it&#8217;s hand.</p>
<p>Henceforth, the next version of PyWright is going to be named version 0.95, and it is the series of releases that will eventually (and soon) be 1.0. I will still keep tweaking things as I always do, I&#8217;m sure 0.95 will break something, but I am aiming for more stability from this series. Changing the name is part of that. 0.95 will be out this February for sure. It will require new binaries for those of you using the binary releases.</p>
<p>Currently I am methodically testing the save feature in every possible situation I can come up with to ensure that it is crash-free.</p>
<p>Oh, and the mythical beta 11? Besides being somewhat on hold, it&#8217;s new name is going to be version 2.0.</p>
]]></content:encoded>
			<wfw:commentRss>http://pywright.dawnsoft.org/wordpress/2010/02/19/version-number-shuffle-0-95-to-be-streaming-down-your-tubes-this-february/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 0.997 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2010-09-04 11:31:46 -->
