Please report any bugs here or if you have an account on Github
A modular synth playground for Playdate · By
Hi. Have tried to sideload through the playdate account site but “Modular play”would show up even after refreshing a few times.
I then booted the playdate into disk mode and moved the .pdx over manually to the games folder. But I then got the message below, that I needed a system update. I have the latest as you see in the second image. Any ideas?
Keep checking for updates over the next day or two, 2.1.0 is rolling out but takes a while to propagate to all devices: https://devforum.play.date/t/playdate-os-sdk-2-1-0-is-rolling-out/14139
thank you, yes, that’s fixed for the next release: https://github.com/orllewin/modular_play_public/milestone/1?closed=1
Thanks for this super fun game/synth. I have played with it for a couple of hours on the train and i had some bugs/problems until now. When i saved the patch and recall it (load) it is not complete. It is sayng 'discard changes' (cancel or confirm are the choices) i was sure i saved everything... Another bug is that if i am playing for a while the playdate crashes. Maybe to much at the same time running in the game? The patch is not that big... Another bug is that the cables sometimes not connect, but after removing the synth/sequencer and put it in the patch again it will connect as intended. Sometimes there are some 'loose cables' still visable... And another minor thing is that the clock is doing weird things when you want to change something in a synth, like a preset. Or sometimes out of the blue doing a swing a couple of ticks. I dont mind that by the way....
I have a future request as well. A reverb. I tried somethinhg with the delay, but the delay will quickly escalate in terrible feedbacking...
I think i will come up with more, but for now these were the major things i noticed. Other then that, I know this is some kind of first version. I am loving it by the way. So much fun!
You’ve found some of the biggest bugs, they are in two areas:
If you can isolate specifically which modules cause any issues I can fix them immediately, otherwise I just have to make and save patches until I break something, over and over (which I do! but I have my favourite modules and methods so might not see everything you do).
The good news as soon as these types of bugs are isloated they’re pretty easy to fix, it’s just a case of finding which module is at fault
I got a screenshot of two loose cables. Patch is still working though. It is a mess for shure. The cable from the delay output and Microsynth are loose and when i remove the synth it is still there. The sequencer has been reset to all C notes when i load my patch.
The second patch (i posted on Instagram yesterday) has reset all values of the sequencer as well after i saved it and loaded it again. All to D. It is the first note of the sequence i guess... Too bad the notes arent saved with the sequencer, or is it a bug. And there is even a some things missing. I am really sure i saved everything. But you said allready there were some bugs in it. The things that are missing are a minisequencer and a wavetable synth.
And another minor thing is that the clock is doing weird things when you want to change something in a synth, like a preset. Or sometimes out of the blue doing a swing a couple of ticks. I dont mind that by the way….
We might have to live with this - it’s why I removed the BPM label that was in earlier versions of the clock module, the Playdate is single threaded and the processor is tiny - it’s working within these constraints that make it so much fun though. Originally I’d hoped to include a sync for the Pocket Operators but with the clock signal not being reliable it was too much effort.
Found that sound continues to be output even if you delete the output module.. Also is there a way to break connections with out deleting modules? I've had a number of crashes in the short time I have spent with it but it is hard to tell what caused it. It would also be nice to see the FX pedal type units knobs labeled as they often just sound glitchy and its hard to tell what is happening. Some other stuff in here is labeled kind of oddly coming from euro rack experience. Would be nice if the sequencer had a reset input so you could run 7 steps or whatever using a second clock to reset the sequencer to the first step. I could probably go on and on but this spot is for bug reports so I will stop.
The sound channel should be removed when you delete a sound source, I’ve seen simlar issues though, specific modules will be the cause so I’ll need to track down which.
re. clock sync/deta - yes, that’s annoying me too, I’ll add it as an enhancement. The clock should send a delta along with the bang event so different sequencers can be in sync.
This absolutely isn’t designed to be a eurorack simulator though, I knew people coming from that world would find some things odd!
I'm having so much fun with this little toy, thank you for making it! Trying to remove an OR-808 module, I get a brief error message that the module does not have evaporate(), and the module is not removed. After that, I tried to create a new patch and nothing happened, and tried to delete the existing patch (which was a clock -> OR-808 -> basic output), which caused the Playdate to crash/restart. At some point in that process I also got stuck in a zoomed-in state, but I'm not sure what I pressed or when before that happened.
Thanks for all the early feedback everyone, here and elsewhere. You can see everything that’s open: https://github.com/orllewin/modular_play_public/issues
and all the fixed issues for the next Alpha in a day or two: https://github.com/orllewin/modular_play_public/issues?q=is%3Aissue+is%3Aclosed+milestone%3A%220.0.10+Alpha%22
The most useful reports involve specific actions and modules - if you get a crash and can take a photo of it with your phone that would be fantastic.
Thanks again, already lots of positive progress.
I have made a patch that I saved and seems to be corrupt and crashes when loading.
Running version:modular_play_0_0_12_2_alpha.pdx.zip
In the patch was a single clock running to chains.
Clock >
> Micro Sequencer > Wavetable > basic output
> OR-808 > basic output
Not sure if this helps but captured this after crashing.
This is a strange one, when you save and reload a patch it adds the modules in the order you added them, then adds the cables in the order you added them… so there’s something strange going on here - could you email the patch to oppen@fastmail.com and I’ll take a look. It’s saying there’s no audio channel available for some synth or effect, but if they’re re-added in order there should be.
I think I’ve fixed this, the issue was in the Micro Sequencer. Following your steps to build the patch then save threw an error - Micro Sequencer is an older module and wasn’t following the expected naming convention internally. So I think the error happend on save causing a bad save file. Fix will be in the next Alpha in a day or two.
First off... You are doing a great job Orllewin!!! Thank you! I was patching yesterday and i got a little problem. I couldnt connect cables (clock to ORL Drummachine). When i started the patch it was no problem. But after fiddling with some switches and clock dividers and removed the clock and put it back in the patch i couldnt connect the cable. anymore When i removed the clock and put it back again, still no connecting. When i removed the Drummachine and put it back, i could connect the cable as normal. And I have still problems with saved files. I cant open them correctly (sometimes half is saved, but i am sure that i saved everything) and there are files that crash completely.
Okay, this is the kind of bug I expect to see quite a lot of - adding and removing modules is tricky, when you delete a module it’s supposed to inform all connected modules that it’s being removed - so they can clean-up and unplug cables and reset their state… if a module doesn’t do that correctly when you come to reconnect it it thinks the sockets are still populated even though there’s no visible cable. I’ll havde a look at a patch with clocks, switches and dividers and try and replicate.
It’s an easy fix once I’ve found where it’s happening! If it does happen it’s pretty unrecoverable, you can try deleting the module with the issue and then add a fresh version of it.
Side loaded via the Playdate website, on moving down and clicking the tutorial button at the very start it crashed and reset the Playdate, loaded it back up, placed the Pong Unit and Game of Life (very cool btw) and that seemed fine, though I'd check out the tutorial and got to the same button and tried again, got another crash and this message if it helps –
I updated to the latest version shortly before side loading.
Ok, fixed, download 0.0.13-Alpha - there’s also two new modules, one in Clock and one in Sequencers, don’t tell anyone: https://orllewin.itch.io/modularplay
Hi. Got a crash/restart with 0.0.13-Alpha. If I remember rightly I had a clock, generative, wave table, delay, and a channel pro.
I had removed a wrongly added output and (but the patch kept playing) I then added the channel pro and Linked to the delay. It then crashed as I cranked to in crease the volume on the channel.
I'm getting several modules refusing to accept a clock signal, and complaining that the input requires a clock signal. I'll try and document a solid repro but the micro synth and pedal modules were two that were affected.
Also the midi keyboard module when operated with the A button never stopped playing.
thank you, fixed one already, the rest are here: https://kinopio.club/orllewin-modular-play-hobVkZawudc7bwByphsLx?present=true - trying Kinopio as an alternative to boring tickets in Github.
My app (version 0.0.17 Alpha) more often than not ends up crashing and causing the playdate to automatically shut down and restart. Seems to happen most often when I'm using (connecting to or manipulating pots) on the 4-channel output modules, but I've had it happen otherwise. I've tried deleting the app and doing a fresh download after the update to 2.2, hoping it was related to that issue mentioned in your recent post when 2.2. came out. The problem persists, unfortunately. Here are the latest few entries on my device's error log, in case this helps in diagnosing the problem(s):
2024/02/05 18:31:12
/Games/User/user.100948.orllewin.playdate.modularplayer.pdx
CoracleViews/rotary_encoder.lua:96: bad argument #1 to 'setImage' (playdate.graphics.image expected, got no value)
stack traceback:
[C]: in method 'setImage'
CoracleViews/rotary_encoder.lua:96: in method 'setValue'
Modules/Synths/OrlSynth/synth_mod.lua:336: in method 'turn'
Modules/module_manager.lua:233: in method 'handleCrankTurn'
Interface/modular_screen.lua:320: in function <Interface/modular_screen.lua:301>
2024/02/05 18:32:06
/Games/User/user.100948.orllewin.playdate.modularplayer.pdx
CoracleViews/rotary_encoder.lua:96: bad argument #1 to 'setImage' (playdate.graphics.image expected, got no value)
stack traceback:
[C]: in method 'setImage'
CoracleViews/rotary_encoder.lua:96: in method 'setValue'
Modules/Synths/WavetableSynth2D/wavetable_synth2d_mod.lua:208: in method 'turn'
Modules/module_manager.lua:233: in method 'handleCrankTurn'
Interface/modular_screen.lua:320: in function <Interface/modular_screen.lua:301>
2024/02/05 18:35:07
/Games/User/user.100948.orllewin.playdate.modularplay.pdx
CoracleViews/rotary_encoder.lua:96: bad argument #1 to 'setImage' (playdate.graphics.image expected, got no value)
stack traceback:
[C]: in method 'setImage'
CoracleViews/rotary_encoder.lua:96: in method 'setValue'
Modules/Synths/WavetableSynth/wavetable_synth_mod.lua:149: in method 'redrawBackground'
Modules/Synths/WavetableSynth/wavetable_synth_mod.lua:260: in method 'invalidate'
Modules/module_manager.lua:215: in method 'invalidate'
Modules/module_manager.lua:178: in method 'move'
Interface/modular_screen.lua:557: in method 'move'
Interface/modular_screen.lua:616: in method 'draw'
main.lua:227: in function <main.lua:220>
2024/02/08 11:10:13
/Games/User/user.100948.orllewin.playdate.modularplayer.pdx
Modules/Mixers/Mixer4Sliders/mix4sliders_component.lua:35: attempt to index a nil value
stack traceback:
Modules/Mixers/Mixer4Sliders/mix4sliders_component.lua:35: in method 'setPan'
Modules/Mixers/Mixer4Sliders/mix4sliders_mod.lua:268: in method 'turn'
Modules/module_manager.lua:233: in method 'handleCrankTurn'
Interface/modular_screen.lua:320: in function <Interface/modular_screen.lua:301>
Thanks for the detailed report, that makes fixing bugs so much easier. I don’t get the constant crashes you report though, the buggiest area of the code is removing modules. That can create a bad state that makes everything subsequently misbehave. I fix the issues when I find them so it should get more and more stable. I’ll look through the crash reports you’ve posted and see what I can do.
Of course, I really appreciate the work you're doing, and look forward to sinking in when it doesn't crash on me. I don't know how to access the crash report the other user posted, but can send them if it's simple enough to tell me how.
Didn't mean to sound rushy, just saw the last post wasn't replied to. Gld to hear you're workign on the project still, I think it's amazing
Another bug to report, causing a crash. Repeatable by following these steps:
Add then connect these modules: Clock, generative std sequencer, orl synth, 4-channel basic output. Then I connect another clock output to the top right input of the synth, and while turning the crank on top of the (hidden until turned) pot on the top right of the synth (just to the left of the input I just connected), it crashes. I’ll upload the detailed bug report and keep posting additional glitches. Because literally every time I try to use this app, I get a crash. And I’m not removing modules ever.
next one: follow these steps to get crash and play date restart:
Add clock, generative rnd., wavetable synth, 4-channel output. Connect generative rnd out to wave table in, synth out to mixer in; then clock out to the top right input of the synth, then try to turn one of the pots w the crank on the wave table synth, and it crashes.
Hey all, new release coming in the next week or so with lots of fixes, but if you have a recurring problem please join the new Discord Server and I’ll try and fix them 1:1 instead of going back and forth here or on email: https://discord.gg/7yVR2cWV