Home | Tea | Code | Links | Now

Dirtywave M8

October 28, 2024

Introduction

I’m VERY late writing this article, but I still wanted to get it out, especially before any new models or manuals are released. While it will feel slightly off and potentially missing some information, this will be a page that I come back to and add to over time, and as I learn more. I’ve spent a lot of time in 2024 getting used to the M8 and really building out my workflow with the device, and I think the things I’ve learned and tips I’ve gathered may be useful to others.

Some Background…

In high school, I found 8bitpeoples and started exploring chiptune. I eventually found and played with LSDJ and Nanoloop (and much later Deflemask).

Nanoloop and midi adapterlsdj

For years I played with these, but never very seriously, and had never created anything that I’d be willing to share with others. I started by emulating LSDJ on my PC, but eventually purchased a flash cart to run LSDJ, purchased a Nanoloop One with a link cable midi adapter, and had fun messing around with them making cool sounds and almost making music. I was into chiptune, even if I couldn’t make it myself, and eventually attended a few 8STATIC events, including one that I have (crappy) photographic evidence of, 8STATIC 0C. I saw a few different chiptune artists perform here, and typically would try to follow them on social media or their webpages/8bitpeoples releases. One of those artists was Trash80 (Timothy Lamb of Dirtywave).

Trash80 at 8STATIC 0CTrash80 at 8STATIC 0C
Two pictures of Trash80 at 8STATC 0C… taken on an LG Dare

At some point in 2020, I started noticing Twitter posts about the M8, and it started to look pretty attractive to me. While I had never created or released any music in my previous attempts to use various chiptune software/devices, it was 2020 and I had enough disposable income that I was willing to take the risk that this would be something I’d end up selling in a few years (I’m also a sucker for tiny cool electronic devices). When one of the pre-order groups for the Model:01 opened in April 2021. From 2021-2023 I used it on and off making sounds and beats, but kind of still just “playing around” and never really making any real songs or any kind of music that I’d be willing to share. Towards the end of 2023, I started forcing myself to use the M8 instead of wasting time (listening to what Red Means Recording said in his M8 introduction video). Also at the end of 2023, I started hearing about Weeklybeats on the Dirtywave discord. I made the decision in December to participate, which felt a little overly optimistic, but I wanted to challenge myself.

Starting in January of 2024 I started releasing a song every week while I participated in Weeklybeats. Some songs have been pretty… bad… but I’m still putting in the effort every week. During this time, I also purchased a second M8, the Model:02. At the time I started writing this post, the year isn’t over yet; but I’ve learned a lot about the device and some tips and tricks that aren’t included in the manual. I think it’s worth sharing what I’ve learned and things that can help others who are looking to start using the device. Coming at this from my not-super-musically-inclined and as a person who hasn’t released any music prior, I think it might be a somewhat unique perspective compared to other peoples’ reviews. Over time, I’ll continue to update this page with new things I learn, or links to official docs and references..

Model:01 vs Model:02


I still have and use my 01, but after experiencing all the points I laid out below, it makes me want to get a second 02 device. The 02 is a worthy upgrade, and if you’re on the fence about switching from the 01, I’d highly recommend it.

Model1 and Model2

Finish

Obviously, the look of the 02 is much more polished. It feels much nicer in the hand and makes the 01 feel like an early/beta model. The Model:01 has an aluminum shell over the back and sides of the unit, but the front face is a coated PCB. It looks really cool, but in comparison, the 02 looks like a more finished product. The screen size is physically larger on the 02, but even more noticeable to me is the fact that it’s a better-fitting screen, where the entirety of the screen is centered on the device. It’s also worth mentioning that the Micro SD and power button feel much more premium, and finished compared to the 01:

Power Button

The character size is larger as well, though this is also a configurable option that came with 3.1.0 firmware. Overall, the screen size, and the finish are the most obvious when you’re just looking at the device. Overall I don’t think they change my overall experience/use; but I think that the screen could be a game changer for some people.

Battery

The most notable change for me was the battery size. The 01 had a 1200mAh battery, which didn’t seem too bad until you used it away from an outlet/power for a couple of hours. I took mine to PAX East multiple times, and always carried a spare battery pack with me to charge. While annoying, it wasn’t enough to make the device unusable and it was still really cool to take the device with me. I couldn’t find the exact specs for the battery in the 02, but it feels like it lasts forever! I want to say I’ve used it 10-15 hours between charges, which is crazy long in comparison and great for traveling. It is such a quality-of-life improvement, I’ve actually considered tinkering with my 01 to see if I could get a larger battery in it (I think some folks on the Dirtywave discord may have done this).

