<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[The 1-Bit Forum — Shiru's 1-Bit Music Compilation Vol.2]]></title>
	<link rel="self" href="https://randomflux.info/1bit/extern.php?action=feed&amp;tid=288&amp;type=atom" />
	<updated>2022-01-22T22:31:30Z</updated>
	<generator>PunBB</generator>
	<id>http://randomflux.info/1bit/viewtopic.php?id=288</id>
		<entry>
			<title type="html"><![CDATA[Re: Shiru's 1-Bit Music Compilation Vol.2]]></title>
			<link rel="alternate" href="http://randomflux.info/1bit/viewtopic.php?pid=2513#p2513" />
			<content type="html"><![CDATA[<p>Wow sounded like a massive amount of work to get all the tunes to fit into 48k <img src="http://randomflux.info/1bit/img/smilies/yikes.png" width="15" height="15" alt="yikes" /></p><p>Very impressive work.</p><p>For my &#039;On and Off&#039; .tap I didn&#039;t even bother to try and get them to fit. Beeperman and Radio in the Rain are 32kb each !<br />I just had a multi-load .tap and assumed someone would make a .trd version</p>]]></content>
			<author>
				<name><![CDATA[AtariTufty]]></name>
				<uri>http://randomflux.info/1bit/profile.php?id=5</uri>
			</author>
			<updated>2022-01-22T22:31:30Z</updated>
			<id>http://randomflux.info/1bit/viewtopic.php?pid=2513#p2513</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Shiru's 1-Bit Music Compilation Vol.2]]></title>
			<link rel="alternate" href="http://randomflux.info/1bit/viewtopic.php?pid=2511#p2511" />
			<content type="html"><![CDATA[<p>From what limited testing I&#039;ve done, it also looked like apack is the better general purpose compressor, but zx0 seems to have a slight edge over the former when compressing beeper music data. Surprised to see that zx5 performs so much better than zx0 for Freezing Point.</p>]]></content>
			<author>
				<name><![CDATA[utz]]></name>
				<uri>http://randomflux.info/1bit/profile.php?id=2</uri>
			</author>
			<updated>2022-01-20T18:15:44Z</updated>
			<id>http://randomflux.info/1bit/viewtopic.php?pid=2511#p2511</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Shiru's 1-Bit Music Compilation Vol.2]]></title>
			<link rel="alternate" href="http://randomflux.info/1bit/viewtopic.php?pid=2510#p2510" />
			<content type="html"><![CDATA[<p>Thanks, I&#039;ll consider to use it in the future projects.</p>]]></content>
			<author>
				<name><![CDATA[Shiru]]></name>
				<uri>http://randomflux.info/1bit/profile.php?id=11</uri>
			</author>
			<updated>2022-01-20T14:17:09Z</updated>
			<id>http://randomflux.info/1bit/viewtopic.php?pid=2510#p2510</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Shiru's 1-Bit Music Compilation Vol.2]]></title>
			<link rel="alternate" href="http://randomflux.info/1bit/viewtopic.php?pid=2509#p2509" />
			<content type="html"><![CDATA[<p><a href="https://github.com/einar-saukas/ZX5">https://github.com/einar-saukas/ZX5</a></p><br /><p>---<br />in the 6502 world it performs very well. on the Z80 it should be good too....</p>]]></content>
			<author>
				<name><![CDATA[xxl]]></name>
				<uri>http://randomflux.info/1bit/profile.php?id=10</uri>
			</author>
			<updated>2022-01-20T14:02:11Z</updated>
			<id>http://randomflux.info/1bit/viewtopic.php?pid=2509#p2509</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Shiru's 1-Bit Music Compilation Vol.2]]></title>
			<link rel="alternate" href="http://randomflux.info/1bit/viewtopic.php?pid=2508#p2508" />
			<content type="html"><![CDATA[<p>That&#039;s nice, 150 bytes here and there would make an extra K. How long does it take to decompress?</p>]]></content>
			<author>
				<name><![CDATA[Shiru]]></name>
				<uri>http://randomflux.info/1bit/profile.php?id=11</uri>
			</author>
			<updated>2022-01-20T13:56:25Z</updated>
			<id>http://randomflux.info/1bit/viewtopic.php?pid=2508#p2508</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Shiru's 1-Bit Music Compilation Vol.2]]></title>
			<link rel="alternate" href="http://randomflux.info/1bit/viewtopic.php?pid=2507#p2507" />
			<content type="html"><![CDATA[<p>APL: 2768<br />ZX0: 2735<br />ZX5: 2606</p>]]></content>
			<author>
				<name><![CDATA[xxl]]></name>
				<uri>http://randomflux.info/1bit/profile.php?id=10</uri>
			</author>
			<updated>2022-01-20T13:54:19Z</updated>
			<id>http://randomflux.info/1bit/viewtopic.php?pid=2507#p2507</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Shiru's 1-Bit Music Compilation Vol.2]]></title>
			<link rel="alternate" href="http://randomflux.info/1bit/viewtopic.php?pid=2506#p2506" />
			<content type="html"><![CDATA[<p>Well, Freezing Point data is certainly not 94K large. You&#039;re packing the source text file for some reason.</p><p>The binary data is 16714 bytes large, 2768 bytes after packing with the apultra. You can try ZX5 on this data (attached).</p>]]></content>
			<author>
				<name><![CDATA[Shiru]]></name>
				<uri>http://randomflux.info/1bit/profile.php?id=11</uri>
			</author>
			<updated>2022-01-20T13:35:29Z</updated>
			<id>http://randomflux.info/1bit/viewtopic.php?pid=2506#p2506</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Shiru's 1-Bit Music Compilation Vol.2]]></title>
			<link rel="alternate" href="http://randomflux.info/1bit/viewtopic.php?pid=2505#p2505" />
			<content type="html"><![CDATA[<p>It is better to check for yourself because it strictly depends on the data. Shrinkler also has a NP (no parity) version which does not need as many buffers. In my tests valmost always ZX0 (ZX5 - mutation that remembers 3 ofsets) is better then APL, but I operate on very similar data (graphics) let&#039;s check on the example of music:</p><p>freezing point:&nbsp; 94 841 bytes<br />ZX0: 12 659<br />APL: 12 351<br />ZX5: 9 019</p>]]></content>
			<author>
				<name><![CDATA[xxl]]></name>
				<uri>http://randomflux.info/1bit/profile.php?id=10</uri>
			</author>
			<updated>2022-01-20T12:08:51Z</updated>
			<id>http://randomflux.info/1bit/viewtopic.php?pid=2505#p2505</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Shiru's 1-Bit Music Compilation Vol.2]]></title>
			<link rel="alternate" href="http://randomflux.info/1bit/viewtopic.php?pid=2503#p2503" />
			<content type="html"><![CDATA[<p>Yes, that was Shrinkler, a few versions in fact. No, haven&#039;t tried ZX0, because there is <a href="https://github.com/uniabis/z80depacker">a large test table for all Z80 packers</a>, and ZX0 shows worse results for all test datasets there than apultra.</p>]]></content>
			<author>
				<name><![CDATA[Shiru]]></name>
				<uri>http://randomflux.info/1bit/profile.php?id=11</uri>
			</author>
			<updated>2022-01-20T10:44:58Z</updated>
			<id>http://randomflux.info/1bit/viewtopic.php?pid=2503#p2503</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Shiru's 1-Bit Music Compilation Vol.2]]></title>
			<link rel="alternate" href="http://randomflux.info/1bit/viewtopic.php?pid=2502#p2502" />
			<content type="html"><![CDATA[<p>you probably write about Shrinkler but have you checked the ZX0? The decompressor is shorter, faster and more efficient than aPL (apultra)</p>]]></content>
			<author>
				<name><![CDATA[xxl]]></name>
				<uri>http://randomflux.info/1bit/profile.php?id=10</uri>
			</author>
			<updated>2022-01-20T06:57:16Z</updated>
			<id>http://randomflux.info/1bit/viewtopic.php?pid=2502#p2502</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Shiru's 1-Bit Music Compilation Vol.2]]></title>
			<link rel="alternate" href="http://randomflux.info/1bit/viewtopic.php?pid=2501#p2501" />
			<content type="html"><![CDATA[<p>I used apultra to pack everything, including players. Players and music data were packed separately, so players get reused. I also tested some even better packers, but they would take like half a minute to decompress in the worst case, which is unacceptable.</p><p>Even with the best packing, I needed a large buffer for the largest unpacked song, it was nearly 19K. At this point it couldn&#039;t fit at all.</p><p>I had to:</p><p>- Place my code as low as #5b00, disabling the BASIC interrupt handler completely<br />- Overwrite the screen drawing code with the song buffer<br />- Decrease the two largest songs</p><p>In order to decrease the largest songs size, which happened to be Freezing Point and Geostorm, I first made a function that optimizes out the empty rows by reducing the speed of a row before (recursively, as long as row speeds allows). This optimization can be applied to any song in 1tracker now. This helped a bit, but still wasn&#039;t enough. So I also had to modify wtbeep and SquatM formats.</p><p>In the wtbeep, I now omit the 0 byte for rows without a drum (it is now triggered by the bit 6 of the control word). Saves a bit of room.</p><p>In the SquatM, I reworked the way how the dividers stored. Instead of the normal LSB/MSB order that is easy to read with POP I stored them in the MSB/LSB order, and used bit 7 of the MSB as the note rest flag. The LSB is omited for note rests. This of course made the song data parser very suboptimal, but the Sqeeker-like design does not suffer from row transition noise much, and I gained the remaining bits of the RAM.</p><p>The largest songs remained the same, but I saved a couple K this way. Freezing point is 16714 now, and Geostorm is 15809 (2768 and 2500 packed).</p>]]></content>
			<author>
				<name><![CDATA[Shiru]]></name>
				<uri>http://randomflux.info/1bit/profile.php?id=11</uri>
			</author>
			<updated>2022-01-20T05:39:29Z</updated>
			<id>http://randomflux.info/1bit/viewtopic.php?pid=2501#p2501</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Shiru's 1-Bit Music Compilation Vol.2]]></title>
			<link rel="alternate" href="http://randomflux.info/1bit/viewtopic.php?pid=2500#p2500" />
			<content type="html"><![CDATA[<p>Thanks. Yeah some of the newer engines chew through RAM like crazy. I&#039;m still surprised to hear that it was such a tight squeeze. Would you share some more details on how you pulled it off in the end?</p>]]></content>
			<author>
				<name><![CDATA[utz]]></name>
				<uri>http://randomflux.info/1bit/profile.php?id=2</uri>
			</author>
			<updated>2022-01-19T21:30:18Z</updated>
			<id>http://randomflux.info/1bit/viewtopic.php?pid=2500#p2500</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Shiru's 1-Bit Music Compilation Vol.2]]></title>
			<link rel="alternate" href="http://randomflux.info/1bit/viewtopic.php?pid=2498#p2498" />
			<content type="html"><![CDATA[<p>A <a href="https://www.patreon.com/posts/shirus-1-bit-vol-61285010">small behind the scenes post</a> about this release.</p>]]></content>
			<author>
				<name><![CDATA[Shiru]]></name>
				<uri>http://randomflux.info/1bit/profile.php?id=11</uri>
			</author>
			<updated>2022-01-19T18:08:51Z</updated>
			<id>http://randomflux.info/1bit/viewtopic.php?pid=2498#p2498</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Shiru's 1-Bit Music Compilation Vol.2]]></title>
			<link rel="alternate" href="http://randomflux.info/1bit/viewtopic.php?pid=2495#p2495" />
			<content type="html"><![CDATA[<p>Thanks, guys!</p><p>Interestingly, both Geostorm and High Orbit started as NES tracks, they were half finished sketches (half length of the finished versions) written for a game that never happened, lying around since 2017 I think. I thought they won&#039;t translate into 1-bit well, because the NES of course used volumes, duty cycle, slow attacks, samples, and so on. But it turned out to be the case when moving a song sketch that is just stalled in one format into another format made it shine.</p>]]></content>
			<author>
				<name><![CDATA[Shiru]]></name>
				<uri>http://randomflux.info/1bit/profile.php?id=11</uri>
			</author>
			<updated>2022-01-18T06:55:40Z</updated>
			<id>http://randomflux.info/1bit/viewtopic.php?pid=2495#p2495</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Shiru's 1-Bit Music Compilation Vol.2]]></title>
			<link rel="alternate" href="http://randomflux.info/1bit/viewtopic.php?pid=2494#p2494" />
			<content type="html"><![CDATA[<p>Excellent stuff Shiru, downloaded from Bandcamp the second I saw you’d released it.</p><p>My favs are Geostorm closely followed by High Orbit</p>]]></content>
			<author>
				<name><![CDATA[AtariTufty]]></name>
				<uri>http://randomflux.info/1bit/profile.php?id=5</uri>
			</author>
			<updated>2022-01-18T05:06:43Z</updated>
			<id>http://randomflux.info/1bit/viewtopic.php?pid=2494#p2494</id>
		</entry>
</feed>
