AdamJ [Lexaloffle Blog Feed]https://www.lexaloffle.com/bbs/?uid=12594 Emit! <p> <table><tr><td> <a href="/bbs/?pid=63740#p"> <img src="/bbs/thumbs/pico8_bajazajide-0.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=63740#p"> Emit!</a><br><br> by <a href="/bbs/?uid=12594"> AdamJ</a> <br><br><br> <a href="/bbs/?pid=63740#p"> [Click to Play]</a> </td></tr></table> <br /> The horizontal bars emit particles, every few seconds each. When a particle reaches the top or the bottom of the screen, one energy point is lost. The emitors work also as filters: When a particle hits a horizontal bar, it's absorbed and +1 score is awarded. Try scoring as much as possible before the energy reaches 0 and the game is over. My personal record is slightly over 540.</p> https://www.lexaloffle.com/bbs/?tid=33951 https://www.lexaloffle.com/bbs/?tid=33951 Sat, 20 Apr 2019 20:57:31 UTC AdamJ's #tweetcarts <p> <table><tr><td> <a href="/bbs/?pid=40722#p"> <img src="/bbs/thumbs/pico40925.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=40722#p"> AdamJ's #tweetcarts 1.2</a><br><br> by <a href="/bbs/?uid=12594"> AdamJ</a> <br><br><br> <a href="/bbs/?pid=40722#p"> [Click to Play]</a> </td></tr></table> </p> <p>Hi guys, I collected some of my tweetcarts and put them all into a single cartridge. They were all within the 140 characters limit at the time of posting on twitter. I took two liberties: I renamed the labels in them from ::_:: to ::_1::, ::_2::, etc. so that they would be unique, and I added a btnp(5) test to each of their main cycle. I am sure there is a way how to do it more efficiently but it should be OK for now :)</p> <p>2017-05-22: Added one more<br /> 2017-05-24: And one more. Now there are 10 of those :-)</p> https://www.lexaloffle.com/bbs/?tid=29345 https://www.lexaloffle.com/bbs/?tid=29345 Thu, 18 May 2017 09:40:35 UTC Higher-Order Lissajous Patterns Explorer <p> <table><tr><td> <a href="/bbs/?pid=39512#p"> <img src="/bbs/thumbs/pico39511.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=39512#p"> Higher-Order Lissajous Explorer 1.0</a><br><br> by <a href="/bbs/?uid=12594"> AdamJ</a> <br><br><br> <a href="/bbs/?pid=39512#p"> [Click to Play]</a> </td></tr></table> </p> <p>I made a little tool exploring higher-order Lissajous patterns. Well, I'm not entirely sure they're actually called that, but this name sounds very mathematical :-). Some outputs look like human tongues or crests, some like butterflies, some like atomic mushrooms. </p> <img style="" border=0 src="https://www.lexaloffle.com/bbs/files/12594/examples_2.png" alt="" /> <p>I'm sure everyone knows the principle of the basic Lissajous patterns. You iterate the following through a reasonable range of T and plot the points as you go:</p> <div> <div style="max-width:800px; overflow:auto; margin-bottom:12px"> <table style="width:100%" cellspacing=0 cellpadding=0> <tr><td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> <td background=/gfx/code_bg0.png> <div style="font-family : courier; color: #000000; display:absolute; padding-left:10px; padding-top:4px; padding-bottom:4px; "> <pre> X = sin(T / Rx) Y = cos(T / Ry) </pre></div></td> <td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> </tr></table></div></div> <p>Rx == Ry gets you a circle, Rx == 2 and Ry == 1 is a paraboloid, and Rx == 1 and Ry == 2 looks like an hourglass. The images generated by my cart extend this a little bit. I sum a few &quot;higher harmonics&quot; before plotting the result:</p> <div> <div style="max-width:800px; overflow:auto; margin-bottom:12px"> <table style="width:100%" cellspacing=0 cellpadding=0> <tr><td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> <td background=/gfx/code_bg0.png> <div style="font-family : courier; color: #000000; display:absolute; padding-left:10px; padding-top:4px; padding-bottom:4px; "> <pre> X = 0 Y = 0 for I = 1 to speficied_order: X += sin(T * I / Rx) * R Y += cos(T * I / Ry) * R R *= 0.75 </pre></div></td> <td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> </tr></table></div></div> <p>These are somewhat phase-shifted 1:2 of order 1, 2, 3, and 4:</p> <img style="" border=0 src="https://www.lexaloffle.com/bbs/files/12594/examples_1.png" alt="" /> <p>I am pretty excited by this little discovery. (Or a lack of a proper literature research?) Regardless, it's been fun :-)</p> https://www.lexaloffle.com/bbs/?tid=29142 https://www.lexaloffle.com/bbs/?tid=29142 Mon, 10 Apr 2017 17:09:59 UTC Planetary Defense Remake <p> <table><tr><td> <a href="/bbs/?pid=31545#p"> <img src="/bbs/thumbs/pico31774.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=31545#p"> Planetary Defense Remake</a><br><br> by <a href="/bbs/?uid=12594"> AdamJ</a> <br><br><br> <a href="/bbs/?pid=31545#p"> [Click to Play]</a> </td></tr></table> </p> <p>Remake of the classic Atari 800XL game Planetary Defense by Charles Bachand and Tom Hudson with a little but notable modification of the original gameplay: The amount of shots you can fire is limited and you need to recharge by staying near the green orbital base.</p> <p>Shoot the giant red bombs out of the sky from the orbit. Don't hit your own planet. Don't let the bombs hit the planet either. Once any bomb reaches the core of the planet (coordinates 63:63 on the screen), game ends. 10 points for shooting a bomb.</p> <p>Arrow keys: Aim<br /> Z: Shoot<br /> X+UP/DN: Alter the orbital speed</p> https://www.lexaloffle.com/bbs/?tid=27960 https://www.lexaloffle.com/bbs/?tid=27960 Sun, 23 Oct 2016 11:26:43 UTC A Simple Kohonen Network <p> <table><tr><td> <a href="/bbs/?pid=30330#p"> <img src="/bbs/thumbs/pico30328.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=30330#p"> A Simple Kohonen Network</a><br><br> by <a href="/bbs/?uid=12594"> AdamJ</a> <br><br><br> <a href="/bbs/?pid=30330#p"> [Click to Play]</a> </td></tr></table> </p> <p>I always liked Kohonen Networks. They're simple and fun. This is a simple 9x9 2D-to-2D Kohonen network with constant neighborhood function, trying to adjust itself to the purple training set.</p> <p>Use LEFT/RIGHT to switch between training sets.<br /> Use Z to reset the network.</p> <p>Yay for machine learning on PICO-8!</p> https://www.lexaloffle.com/bbs/?tid=27843 https://www.lexaloffle.com/bbs/?tid=27843 Sat, 08 Oct 2016 17:36:44 UTC 2-bar Micro Rhythm Machine <p> <table><tr><td> <a href="/bbs/?pid=29666#p"> <img src="/bbs/thumbs/pico39941.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=29666#p"> 2-bar Micro Rhythm Machine [prog]</a><br><br> by <a href="/bbs/?uid=12594"> AdamJ</a> <br><br><br> <a href="/bbs/?pid=29666#p"> [Click to Play]</a> </td></tr></table> </p> <p>Here are two approaches to a micro rhythm machine: Programmable Sequencer (specify the rhythm, then play it) and a Real-time Sequencer (push the keys at the right time to record a rhythm).</p> <p>PROGRAMMABLE SEQUENCER</p> <p>Left/Right: Move cursor<br /> Up/Down: Specify which instrument will play<br /> X: Play/Stop</p> <p>Update 2017-04-25: Better feedback during editing.</p> <p>REAL-TIME SEQUENCER</p> <p>A really simple beat machine with real-time performance recording and playback on a two-bar loop. The metronome can't be switched off and the tempo can't be set. And the playback can't be paused/restarted. Also, only one drum can sound at a time. Still fun!!</p> <p>The latency between image and audio is kinda hindering its feasibility, especially when run in a browser. Sequencers as music makers in PICO-8 are perhaps better approach, e.g. <a href="https://www.lexaloffle.com/bbs/?tid=3710">4-beat by 4mat</a>. Anyway, step editing would be cool though and I'll add it later (and some fancier graphics along with that).</p> <p> <table><tr><td> <a href="/bbs/?pid=29666#p"> <img src="/bbs/thumbs/pico29665.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=29666#p"> 2-bar Micro Rhythm Machine [real-time]</a><br><br> by <a href="/bbs/?uid=12594"> AdamJ</a> <br><br><br> <a href="/bbs/?pid=29666#p"> [Click to Play]</a> </td></tr></table> </p> https://www.lexaloffle.com/bbs/?tid=27770 https://www.lexaloffle.com/bbs/?tid=27770 Thu, 29 Sep 2016 11:15:24 UTC Brainf**k Programming Language <p> <table><tr><td> <a href="/bbs/?pid=23560#p"> <img src="/bbs/thumbs/pico8_sosunuzuwe-0.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=23560#p"> sosunuzuwe</a><br><br> by <a href="/bbs/?uid=12594"> AdamJ</a> <br><br><br> <a href="/bbs/?pid=23560#p"> [Click to Play]</a> </td></tr></table> </p> <p>Update 2019-05-13: Use the &quot;Enter Menu&quot; to &quot;load&quot; some code examples.<br /> Update 2017-05-14: The sonification can be switched off :-) (or rather, you need to explicitly turn it on in the X-menu).<br /> Update 2017-05-05: Added crazily sounding sonification.<br /> Update 2017-04-24: Made the UI a bit more clear and fixed some bugs.</p> <p><strong>TL;DR:</strong></p> <p>Hold X, pres DOWN once, release X, and watch the nerdy numbers fill your screen.</p> <p><strong>MORE INFO</strong></p> <p>Hey all, I made a very simple visual IDE for writing and running code in Urban M&uuml;ller's Brainfuck programming language. <a href="https://en.wikipedia.org/wiki/Brainfuck">https://en.wikipedia.org/wiki/Brainfuck</a></p> <p>Top part of the screen is your code.<br /> Bottom left is your memory.<br /> Bottom right is your output console.</p> <p>The operators +-&lt;&gt;[]., work in a very similar way to the original with minor modifications: + and - operators work modulo 16 as each memory cell can hold a single hexadecimal digit. The memory capacity is 64 digits. &lt; and &gt; operators will wrap around. The . operator (output) works as expected. The , operator (input) is a random hex digit generator. I am thinking of changing this in the future.</p> <p>Use LEFT/RIGHT/UP/DOWN to move the cursor around your code.<br /> Use Z and UP/DOWN arrows to choose between the available operators.<br /> Use Z and LEFT to delete the operator and shift the rest to the left.<br /> Use Z and RIGHT to copy-insert the operator and shift the code to the right.<br /> Use X and UP/DOWN to restart, clear, stop, etc.<br /> Press ENTER to access some code examples.</p> https://www.lexaloffle.com/bbs/?tid=3688 https://www.lexaloffle.com/bbs/?tid=3688 Fri, 24 Jun 2016 15:12:59 UTC Hello, my name is ... <p>... Adam and I work for Warhorse Studios in Prague (designing and implementing adaptive music in the title called <a href="https://www.kingdomcomerpg.com/">Kingdom Come: Deliverance</a>) and for the Czech Technical University in Prague (a researcher and an assistant professor). I also contribute to the <a href="http://theovermare.com">Overmare Studios' RPG</a> as the music team leader. I co-founded and write and produce for a band called <a href="https://soundcloud.com/wasteland_wailers">the Wasteland Wailers</a> which started performing live this year (Berlin, Baltimore). I am interested in interactive audio and music.</p> <p>My twitter is @adam_sporka.<br /> My SoundCloud is <a href="https://soundcloud.com/adam_sporka"><a href="https://soundcloud.com/adam_sporka">https://soundcloud.com/adam_sporka</a></a>.</p> https://www.lexaloffle.com/bbs/?tid=3429 https://www.lexaloffle.com/bbs/?tid=3429 Mon, 23 May 2016 13:32:31 UTC Orthogonal Fireworks <p> <table><tr><td> <a href="/bbs/?pid=21027#p"> <img src="/bbs/thumbs/pico21230.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=21027#p"> Orthogonal Fireworks 1.2</a><br><br> by <a href="/bbs/?uid=12594"> AdamJ</a> <br><br><br> <a href="/bbs/?pid=21027#p"> [Click to Play]</a> </td></tr></table> </p> <p>A tiny silly cartridge with firework particles for the #p8jam2 :-)</p> <p><strong>Update 1.2</strong><br /> &quot;Score&quot; is shown. Not that you can anyhow alter the outcome, but it still feels kinda nice when you go over 1000. Once I scored over 1700. The thrill of it! :-)<br /> 'Z' will restart with the score shown at the end of the firework.<br /> 'X' will restart with the score visible during the process.</p> <p><strong>Update 1.1</strong><br /> Added more colors.<br /> Sometimes the particles pop diagonally.</p> <p><div><div><input type="button" value=" Show " onClick="if (this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display != '') { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = ''; this.innerText = ''; this.value = ' Hide '; } else { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = 'none'; this.innerText = ''; this.value = ' Show '; }"></div><div><div style="display: none;"><br /> <table><tr><td> <a href="/bbs/?pid=21027#p"> <img src="/bbs/thumbs/pico21030.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=21027#p"> Orthogonal Fireworks 1.1</a><br><br> by <a href="/bbs/?uid=12594"> AdamJ</a> <br><br><br> <a href="/bbs/?pid=21027#p"> [Click to Play]</a> </td></tr></table> <br /> <table><tr><td> <a href="/bbs/?pid=21027#p"> <img src="/bbs/thumbs/pico21026.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=21027#p"> Orthogonal Fireworks</a><br><br> by <a href="/bbs/?uid=12594"> AdamJ</a> <br><br><br> <a href="/bbs/?pid=21027#p"> [Click to Play]</a> </td></tr></table> <br /> </div></div></div></p> https://www.lexaloffle.com/bbs/?tid=3411 https://www.lexaloffle.com/bbs/?tid=3411 Sat, 21 May 2016 16:11:13 UTC Find the Sweet Silence! <p> <table><tr><td> <a href="/bbs/?pid=20769#p"> <img src="/bbs/thumbs/pico20767.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=20769#p"> Sweet Silence 1.0</a><br><br> by <a href="/bbs/?uid=12594"> AdamJ</a> <br><br><br> <a href="/bbs/?pid=20769#p"> [Click to Play]</a> </td></tr></table> </p> <p>There is a massive noise in your precious recording of 4'33&quot; by John Cage in Carnegie Hall. Instead of four and a half minutes of silence -- electronic disaster in your headhones! Get rid of it by applying various filters to reach silence. Each slider controls one filter, which removes one element of noise when set to correct position.</p> <ul> <li>Not all filters are needed every time.</li> <li>Sometimes only one noise element is active.</li> <li>Getting rid of one element makes others louder.</li> </ul> <p>LEFT, RIGHT: Choose the filter<br /> UP, DOWN: Move the filter slider</p> <p>You need sound output to play this minigame.<br /> Warning: Squeaky noises ensue! :-)</p> https://www.lexaloffle.com/bbs/?tid=3376 https://www.lexaloffle.com/bbs/?tid=3376 Wed, 18 May 2016 05:10:34 UTC Extended Keyboard Handler <p> <table><tr><td> <a href="/bbs/?pid=20710#p"> <img src="/bbs/thumbs/pico20709.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=20710#p"> Keyboard Handler Demo</a><br><br> by <a href="/bbs/?uid=12594"> AdamJ</a> <br><br><br> <a href="/bbs/?pid=20710#p"> [Click to Play]</a> </td></tr></table> </p> <p>Perhaps this is going to be useful for someone. This is a little keyboard handler I'm using in my code. It extends the functionality of the standard btn(k) function with detection of the onset of the key and its release. Sometimes it's useful to have those two and avoid btnp(k) repetition.</p> <div> <div style="max-width:800px; overflow:auto; margin-bottom:12px"> <table style="width:100%" cellspacing=0 cellpadding=0> <tr><td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> <td background=/gfx/code_bg0.png> <div style="font-family : courier; color: #000000; display:absolute; padding-left:10px; padding-top:4px; padding-bottom:4px; "> <pre> -- is_held(k) is true if the key k is held down -- is_pressed(k) is true if the key has just been pressed by the user -- is_released(k) is true if the key has just been released by the user keys={} function is_held(k) return band(keys[k], 1) == 1 end function is_pressed(k) return band(keys[k], 2) == 2 end function is_released(k) return band(keys[k], 4) == 4 end function upd_key(k) if keys[k] == 0 then if btn(k) then keys[k] = 3 end elseif keys[k] == 1 then if btn(k) == false then keys[k] = 4 end elseif keys[k] == 3 then if btn(k) then keys[k] = 1 else keys[k] = 4 end elseif keys[k] == 4 then if btn(k) then keys[k] = 3 else keys[k] = 0 end end end function init_keys() for a = 0,5 do keys[a] = 0 end end function upd_keys() for a = 0,5 do upd_key(a) end end </pre></div></td> <td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> </tr></table></div></div> <p>You need to call these in your _init() and _update() functions:</p> <div> <div style="max-width:800px; overflow:auto; margin-bottom:12px"> <table style="width:100%" cellspacing=0 cellpadding=0> <tr><td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> <td background=/gfx/code_bg0.png> <div style="font-family : courier; color: #000000; display:absolute; padding-left:10px; padding-top:4px; padding-bottom:4px; "> <pre> function _init() init_keys() end function _update() upd_keys() end </pre></div></td> <td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> </tr></table></div></div> https://www.lexaloffle.com/bbs/?tid=3367 https://www.lexaloffle.com/bbs/?tid=3367 Tue, 17 May 2016 14:46:07 UTC Meteoritic Roof-o-Mat <p> <table><tr><td> <a href="/bbs/?pid=20615#p"> <img src="/bbs/thumbs/pico20856.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=20615#p"> Meteoritic Roof-o-Mat 1.3</a><br><br> by <a href="/bbs/?uid=12594"> AdamJ</a> <br><br><br> <a href="/bbs/?pid=20615#p"> [Click to Play]</a> </td></tr></table> </p> <p>My first contribution to the collection of PICO-8 consoles :-)</p> <p>You're the driver of a semi-automatic roof repairing cart and you're undoing the damage caused by the meteorites. The roof of each house can only take so much damage before the entire house is destroyed.</p> <p>Controls:<br /> LEFT, RIGHT: Drive left and right.<br /> UP, DOWN: Extend or retract the arm of the vehicle, holding the the repair rig.<br /> Z: Use the repair rig on the roof. Make sure you're properly aligned with it (or get a perk which will do that for you)<br /> X: Install an auto-repair unit (ARU) if you have some.</p> <p>Scoring:<br /> +25 points to undo the damage caused by one meteorite strike.<br /> Level up after every 200 points scored. A randomly chosen house will grow in size upon leveling up. A perk shop dialog window appears.</p> <p>Perks:</p> <ul> <li>Automatic alignment of the repair rig with the roof level.</li> <li>Double speed of all movements.</li> <li>Sturdier vehicle which doesn't require you to retract the arm when moving left/right.</li> <li>Toroidal topology: drive through the edge of the screen on the other side.</li> <li>Auto-repair units (ARUs) for mounting on the roofs.</li> </ul> <p>Pro tips:</p> <ul> <li>ARUs won't last forever.</li> <li>Some perks without some other perks make things more difficult rather than easy.</li> </ul> <p>Updates:</p> <ul> <li> <p>1.3<br /> -- ARU can't be installed unless there is none on the roof or there is one with less than three hits to live</p> </li> <li>1.2<br /> -- theme music plays in-game<br /> -- limiting simultaneous meteorites above each building to three<br /> -- limiting the height of buildings to 20 floors</li> </ul> <p>Thanks for playing :) </p> https://www.lexaloffle.com/bbs/?tid=3357 https://www.lexaloffle.com/bbs/?tid=3357 Sun, 15 May 2016 14:48:12 UTC Meteoritic Roof-o-Matic <p> <table><tr><td> <a href="/bbs/?pid=20495#p"> <img src="/bbs/thumbs/pico20494.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=20495#p"> Meteoritic Roof-o-Matic 0.1</a><br><br> by <a href="/bbs/?uid=12594"> AdamJ</a> <br><br><br> <a href="/bbs/?pid=20495#p"> [Click to Play]</a> </td></tr></table> <br /> My first attempt at coding something which resembles a video game in Pico-8 :-)</p> <p>You're the driver of a semi-automatic roof repairing cart and you're undoing the damage caused by the meteorites. The roof of each house can only take so much damage before the entire house is destroyed.</p> <p>Controls:<br /> LEFT, RIGHT: Drive left and right.<br /> UP, DOWN: Extend or retract the arm of the vehicle.<br /> Z: Make the arm repair the roof. Make sure you're properly aligned with the roof.</p> <p>Scoring:<br /> +25 points to undo the damage caused by one meteorite strike.<br /> Level up after 200 points scored. A randomly chosen house will grow in size upon leveling up.</p> <p>Thanks for playing :)</p> https://www.lexaloffle.com/bbs/?tid=3336 https://www.lexaloffle.com/bbs/?tid=3336 Thu, 12 May 2016 14:23:57 UTC