Microphone

While it’s not the highest quality microphone, it is great to have a simple way to record samples directly from the M8. I’ve used it to put stubs of samples in, helping me put a song together before I had all the final pieces. I had been looking around for a decent tiny microphone to throw in a bag with my M8, but never decided on one. Now that I have the Model 02, it’s a moot point - I can just use the device without any additional equipment. Many people have mentioned that they can now use this in the field to get recordings, and while I’d like to say I’ve done that… I haven’t (yet). It works well and it’s a nice addition to the 02, and something that I’ve used more often than I initially expected.

USB-C

This one isn’t entirely obvious just looking at the device, but the 02 swaps out a micro-USB connection for a USB-C connection. Functionally this isn’t a major change, but it was something that actually became a bit painful for me when traveling with the 01. A few times I had forgotten to take a micro-USB since all of my other devices use USB-C. Now I can be more consistent with what I carry, and don’t need to worry about a separate cable for my M8.

Tips


TEMPLATE Song


  SONG                                           
                                                 
       1   2   3   4   5   6   7   8       T>120 
  00 >10 >FE >FE  FE  FE  FE  FE  FE             
  01  --  --  --  --  --  --  --  --       1 --- 
  02  --  --  --  --  --  --  --  --       2 --- 
  03  --  --  --  --  --  --  --  --       3 --- 
  04  --  --  --  --  --  --  --  --       4 --- 
  05  --  --  --  --  --  --  --  --       5 --- 
  06  --  --  --  --  --  --  --  --       6 --- 
  07  --  --  --  --  --  --  --  --       7 --- 
  08  --  --  --  --  --  --  --  --       8 --- 
  09  --  --  --  --  --  --  --  --             
  0A  --  --  --  --  --  --  --  --             
  0B  --  --  --  --  --  --  --  --             
  0C  --  --  --  --  --  --  --  --             
  0D  --  --  --  --  --  --  --  --             
  0E  --  --  --  --  --  --  --  --       P     
  0F  --  --  --  --  --  --  --  --       SCPIT 
  0G  --  --  --  --  --  --  --  --       V     

The screen above is what I see when I start a new track on my M8. This is because you can create a default template that will be used each time you create a new song. The feature was added in firmware 1.1.0, and can utilized by saving a song called TEMPLATE in the /System directory. The two things that are worth mentioning in my template are that I start the first track with a 10 chain, which is just made up of four empty 10 phrases. This is because I generally use 1X for the first track, 2X for the second track, and so on. In a chain, I generally keep the same pattern as well. Towards tracks 7 and 8 I get a bit more lax with that; but keeping that general pattern helps me keep all my phrases and chains sorted in my head. Starting my template by filling out the first track simply shortens the first set of notes I lay down. I could create a default four-phrase chain for each of the tracks, but since I usually don’t know how many tracks I’ll use, I don’t want to have a bunch of random unused phrases/chains in my song.

The second piece of my template that’s worth mentioning is the FE and FD chains. FE is a four phrase chain with no notes. At the start, this is essentially the same as the 10 chain/phrase; but I leave FE empty to use as a filler in my tracks. This is a common practice; though, sometimes folks do this with 00 instead of FE - I prefer FE because I sometimes will use 0X phrases/chains for noises and effects. The FD chain is very similar to the FE chain, except that the first phrase in the chain is FD, which contains three KIL00 effects. This is essentially my way of stopping whatever building effects/sounds I have, without mangling up chains/phrases to do something fancy. I’ve considered making some other default chains and phrases; but haven’t found any that would significantly speed up my workflow.

If you haven’t already set up a template, I highly recommend it! Since its a song, you can set up A LOT of different things that you find yourself using frequently (instruments, effects, EQ, tables, etc.).

Samples

The M8 only supports 1 or 2 channel PCM 8, 16, or 24-bit “.wav” files. This is super important to remember, lest you spend minutes/hours troubleshooting your samples like I did. 😵 If you’re like me, ffmpeg and ffprobe will be your friend and can help you identify or convert the samples you have:

eric@whiteforest$ ffprobe french-horn_A3_1_fortissimo_normal.wav -select_streams a:0 -hide_banner 2>&1
Input #0, wav, from 'french-horn_A3_1_fortissimo_normal.wav':
  Duration: 00:00:01.38, bitrate: 705 kb/s
  Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, 1 channels, s16, 705 kb/s

Looking at that output, you can see that particular sample is actually in the correct format (1 channel pcm_s16le). I’ve had other samples that were much higher bit, and I’ve had to convert them to get them working on my M8. The following ffmpeg command can do that for you:

