Excellent, many thanks for testing. I'll fix a couple of other bugs on my list and get the 0.7d version out over the weekend.

4mat
Creator of
Recent community posts
I've added a 'debug test' upload. This uses the 0.6 code for internal midi instead of the 0.7 stuff which isn't working. If this works I'll add it into the next 0.7d upload. In the midi debug screen only the value in the Settings window should be changing as it's directly getting the data from the listen register.
Thanks for the update. It's interesting the hardware produces random values on the bus. The way 0.7 works is like this:
On the main thread it's polling the listen register and checking if it's an $ff, if not it adds the value to the midi buffer. (a ring buffer, this got added once it had to start listening for midi input instead of just one-byte system commands.)
In Internal mode, when set to listen it reads through the midi buffer looking for either $f8 for a sync or $fc to switch over to being a broadcast machine when the other machine has stopped. Stopping or restarting the song clears the midi buffer out.
0.6 stored the latest midi value in a single byte and then compared that directly. (not checking for idle) So I'll get it back to that sort of setup but still using the midi buffer. I can make it simulate what the hardware is doing while I'm testing this and have a more realistic environment.
In external mode ctrl+f7will be leaving the notes trailing at the moment, if it's happening with internal mode though that's definitely a bug. :)
I've added 0.7c , in Internal mode this makes broadcasting and listening set to Constant mode automatically.
The other bug with listening mode going to broadcast mode I couldn't replicate in the emulator except with the cartridge switched off, so I've added a 'midi debug' mode you can toggle with CTRL + D. This will show the current midi buffer (where the author credits were) and also the current midi listen value from the cartridge, this is next to the 'Midi' title text in the Settings window. If this value isn't showing $ff with real cartridges that might be where the problem is, as that's what I'm checking for the 'idle' value.
After doing some more tests. If I put the sidlab program in a folder with some sid files and set that as the IEC device folder it works.
I can load/save them and also config files. So the main part seems to work.
The directory listing looks a bit weird because I don't have support for caps letters or anything so I can look into that. Is this what you were looking for?
I'm using all Kernal routines for the drive so I assume some of it probably works. (like the load/saving) Testing locally in an emulator it seems the directory is blank if I set to an IEC device. I'll have a look if that's an easy fix, the drive stuff is probably the oldest part of the tool. :) I only have space for about 60 filenames from a directory.
Note : Playdate recently changed how envelopes work in the online editor, all the music in these projects was written BEFORE that change so notes will be staying on for too long in the demo songs. This doesn't affect the music converter though, as I don't create envelopes in the conversion process. See the youtube video for how they were supposed to sound.
Ah, yes doing a step on joystick input would be easy to add. Let me have a look into that. Usually the music driver is running off the system interrupt. I'll have to double check but I think as I don't set the timer speed it'll default to 60fps on both PAL & NTSC systems. The tempo counts X ticks and then moves to the next step. Note lengths are dependent on the oscillator's gate being switched on or off on a step. As it's feeding data into the sound chip registers directly all the settings for a channel can be independent of each other. The downside with this editor is registers can only be set to a fixed value once per step (the left side of the screen) , but their values can be altered per tick using addition/subtraction on the right side of the screen.









