{"id":2543,"date":"2025-07-09T14:02:16","date_gmt":"2025-07-09T12:02:16","guid":{"rendered":"https:\/\/www.julien-nevo.com\/arkostracker\/?page_id=2543"},"modified":"2025-09-17T00:09:52","modified_gmt":"2025-09-16T22:09:52","slug":"digidrums","status":"publish","type":"page","link":"https:\/\/www.julien-nevo.com\/arkostracker\/index.php\/digidrums\/","title":{"rendered":"Digidrum player"},"content":{"rendered":"\n<p>AT3 allows you to play digidrums, that is, usually small samples, tune-less (it is not possible to change the note). The only player that can play them is the multi-PSG variant of the AKY player (in the package alongside the AKY player).<\/p>\n\n\n\n<p>Digidrums are available for Amstrad CPC, MSX and Spectrum out of the box (it you need more platforms, contact me. It also should work on the first PSG of multi-PSG hardware). Testers are available for you to try out (<em>PlayerAkyDigidrumsTester_CPC.asm<\/em>, for example).<\/p>\n\n\n\n<p>The digidrums are triggered via the <strong>event tracks<\/strong>. They are <strong>NOT<\/strong> triggered from sample notes (there is <a href=\"https:\/\/www.julien-nevo.com\/arkostracker\/index.php\/samplepsg-player\/\" data-type=\"page\" data-id=\"2568\" target=\"_blank\" rel=\"noreferrer noopener\">another player<\/a> for that). Also, please read about the cost of samples <a href=\"https:\/\/www.julien-nevo.com\/arkostracker\/index.php\/samples\/\" data-type=\"page\" data-id=\"2575\" target=\"_blank\" rel=\"noreferrer noopener\">here<\/a> before integrating them blindly to your song :).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"the-process\">The process<\/h3>\n\n\n\n<p><strong>Make sure that the PSG has a sample replay frequency of <a href=\"https:\/\/www.julien-nevo.com\/arkostracker\/index.php\/samples#sample-player-frequency\" target=\"_blank\" rel=\"noreferrer noopener\">8000 Hz<\/a>.<\/strong> The 8-bit player actually plays at 16 kHz, but its sample table frequency is shifted accordingly.<\/p>\n\n\n\n<p>Playing digidrums is a 3-step process, provided that you have a song with digidrums triggered via the event tracks:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Export the song to AKY.<\/li>\n\n\n\n<li>Export the events themselves, exported via Events Export.<\/li>\n\n\n\n<li>Export the samples, exported via Sample Export.<\/li>\n<\/ul>\n\n\n\n<p>Do not worry, each of these steps are simple exports from AT, with just simple checks, and are explained below. You can also make the export via the command-line tools, automatising the process once and for all (more on this <a href=\"#cli-export\">below<\/a>).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"export\">Export via the software<\/h3>\n\n\n\n<p>A simple example is already provided with AT3: it is the <em>Digitest<\/em> song in <em>songs\/ArkosTracker3\/digidrums\/Digitest<\/em> (you can also use the <em>Sarkboteur<\/em> song in the ArkosTracker2 folder). It is a simple song with two digidrums (Bassdrum (02) and Snare (03)).<\/p>\n\n\n\n<p>Both samples are 8 kHz, and triggered via the event tracks:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"858\" height=\"244\" src=\"https:\/\/www.julien-nevo.com\/arkostracker\/wp-content\/uploads\/2025\/07\/digidrumsPattern.png\" alt=\"\" class=\"wp-image-2549\" srcset=\"https:\/\/www.julien-nevo.com\/arkostracker\/wp-content\/uploads\/2025\/07\/digidrumsPattern.png 858w, https:\/\/www.julien-nevo.com\/arkostracker\/wp-content\/uploads\/2025\/07\/digidrumsPattern-300x85.png 300w, https:\/\/www.julien-nevo.com\/arkostracker\/wp-content\/uploads\/2025\/07\/digidrumsPattern-768x218.png 768w, https:\/\/www.julien-nevo.com\/arkostracker\/wp-content\/uploads\/2025\/07\/digidrumsPattern-500x142.png 500w, https:\/\/www.julien-nevo.com\/arkostracker\/wp-content\/uploads\/2025\/07\/digidrumsPattern-800x228.png 800w, https:\/\/www.julien-nevo.com\/arkostracker\/wp-content\/uploads\/2025\/07\/digidrumsPattern-230x65.png 230w, https:\/\/www.julien-nevo.com\/arkostracker\/wp-content\/uploads\/2025\/07\/digidrumsPattern-350x100.png 350w, https:\/\/www.julien-nevo.com\/arkostracker\/wp-content\/uploads\/2025\/07\/digidrumsPattern-480x137.png 480w\" sizes=\"(max-width: 858px) 100vw, 858px\" \/><\/figure>\n\n\n\n<p>Following the three steps mentioned above:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Export to AKY<\/h3>\n\n\n\n<p>This is simple and there is nothing to configure, except export as source <strong>without<\/strong> encoding an address. Also tick the &#8220;generate a configuration file&#8221;, though this is optional:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"400\" height=\"500\" src=\"https:\/\/www.julien-nevo.com\/arkostracker\/wp-content\/uploads\/2025\/07\/digidrumsExportAky-1.png\" alt=\"\" class=\"wp-image-2557\" srcset=\"https:\/\/www.julien-nevo.com\/arkostracker\/wp-content\/uploads\/2025\/07\/digidrumsExportAky-1.png 400w, https:\/\/www.julien-nevo.com\/arkostracker\/wp-content\/uploads\/2025\/07\/digidrumsExportAky-1-240x300.png 240w, https:\/\/www.julien-nevo.com\/arkostracker\/wp-content\/uploads\/2025\/07\/digidrumsExportAky-1-230x288.png 230w, https:\/\/www.julien-nevo.com\/arkostracker\/wp-content\/uploads\/2025\/07\/digidrumsExportAky-1-350x438.png 350w\" sizes=\"(max-width: 400px) 100vw, 400px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Export events<\/h3>\n\n\n\n<p>Use the &#8220;export events&#8221; option, with these values:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"400\" height=\"510\" src=\"https:\/\/www.julien-nevo.com\/arkostracker\/wp-content\/uploads\/2025\/07\/digidrumsExportEvents.png\" alt=\"\" class=\"wp-image-2561\" srcset=\"https:\/\/www.julien-nevo.com\/arkostracker\/wp-content\/uploads\/2025\/07\/digidrumsExportEvents.png 400w, https:\/\/www.julien-nevo.com\/arkostracker\/wp-content\/uploads\/2025\/07\/digidrumsExportEvents-235x300.png 235w, https:\/\/www.julien-nevo.com\/arkostracker\/wp-content\/uploads\/2025\/07\/digidrumsExportEvents-230x293.png 230w, https:\/\/www.julien-nevo.com\/arkostracker\/wp-content\/uploads\/2025\/07\/digidrumsExportEvents-350x446.png 350w\" sizes=\"(max-width: 400px) 100vw, 400px\" \/><\/figure>\n\n\n\n<p>The &#8220;export only sample-related events&#8221; is important because events can also be used to synchronize events to your productions. You don&#8217;t want these in your digidrum player! By keeping only the &#8220;sample-related events&#8221;, only events which has the same number as a sample will be taken in account.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Export samples<\/h3>\n\n\n\n<p>Finally, export the samples:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"430\" height=\"614\" src=\"https:\/\/www.julien-nevo.com\/arkostracker\/wp-content\/uploads\/2025\/07\/digidrumsExportSamples.png\" alt=\"\" class=\"wp-image-2562\" srcset=\"https:\/\/www.julien-nevo.com\/arkostracker\/wp-content\/uploads\/2025\/07\/digidrumsExportSamples.png 430w, https:\/\/www.julien-nevo.com\/arkostracker\/wp-content\/uploads\/2025\/07\/digidrumsExportSamples-210x300.png 210w, https:\/\/www.julien-nevo.com\/arkostracker\/wp-content\/uploads\/2025\/07\/digidrumsExportSamples-230x328.png 230w, https:\/\/www.julien-nevo.com\/arkostracker\/wp-content\/uploads\/2025\/07\/digidrumsExportSamples-350x500.png 350w\" sizes=\"(max-width: 430px) 100vw, 430px\" \/><\/figure>\n\n\n\n<p>Besides the usual &#8220;export as&#8221; at the bottom, the top section is important. You must follow the values stated in this screenshot:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ignored unused samples: ticked, to remove the useless data (why waste memory?).<\/li>\n\n\n\n<li>Generate index table: so that the player knows all the sample addresses.<\/li>\n\n\n\n<li>Amplitude: 16, because the samples are on all 4 bits (0-15), maximizing their quality.<\/li>\n\n\n\n<li>Offset: 128, the player relies on an optimization when addressing the PSG. By setting the bit 7 to 1, we save a few cycles.<\/li>\n\n\n\n<li>Padding length: as explained in the digidrum source, extra-bytes must be added, because the player does not stop the sound accurately (checking it would be too slow), so we add a padding at the end to make sure that no &#8220;crappy&#8221; values are sent to the PSG. The value depends on how fast the player reads the bytes. 160 is OK for the digidrums player.<\/li>\n\n\n\n<li>Fade-out length: 20, to prevent &#8220;clicks&#8221; at the end of sample.<\/li>\n\n\n\n<li>Padding\/fade to min value: ticked, so that the &#8220;zero&#8221; is the same zero as the PSG, once again to prevent clicks and various volume problems.<\/li>\n\n\n\n<li>Export only used length: ticked, as an optimization.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"result\">Listening to the result<\/h3>\n\n\n\n<p>You should have 4 files (or 3 if you didn&#8217;t export the &#8220;player configuration&#8221; in the AKY export). Feed them to the digidrum tester, replacing the currently used files:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"894\" height=\"180\" src=\"https:\/\/www.julien-nevo.com\/arkostracker\/wp-content\/uploads\/2025\/07\/digidrumsSource.png\" alt=\"\" class=\"wp-image-2563\" srcset=\"https:\/\/www.julien-nevo.com\/arkostracker\/wp-content\/uploads\/2025\/07\/digidrumsSource.png 894w, https:\/\/www.julien-nevo.com\/arkostracker\/wp-content\/uploads\/2025\/07\/digidrumsSource-300x60.png 300w, https:\/\/www.julien-nevo.com\/arkostracker\/wp-content\/uploads\/2025\/07\/digidrumsSource-768x155.png 768w, https:\/\/www.julien-nevo.com\/arkostracker\/wp-content\/uploads\/2025\/07\/digidrumsSource-500x101.png 500w, https:\/\/www.julien-nevo.com\/arkostracker\/wp-content\/uploads\/2025\/07\/digidrumsSource-800x161.png 800w, https:\/\/www.julien-nevo.com\/arkostracker\/wp-content\/uploads\/2025\/07\/digidrumsSource-230x46.png 230w, https:\/\/www.julien-nevo.com\/arkostracker\/wp-content\/uploads\/2025\/07\/digidrumsSource-350x70.png 350w, https:\/\/www.julien-nevo.com\/arkostracker\/wp-content\/uploads\/2025\/07\/digidrumsSource-480x97.png 480w\" sizes=\"(max-width: 894px) 100vw, 894px\" \/><\/figure>\n\n\n\n<p>Compile it with Rasm, and enjoy the result!<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"cli-export\">Export via command-line tools<\/h3>\n\n\n\n<p>More streamlined than clicking on various buttons in AT3, the CLI tools are powerful and allow you to create a build chain, reusable at will. They are in the &#8220;tools&#8221; folder.<\/p>\n\n\n\n<p>For explanations about the parameters, check the sections above.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Export to AKY<\/h3>\n\n\n\n<p><code>SongToAky --exportPlayerConfig &lt;input song&gt; &lt;output AKY file&gt;<\/code><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Export events<\/h3>\n\n\n\n<p><code>SongToEvents --eventType sample &lt;input song&gt; &lt;output events file&gt;<\/code><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Export samples<\/h3>\n\n\n\n<p><code>SongToSamples -sma 16 -smo 128 -smfo 20 -smpl 160 -smmin -smonly &lt;input song> &lt;output samples file><\/code><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Listening to the result<\/h3>\n\n\n\n<p>Please refer to the <a href=\"#result\">section above<\/a> :).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>AT3 allows you to play digidrums, that is, usually small samples, tune-less (it is not possible to change the note). The only [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":167,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_vp_format_video_url":"","_vp_image_focal_point":[],"footnotes":""},"class_list":["post-2543","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.julien-nevo.com\/arkostracker\/index.php\/wp-json\/wp\/v2\/pages\/2543","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.julien-nevo.com\/arkostracker\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.julien-nevo.com\/arkostracker\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.julien-nevo.com\/arkostracker\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.julien-nevo.com\/arkostracker\/index.php\/wp-json\/wp\/v2\/comments?post=2543"}],"version-history":[{"count":26,"href":"https:\/\/www.julien-nevo.com\/arkostracker\/index.php\/wp-json\/wp\/v2\/pages\/2543\/revisions"}],"predecessor-version":[{"id":2809,"href":"https:\/\/www.julien-nevo.com\/arkostracker\/index.php\/wp-json\/wp\/v2\/pages\/2543\/revisions\/2809"}],"wp:attachment":[{"href":"https:\/\/www.julien-nevo.com\/arkostracker\/index.php\/wp-json\/wp\/v2\/media?parent=2543"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}