eric@whiteforest$ ffmpeg -i super_high_quality.wav -c:a pcm_s16le -sample_fmt s16 -ac 2 -ar 44100 m8_compat.wav

<trimmed output for this post>

eric@whiteforest$ ffprobe m8_compat.wav -select_streams a:0 -hide_banner 2>&1
Input #0, wav, from 'm8_compat.wav':
  Metadata:
    encoder         : Lavf61.1.100
  Duration: 00:00:01.70, bitrate: 1411 kb/s
  Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, 2 channels, s16, 1411 kb/s

I won’t get into all the different sample formats, but you can read more about them in the ffmpeg docs1. If ffmpeg is a bit overkill or hard to understand, the M8 community have come up with many different sample library organization scripts and converters. One that I’ve seen referenced a few times is colonel-blimp’s sample-shrinker. I haven’t tried it myself (yet), but it seems to be a pretty useful tool and only requires Bash and SoX on your Linux/MAC computer. If you’re on a Windows computer without Bash/SoX (WSL2), then you might be able to use something like bird-inc’s m8-sample-organizer. Again, this is another tool that I haven’t used myself (yet…), but its simply a python script that can be run on a Windows/Linux/MAC computer to both organize and convert your samples so that they’ll work on a M8. This tool only requires Python and ffmpeg, so it should work on nearly any modern computer.

If you’re willing to spend the extra effort to learn ffmpeg, I highly recommend it as it will be useful elsewhere and becomes a swiss army knife for audio and video conversions!

Once the samples are loaded onto your M8, you can further downsample, slice, normalize, silence, crop, and fade in/out on the sample. I highly recommend saving multiple copies of your samples on your M8 with different edits. I’ve often gone back to my different edits, and was happy to have saved off multiple copies.

Saving, Editing, Pasting, Undo

Saving is important, and you should do it often - that goes for projects on your M8, a DAW, or anywhere that you could use your work. That being said, the M8 does have a sort of “autosave” function for your actively loaded project. I do not know the conditions in which something would/wouldn’t be saved, but I have done something as small as changing a chain in the song view and then immediately shut down the device, and my change was still there when I booted the device back up. This is super handy for me, since I often use my M8 at night when I may fall asleep while listening to a loop or modifying a song. 😅

If you want to save multiple copies of a song, that’s definitely possible; but be warned that you can’t (easily) copy chains/phrases/instruments/effects/tables between songs. For me, I often find myself making multiple revisions of a song in a single project, just skipping down a few rows. You have a total of 256 rows to work with, and if you’re like me, you won’t even get close to filling all the rows, so multiple revisions should fit in one project.

One thing that’s mentioned in the manual, but may not be as obvious is snapshotting. Snapshots can be made in the Mixer or Project views, and are created by pressing [SHIFT]+[OPTION]. A snapshot temporarily stores the entire song in memory so you can later restore it if you make changes that you regret. You can then recall and restore the snapshot whenever you want by pressing [SHIFT]+[EDIT]. The snapshot functionality essentially gives you and “undo” keypress, and some people map these to buttons on a midi controller to make the undo more seamless. There are two caveats to the snapshots that are worth keeping in mind. First, there is no “redo” so once you restore a snapshot, that’s it, you’ve lost any edits since that snapshot. Knowing this, you should be somewhat careful pressing those key combos on the Mixer and Project views! The second caveat is that snapshots are stored in volatile memory, so when you power the device off the snapshot is lost. This may be obvious, but its worth calling out - you need to do some fancy saving to keep the snapshot and your edits (save as another project name, restore your snapshot, save as the original name). This is also the easiest (and only?) way to clear your snapshots.

One last thing to mention is that your renders are saved separately from your project, and are hard to overwrite. By default triggering renders will NOT overwrite your older renders. It simply creates a numbered version of the project name (eg: COOLSONG-2). This not only prevents you from accidentally making a mistake and saving over your renders, but it also makes it easy to quickly render out stems, then re-use them as samples in the same song. You can easily try out multiple things and play with your ideas using rendered stems, and each version will be left around. This does mean you might be left with a lot of stems when you’re done with a project, so you may want to revisit and clean up occasionally!

Tables

Many people are afraid of tables. They’re a weird concept outside of trackers, but once you get used to them, they can help you build really interesting effects and automation for your instruments. I’m no tracker or table pro, but I’ve forced myself to experiment with them, and have been able to come up with some cool and interesting sounds by using them. My main use of tables when I got my M8 was to add a kind of sidechain, pumping effect by controlling the volume of one instrument from another. This can now be done by using the TRIG envelope, but, it was a good exercise to get used to using tables.

