<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[The 1-Bit Forum — Squeeker by zilogat0r]]></title>
		<link>http://randomflux.info/1bit/viewtopic.php?id=57</link>
		<atom:link href="https://randomflux.info/1bit/extern.php?action=feed&amp;tid=57&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[The most recent posts in Squeeker by zilogat0r.]]></description>
		<lastBuildDate>Wed, 27 Jan 2016 19:40:27 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Squeeker by zilogat0r]]></title>
			<link>http://randomflux.info/1bit/viewtopic.php?pid=540#p540</link>
			<description><![CDATA[<p>The xm2squeek package has been updated, it now enables you to set the duty cycle per pattern.</p>]]></description>
			<author><![CDATA[null@example.com (utz)]]></author>
			<pubDate>Wed, 27 Jan 2016 19:40:27 +0000</pubDate>
			<guid>http://randomflux.info/1bit/viewtopic.php?pid=540#p540</guid>
		</item>
		<item>
			<title><![CDATA[Re: Squeeker by zilogat0r]]></title>
			<link>http://randomflux.info/1bit/viewtopic.php?pid=523#p523</link>
			<description><![CDATA[<p>Ah, I see. That&#039;s indeed a promising concept. It&#039;d be especially interesting to attempt an implementation that uses it for harmonics.</p><p>What was the PIC implementation used for, just a stand-alone thingy? Do you still have sources for it?</p>]]></description>
			<author><![CDATA[null@example.com (utz)]]></author>
			<pubDate>Tue, 19 Jan 2016 22:40:54 +0000</pubDate>
			<guid>http://randomflux.info/1bit/viewtopic.php?pid=523#p523</guid>
		</item>
		<item>
			<title><![CDATA[Re: Squeeker by zilogat0r]]></title>
			<link>http://randomflux.info/1bit/viewtopic.php?pid=522#p522</link>
			<description><![CDATA[<div class="quotebox"><cite>utz wrote:</cite><blockquote><div class="quotebox"><cite>Zilog wrote:</cite><blockquote><p>Is it really more efficient than mine?</p></blockquote></div><p>Not at all, yours is certainly more efficient! The idea was more to smoothen row transitions by speeding up the data loading. I think that worked out reasonably well, though as you can probably tell from the code it&#039;s not optimized at all yet.</p><p>8bit mixing with postscaling? Sounds intriguing, but to be honest I don&#039;t quite understand how that would work. Could you explain a bit more about this idea? In any case, I&#039;d love to see a new engine from you, given the unique approach you took in Squeeker <img src="http://randomflux.info/1bit/img/smilies/smile.png" width="15" height="15" alt="smile" /></p></blockquote></div><p>Well, the key idea is, why do all the people use 8bit counters (DEC counter8; JR NZ 10T_padding; LD counter,divider; LD channel,spike) - this means the higher tone, the less accurate its frequency (divider has just few valid bits). this takes 26T/channel AFAIK.</p><p>But, there&#039;s different approach - phase accumulator instead of divider, there&#039;s no need for conditional jumps, you just add to 8bit &quot;accumulator&quot;, ala<br />LD A,frequency; ADD A,L; LD L,A (no need to reload counters, carry is immediately available, you even can use ADD HL,DE to accomplish this, when the frequency of two channels is very different - bass carry-contributions from L to H could be neglected then etc.).</p><p>Carry then feeds (SBC A,A; AND scaling_val; ADD A,scaler8) another register, &quot;scaler&quot;, where&#039;s accumulated scaling value, typically some power-of-two, repeatedly added and we can control octave this wat, ensuring that the frequency would be in perfect align with other octaves, because we add 128, 64, 32 or similar &quot;nice&quot; numbers. And, when the numbers are even a little bit biased, let&#039;s say by 7, 5 or so, then, PWM control degrades for very low widhts to &quot;intermittent&quot; pins, giving nice fades. You could even produce harmonics with &quot;masking&quot; of that scaler, in one channel.</p><p>You can think of it like a &lt;#80-#FF&gt;-range phase accumulator as &quot;top-octave&quot; generator, with secondary 8bit scaler fed by its pins, doing the &quot;downscaling&quot; stuff - volumes, timbre, intermittent PWM stuff.</p><p>I have this idea for more than 10 years, but still no time to implement it properly (some proof-of-concept has been made on PIC12F628 :-), where it takes 7 mcycles (7us for 4MHz xtal) per channel...</p><p>regards,<br />Zilogat0r</p>]]></description>
			<author><![CDATA[null@example.com (Zilog)]]></author>
			<pubDate>Tue, 19 Jan 2016 11:13:25 +0000</pubDate>
			<guid>http://randomflux.info/1bit/viewtopic.php?pid=522#p522</guid>
		</item>
		<item>
			<title><![CDATA[Re: Squeeker by zilogat0r]]></title>
			<link>http://randomflux.info/1bit/viewtopic.php?pid=520#p520</link>
			<description><![CDATA[<div class="quotebox"><cite>Zilog wrote:</cite><blockquote><p>Is it really more efficient than mine?</p></blockquote></div><p>Not at all, yours is certainly more efficient! The idea was more to smoothen row transitions by speeding up the data loading. I think that worked out reasonably well, though as you can probably tell from the code it&#039;s not optimized at all yet.</p><p>8bit mixing with postscaling? Sounds intriguing, but to be honest I don&#039;t quite understand how that would work. Could you explain a bit more about this idea? In any case, I&#039;d love to see a new engine from you, given the unique approach you took in Squeeker <img src="http://randomflux.info/1bit/img/smilies/smile.png" width="15" height="15" alt="smile" /></p>]]></description>
			<author><![CDATA[null@example.com (utz)]]></author>
			<pubDate>Mon, 18 Jan 2016 21:45:03 +0000</pubDate>
			<guid>http://randomflux.info/1bit/viewtopic.php?pid=520#p520</guid>
		</item>
		<item>
			<title><![CDATA[Re: Squeeker by zilogat0r]]></title>
			<link>http://randomflux.info/1bit/viewtopic.php?pid=517#p517</link>
			<description><![CDATA[<div class="quotebox"><cite>utz wrote:</cite><blockquote><p>Got a first beta of the XM converter ready. It&#039;s functional but highly unoptimized, so I&#039;ll probably make more changes to it later. Anyway, it&#039;s using the original core of the 2012 version of Squeeker. Per-row speed control has been added. Data format and loader have been changed completely.<br />The converter is standalone, no Perl required.</p><p><a href="http://irrlichtproject.de/downloads/xm2squeek.zip">download</a> (win/*nix binaries and source included)</p></blockquote></div><br /><p>Btw. interesting row-oriented partial-change format. Is it really more efficient than mine? (channel-oriented, pattern is always made up of four particular channels)? mine was designed for LZ-based compression (pattern definitions were similar enough, and some tracks, such as bass or accompanion were quite reusable)... nice anyway. looking forward to hearing something new with my engine inside.</p><p>Btw., nowadays I wouldn&#039;t use 16bit phase-accumulator technique. Instead, I&#039;ll use 8bit mixing with postscaling , congruential &quot;lower bits&quot; of the scale-divider, and pwm-threshold for pwm-based volumes. The same 8bit &quot;top-octave&quot; frequency source would ensure proper tuning with sufdficiently enough values (128..255), and the postscaler allows to &quot;modulate&quot; the sound in different ways, producing one carry in the end as well...</p><p>Z.</p>]]></description>
			<author><![CDATA[null@example.com (Zilog)]]></author>
			<pubDate>Mon, 18 Jan 2016 17:38:54 +0000</pubDate>
			<guid>http://randomflux.info/1bit/viewtopic.php?pid=517#p517</guid>
		</item>
		<item>
			<title><![CDATA[Re: Squeeker by zilogat0r]]></title>
			<link>http://randomflux.info/1bit/viewtopic.php?pid=516#p516</link>
			<description><![CDATA[<p>Interesting reading, guys! And a great reverse-engineering attempt. But, just few notes to it:</p><p>- why is the loop djnzed, not unrolled, etc? it&#039;s because there&#039;s no need for extra speed, slow iteration means longer spike (more audible pin-based channels), and it was originally written with code-size in my mind, for Hellboj^HPRG (who loved Hubbard&#039;s JSW so much that i decided he deserves this gift:). summer 2000...</p><p>- channel counter preset - it helps to fight stuck-one in the bass channel (resting pin channel would never produce this), but more importantnly, it helps fight the aliasing - imagine playing two tones simultaneously, just one octave apart. pre-setting channels with different starting values (0,1,2 or maybe 0, 2, 4?) will produce desired harmonics, otherwise spikes of the higher tone would cover up the spikes of the lower tone completely. it&#039;s audible in the JSW song in one pattern - data are correctly there, but the original routine (without preset AFAIK) plays like there&#039;s no progression in one of the channels - all the spikes for that particular tone were just aliased out.</p><p>Now, i&#039;ll play with your converter, Utz!</p><p>Z.</p>]]></description>
			<author><![CDATA[null@example.com (Zilog)]]></author>
			<pubDate>Mon, 18 Jan 2016 17:20:51 +0000</pubDate>
			<guid>http://randomflux.info/1bit/viewtopic.php?pid=516#p516</guid>
		</item>
		<item>
			<title><![CDATA[Re: Squeeker by zilogat0r]]></title>
			<link>http://randomflux.info/1bit/viewtopic.php?pid=495#p495</link>
			<description><![CDATA[<p>And another build attempt. Same download link as before, hope it finally works now!</p>]]></description>
			<author><![CDATA[null@example.com (utz)]]></author>
			<pubDate>Sun, 17 Jan 2016 21:22:41 +0000</pubDate>
			<guid>http://randomflux.info/1bit/viewtopic.php?pid=495#p495</guid>
		</item>
		<item>
			<title><![CDATA[Re: Squeeker by zilogat0r]]></title>
			<link>http://randomflux.info/1bit/viewtopic.php?pid=478#p478</link>
			<description><![CDATA[<p>Not working for me I&#039;m afraid utz <img src="http://randomflux.info/1bit/img/smilies/sad.png" width="15" height="15" alt="sad" /></p><p>I&#039;m on Windows 8, 64bit</p><p>Just tried the xmtosqueeker.exe and downloaded a .dll it asked for but it still won&#039;t start up. <br />libgcc_s_sjlj-1.dll</p><p>Net research also advised to copy this .dll to \windows\SysWOW64<br />libgcc_s_dw2-1.dll</p>]]></description>
			<author><![CDATA[null@example.com (AtariTufty)]]></author>
			<pubDate>Fri, 15 Jan 2016 20:53:54 +0000</pubDate>
			<guid>http://randomflux.info/1bit/viewtopic.php?pid=478#p478</guid>
		</item>
		<item>
			<title><![CDATA[Re: Squeeker by zilogat0r]]></title>
			<link>http://randomflux.info/1bit/viewtopic.php?pid=476#p476</link>
			<description><![CDATA[<p>Hehe, thanks <img src="http://randomflux.info/1bit/img/smilies/wink.png" width="15" height="15" alt="wink" /> It&#039;s all due to how great this engine sounds, though <img src="http://randomflux.info/1bit/img/smilies/big_smile.png" width="15" height="15" alt="big_smile" /></p>]]></description>
			<author><![CDATA[null@example.com (utz)]]></author>
			<pubDate>Fri, 15 Jan 2016 13:35:47 +0000</pubDate>
			<guid>http://randomflux.info/1bit/viewtopic.php?pid=476#p476</guid>
		</item>
		<item>
			<title><![CDATA[Re: Squeeker by zilogat0r]]></title>
			<link>http://randomflux.info/1bit/viewtopic.php?pid=473#p473</link>
			<description><![CDATA[<p>by the way, the sample tune sounds very good, I guess it&#039;s your composition...</p>]]></description>
			<author><![CDATA[null@example.com (garvalf)]]></author>
			<pubDate>Thu, 14 Jan 2016 21:51:17 +0000</pubDate>
			<guid>http://randomflux.info/1bit/viewtopic.php?pid=473#p473</guid>
		</item>
		<item>
			<title><![CDATA[Re: Squeeker by zilogat0r]]></title>
			<link>http://randomflux.info/1bit/viewtopic.php?pid=472#p472</link>
			<description><![CDATA[<p>Yes, and that&#039;s also what the template is based on. It seemed like a good compromise, as the engine started to overload at around 40.</p>]]></description>
			<author><![CDATA[null@example.com (utz)]]></author>
			<pubDate>Thu, 14 Jan 2016 21:35:02 +0000</pubDate>
			<guid>http://randomflux.info/1bit/viewtopic.php?pid=472#p472</guid>
		</item>
		<item>
			<title><![CDATA[Re: Squeeker by zilogat0r]]></title>
			<link>http://randomflux.info/1bit/viewtopic.php?pid=471#p471</link>
			<description><![CDATA[<p>about the global duty, I guess the default value is 32, isn&#039;t it?</p>]]></description>
			<author><![CDATA[null@example.com (garvalf)]]></author>
			<pubDate>Thu, 14 Jan 2016 20:41:51 +0000</pubDate>
			<guid>http://randomflux.info/1bit/viewtopic.php?pid=471#p471</guid>
		</item>
		<item>
			<title><![CDATA[Re: Squeeker by zilogat0r]]></title>
			<link>http://randomflux.info/1bit/viewtopic.php?pid=470#p470</link>
			<description><![CDATA[<p>very cool, I&#039;m working on a tune with this new tool. Thank you!</p>]]></description>
			<author><![CDATA[null@example.com (garvalf)]]></author>
			<pubDate>Thu, 14 Jan 2016 16:47:48 +0000</pubDate>
			<guid>http://randomflux.info/1bit/viewtopic.php?pid=470#p470</guid>
		</item>
		<item>
			<title><![CDATA[Re: Squeeker by zilogat0r]]></title>
			<link>http://randomflux.info/1bit/viewtopic.php?pid=468#p468</link>
			<description><![CDATA[<p>Yesterday&#039;s release had a botched XM template. Fixed that and also improved the loader code somewhat, so please re-download.</p>]]></description>
			<author><![CDATA[null@example.com (utz)]]></author>
			<pubDate>Thu, 14 Jan 2016 12:04:13 +0000</pubDate>
			<guid>http://randomflux.info/1bit/viewtopic.php?pid=468#p468</guid>
		</item>
		<item>
			<title><![CDATA[Re: Squeeker by zilogat0r]]></title>
			<link>http://randomflux.info/1bit/viewtopic.php?pid=467#p467</link>
			<description><![CDATA[<p>Got a first beta of the XM converter ready. It&#039;s functional but highly unoptimized, so I&#039;ll probably make more changes to it later. Anyway, it&#039;s using the original core of the 2012 version of Squeeker. Per-row speed control has been added. Data format and loader have been changed completely.<br />The converter is standalone, no Perl required.</p><p><a href="http://irrlichtproject.de/downloads/xm2squeek.zip">download</a> (win/*nix binaries and source included)</p>]]></description>
			<author><![CDATA[null@example.com (utz)]]></author>
			<pubDate>Wed, 13 Jan 2016 22:23:50 +0000</pubDate>
			<guid>http://randomflux.info/1bit/viewtopic.php?pid=467#p467</guid>
		</item>
	</channel>
</rss>
