<?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 — Quad tone engine]]></title>
		<link>http://randomflux.info/1bit/viewtopic.php?id=354</link>
		<atom:link href="https://randomflux.info/1bit/extern.php?action=feed&amp;tid=354&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[The most recent posts in Quad tone engine.]]></description>
		<lastBuildDate>Wed, 24 Jan 2024 15:22:41 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Quad tone engine]]></title>
			<link>http://randomflux.info/1bit/viewtopic.php?pid=2986#p2986</link>
			<description><![CDATA[<p>Voilà. Haven&#039;t tested it extensively so there might still be bugs lurking here and there.<br />Ended up implementing drums as 8-bit PWM at 27210 Hz. Tried to do it at 54420 Hz, but it&#039;s impossible. It wouldn&#039;t make much sense anyway since 54420 Hz would leave us with a lower range limit of ~212 Hz unless we&#039;d go 16-bit.</p><p>Btw, looks like Furnace can&#039;t actually compile z80 code yet. So this is going to take a while in any case.</p><p><em>Edit:</em> source updated with a small tweak to reduce row transition noise</p><p><em>Edit 2:</em> cut player size down to 3333 bytes</p>]]></description>
			<author><![CDATA[null@example.com (utz)]]></author>
			<pubDate>Wed, 24 Jan 2024 15:22:41 +0000</pubDate>
			<guid>http://randomflux.info/1bit/viewtopic.php?pid=2986#p2986</guid>
		</item>
		<item>
			<title><![CDATA[Re: Quad tone engine]]></title>
			<link>http://randomflux.info/1bit/viewtopic.php?pid=2985#p2985</link>
			<description><![CDATA[<p>Oh, sorry, here&#039;s the text dump. You can dump any module like that with File &gt; Export command stream &gt; Export text.</p>]]></description>
			<author><![CDATA[null@example.com (Shiru)]]></author>
			<pubDate>Mon, 22 Jan 2024 14:58:59 +0000</pubDate>
			<guid>http://randomflux.info/1bit/viewtopic.php?pid=2985#p2985</guid>
		</item>
		<item>
			<title><![CDATA[Re: Quad tone engine]]></title>
			<link>http://randomflux.info/1bit/viewtopic.php?pid=2984#p2984</link>
			<description><![CDATA[<p>Ah, great, it&#039;s a binary. 1990s called, they want their file formats back. Even after decompressing it, I can&#039;t make much sense of it.</p><p>Meanwhile, massaged the engine a bit so it does 60Hz updates (at a sample rate of 9114Hz, can&#039;t go faster anyway). Now I&#039;m wondering what to do with the drums. Documentation says they&#039;re pitchable 1-bit PCM drums up to a max length of 2048 samples running at a rate of 54420 Hz. Not sure why you would want to do it this way, but ok. I&#039;d use PWM drums in any case, but 54420Hz comes down to about 63t, which I don&#039;t think is enough to decode either 1-bit PCM or PWM AND calculate pitch. Might have to cut some corners here.</p>]]></description>
			<author><![CDATA[null@example.com (utz)]]></author>
			<pubDate>Mon, 22 Jan 2024 14:51:06 +0000</pubDate>
			<guid>http://randomflux.info/1bit/viewtopic.php?pid=2984#p2984</guid>
		</item>
		<item>
			<title><![CDATA[Re: Quad tone engine]]></title>
			<link>http://randomflux.info/1bit/viewtopic.php?pid=2983#p2983</link>
			<description><![CDATA[<p>Wow. Sounds reasonable!</p><p>In meanwhile, I found one actual FUR module for the QuadTone engine. May come handy for tests.</p>]]></description>
			<author><![CDATA[null@example.com (Shiru)]]></author>
			<pubDate>Mon, 22 Jan 2024 09:50:26 +0000</pubDate>
			<guid>http://randomflux.info/1bit/viewtopic.php?pid=2983#p2983</guid>
		</item>
		<item>
			<title><![CDATA[Re: Quad tone engine]]></title>
			<link>http://randomflux.info/1bit/viewtopic.php?pid=2982#p2982</link>
			<description><![CDATA[<p>rough engine draft</p>]]></description>
			<author><![CDATA[null@example.com (utz)]]></author>
			<pubDate>Sun, 21 Jan 2024 23:35:04 +0000</pubDate>
			<guid>http://randomflux.info/1bit/viewtopic.php?pid=2982#p2982</guid>
		</item>
		<item>
			<title><![CDATA[Re: Quad tone engine]]></title>
			<link>http://randomflux.info/1bit/viewtopic.php?pid=2981#p2981</link>
			<description><![CDATA[<p>That actually looks quite workable, for a start. I think it could be compressed well enough by first condensing each row so that duplicate data is omitted and presence/absence of entries is marked with some control byte, then adding each unique row to a dictionary and constructing a sequence of pointers to the dictionary.</p><p>The question would be what to do with those 60Hz updates. Could be implemented as such in the engine, at the cost of lowering the sample rate and sacrificing accuracy in the time domain (ie. updates would be applied on consecutive loop iterations instead of all at once), or one could recalculate any effects for a lower update rate. In any case effects would need to be flattened/precalculated.</p><p>Some things in this dump are a mystery to me as well though. 4: NOTE_ON 24 2 might be a trigger for the interrupting PWM channel, but then where&#039;s the sample data and what defines the playback length of the sample?</p><p><em>Edit:</em> Another problem with the stream dump format is that it does not seem to distinguish actual triggers from notes continued from the previous row. Also, where is the instrument information (eg duty)?</p>]]></description>
			<author><![CDATA[null@example.com (utz)]]></author>
			<pubDate>Sat, 20 Jan 2024 15:10:21 +0000</pubDate>
			<guid>http://randomflux.info/1bit/viewtopic.php?pid=2981#p2981</guid>
		</item>
		<item>
			<title><![CDATA[Re: Quad tone engine]]></title>
			<link>http://randomflux.info/1bit/viewtopic.php?pid=2980#p2980</link>
			<description><![CDATA[<p>Furnace does feature some kind of debug stream dump, which may be used for conversion purpose, although I&#039;m not really understand what&#039;s going on there. For QuadTone it looks like this:</p><div class="codebox"><pre><code># Furnace Command Stream

[Information]
name: 
author: 
category: 
system: ZX Spectrum (beeper only, QuadTone engine)

[SubSongInformation]
name: 
tickRate: 60.000000

[SysDefinition]

[Stream]
&gt;&gt; TICK 0
  0: HINT_ARPEGGIO 0 0
  0: NOTE_ON 45 2
  1: HINT_ARPEGGIO 0 0
  1: NOTE_ON 40 2
  2: HINT_ARPEGGIO 0 0
  2: NOTE_ON 24 2
  3: HINT_ARPEGGIO 0 0
  3: NOTE_ON 31 2
  4: HINT_ARPEGGIO 0 0
  4: NOTE_ON 24 2
&gt;&gt; TICK 12
  0: NOTE_ON 57 2
  1: NOTE_ON 52 2
  2: NOTE_ON 24 2
  3: NOTE_ON 31 2
&gt;&gt; TICK 24
  0: NOTE_ON 43 2
  1: NOTE_ON 41 2
  2: NOTE_ON 24 2
  3: NOTE_ON 31 2
  4: NOTE_ON 24 2
&gt;&gt; TICK 36
  0: NOTE_ON 55 2
  1: NOTE_ON 53 2
  2: NOTE_ON 24 2
  3: NOTE_ON 31 2
&gt;&gt; TICK 48
  0: NOTE_ON 41 2
  1: NOTE_ON 43 2
  2: NOTE_ON 24 2
  3: NOTE_ON 31 2
  4: NOTE_ON 24 2</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Shiru)]]></author>
			<pubDate>Fri, 19 Jan 2024 17:40:02 +0000</pubDate>
			<guid>http://randomflux.info/1bit/viewtopic.php?pid=2980#p2980</guid>
		</item>
		<item>
			<title><![CDATA[Re: Quad tone engine]]></title>
			<link>http://randomflux.info/1bit/viewtopic.php?pid=2979#p2979</link>
			<description><![CDATA[<p>It&#039;s a shame Furnace doesn&#039;t put more effort into actually getting tracks to run on hardware, since it has already become somewhat of a de-facto standard in the scene and attracts a lot of young talent. But here&#039;s the point: That young talent doesn&#039;t have access to actual hardware for the most part, so they don&#039;t care if it runs on hardware. For them, this is as close to &quot;real&quot; as it gets. That&#039;s the reality of chiptune in 2024, like it or not. Can&#039;t blame the Furnace devs either - they focus on providing what the majority of their users want, and that works for them, both in terms of number of users as well as number of people involved with development.</p><p>The only chance for setting things right from our perspective would be to implement hw support for the two Furnace players ourselves. I think it&#039;s doable, the specs are relatively sane. There are a couple of issues - if I understand correctly both engines assume 50Hz updates, which is not feasible for QuadTone, and QuadTone seems to assume an internal loop time of &gt;224t, which obviously is going to have much more of a parasite tone than what is currently emulated. But with a few minor adjustments it could be done. I&#039;m not willing to work on it though for a number of reasons, at least not the C++ side of things.</p>]]></description>
			<author><![CDATA[null@example.com (utz)]]></author>
			<pubDate>Fri, 19 Jan 2024 12:04:35 +0000</pubDate>
			<guid>http://randomflux.info/1bit/viewtopic.php?pid=2979#p2979</guid>
		</item>
		<item>
			<title><![CDATA[Re: Quad tone engine]]></title>
			<link>http://randomflux.info/1bit/viewtopic.php?pid=2978#p2978</link>
			<description><![CDATA[<p>Yep, this one if from Furnace. The description says: &#039;another ZX Spectrum beeper system with full PWM pulses and 3-level volume per channel. It also has a pitchable overlay sample channel&#039;.</p><p>A problem with Furnace, though, is that is has support for a lot of chips and platforms that is implemented inside the tracker only, i.e. you can&#039;t export some data/code and play it on the real hardware. I don&#039;t know about this engine, how exactly it has been designed (my bet it is does not exist as Z80 code and is not really within the actual possibilities), but for example, it has a PET support with the notes lower than 245 Hz, but without a proper exporter. So my guess is they&#039;re assuming it is possible, but at the moment it is a mis-named virtual target. Either engine has WAV export only.</p>]]></description>
			<author><![CDATA[null@example.com (Shiru)]]></author>
			<pubDate>Wed, 17 Jan 2024 06:46:11 +0000</pubDate>
			<guid>http://randomflux.info/1bit/viewtopic.php?pid=2978#p2978</guid>
		</item>
		<item>
			<title><![CDATA[Re: Quad tone engine]]></title>
			<link>http://randomflux.info/1bit/viewtopic.php?pid=2977#p2977</link>
			<description><![CDATA[<p>quad tone is the Furnace one afaik</p>]]></description>
			<author><![CDATA[null@example.com (utz)]]></author>
			<pubDate>Tue, 16 Jan 2024 00:26:01 +0000</pubDate>
			<guid>http://randomflux.info/1bit/viewtopic.php?pid=2977#p2977</guid>
		</item>
		<item>
			<title><![CDATA[Quad tone engine]]></title>
			<link>http://randomflux.info/1bit/viewtopic.php?pid=2976#p2976</link>
			<description><![CDATA[<p>Hi guys</p><p>Came across this tune on YT which it says uses the &#039;quad tone&#039; engine.</p><p><a href="https://youtu.be/hZtP6VBQIXs?si=xeBR8OXDCJQD51aU">https://youtu.be/hZtP6VBQIXs?si=xeBR8OXDCJQD51aU</a></p><br /><p>I&#039;ve not heard of this. Is it a real ZX Beeper engine that can be played on real hardware or one of these ones from packages like furnace tracker?</p><br /><p>Good composition</p>]]></description>
			<author><![CDATA[null@example.com (AtariTufty)]]></author>
			<pubDate>Tue, 16 Jan 2024 00:23:40 +0000</pubDate>
			<guid>http://randomflux.info/1bit/viewtopic.php?pid=2976#p2976</guid>
		</item>
	</channel>
</rss>