One thing that’s not entirely obvious when you first look at tables is that you really can get different effects by slowing down the table TIC speed. Using super slow speeds can add a completely different effects/abilities than super fast speeds - play around with it! Fast speeds are useful for arp-style effects, but tables make it possible to build a growing and changing effect that isn’t tied to a phrase.

It’s also worth mentioning that you can put a TIC command in the last row of an FX column to control the speed of that particular effect. Along with general speeds, you can set TICFF to get 200hz speed on that FX column. Normally, the TIC speed is still in sync with the tempo of the track, but 200hz mode runs at 200hz per tick. I haven’t successfully used this in any tracks myself, but it is a potentially useful trick.


  TABLE 00                                        
     N   V   FX1    FX2    FX3              T>120 
  0 >00  --  ---00  ---00  ---00                  
  1  00  --  ---00  ---00  ---00            1 --- 
  2  00  --  ---00  ---00  ---00            2 --- 
  3  00  --  ---00  ---00  ---00            3 --- 
  4  00  --  ---00  ---00  ---00            4 --- 
  5  00  --  ---00  ---00  ---00            5 --- 
  6  00  --  ---00  ---00  ---00            6 --- 
  7  00  --  ---00  ---00  ---00            7 --- 
  8  00  --  ---00  ---00  ---00            8 --- 
  9  00  --  ---00  ---00  ---00                  
  A  00  --  ---00  ---00  ---00                  
  B  00  --  ---00  ---00  ---00                  
  C  00  --  ---00  ---00  ---00                  
  D  00  --  ---00  ---00  ---00                M 
  E  00  --  ---00  ---00  ---00            SCPIT 
  F  00  --  TICFF  ---00  ---00                V 

Like I said, I’m not a pro with tables, and I only have barely scratched the surface. I’d highly recommend watching Red Means Recording’s M8 tips video, or Stephen McLeod’s intro to tables video. There are tons of additional videos on YouTube that dive into tables, and are highly recommended so that you can get some bearings before diving in yourself!

Instruments

I mentioned samples earlier in this article, but there are also tons of great built in instruments included in the M8, along with some awesome packs created by Avrilcadabra, Nullsleep, Trash80 (the creator of the M8!), mikey303, and tobokegao. Its definitely worth playing around with the instruments, effects, and envelopes to figure out new and interesting sounds. One of the coolest instruments in the macrosynth, which is based on Mutable Instruments Braids. There are some strange and out there sounds. One that I’ve come back to multiple times this year is the plucked synth, which attempts to synthesize a plucked string. When you drop the note as low as it can go, you get a super interesting rattle that works really well as an effect in tracks. I’ve used it to emulate voice, animal/alien noises, and drums. The bowed and blown synths also can acheive somewhat similar sounds; but don’t be afraid to drop into ranges you typically wouldn’t use. Combining the super low notes with envelopes and effects will make sounds you may not initially expect.

Other Notes

One last section for a few final notes I couldn’t fit elsewhere!

When building your tracks, you might notice some symbols next to the name of a chain or phrase. If you see a “*” next to the name, that simply means the chain is used again elsewhere in the current phrase. If you see “^” next to the name, that means the chain is used elsewhere in the song. These aren’t obvious, and I couldn’t find them documented anywhere; but they’re super useful when thinking about and trying to build your song.

Closing


There are tons of additional references, tools, and docs online. A few that I think are worth mentioning specifically:

The M8 is a great device, and I’ve honestly only barely scratched the surface of what it can do. There is a huge comunity on Discord with tons of folks who will help and provide even more tools and resources. As you start looking at the device, all of the tools, tricks, functions, and comments in the community could become overwhelming and distracting (even my post could be a distraction). It’s important to remember this is an instrument - have fun and use it! Don’t get too distracted by all the cool tools, scripts, hardware, and other cool things in the M8 ecosystem. They’re great resources, and great tips, but you also need to use the device!

If you’re on the fence about getting an M8, I’d definitely recommend it! If you need a taste, or are waiting for a restock, try going headless! And if you already have an M8 and want to support it further, support Tim/Trash80 on Patreon: https://www.patreon.com/trash80/


  1. http://trac.ffmpeg.org/wiki/audio%20types - ffmpeg has a TON of documentation online and built into the tool(s). At the time of this writing this page was a useful wiki reference that could be used to quickly understand audio types and sample formats.↩︎