-
frenziedcurtain
I never was able to manually resolve this myself, but I did eventually find that someone had kindly put together an ARM6 version of abl_link~ as part of the software for the excellent terminal tedium. You can find it here: https://github.com/mxmxmx/terminal_tedium/blob/master/software/externals/abl_link/abl_link~.pd_linux
I threw it into the bin folder (thanks for the tip whale-av!) for Pd (v0.52 IIRC) on my pi zero w, and it is working a bit. I sometimes need to wiggle the networks a bit to get all the peers to see each other, but it's running, which is a start.
-
frenziedcurtain
Thanks again & yes turned out the laptop was grinding along on 41-something. Once I get this sequencing wish done I want to work on some more fundamentals. Thanks so much for everything.
-
frenziedcurtain
Hi again. Seq2.pd is working beautifully! I think you are on to the root of my problem with the version I'm using though, I have a new installation of Raspian on a RPi4 & sudo apt-get upgrade only takes me up to Pure Data 0.51.4 (looking thorough the change notes I see that "new methods were added to list store" from 52 onwards, which I suspect is where our trouble is). I was stumped because I'd assumed 'get me the newest version' would actually do just that, but it transpires that in RPi world this is apparently not the case
Seq1 works fine (with the previously mentioned stack overflow) on my Mac which has 0.53.2. I was also mucking about with Seq1 on my work windows laptop in odd moments (it didn't work) and I suspect it too has a crusty old version of pd on it, though I expect I can upgrade that easily enough.
I'm not sure where I'd get later versions of Pd suitable for the raspberry Pi 4. I do see some later official Linux distributions at https://puredata.info/downloads/pure-data/releases but I'm unsure how to install them or whether they are suitable. But that's a problem for another day.
I'm going to soldier on with the array solution you gifted me with seq2 and see how far it takes me. I do want to update my Pi at some point because I'm trying to create a mobile sequencer, so it'll be worth sorting out. Thank you so much for your patience and support, I truly appreciate it!
-
frenziedcurtain
@oid Hmm. I just downloaded seq1.pd again so I can be sure I haven't edited anything. It looks my screenshot below, which is broadly identical to your image except for the fix to the float inlet you described. I'm running pd-vanilla.
FWIW I have checked and unchecked all the steps & am still getting the "Bad arguments for message 'get' to object 'list store'" message each time metro lights up.
Am I meant to edit anything to see it working? (All I'm currently doing is toggling metro while in run mode and hoping to see the bangs light up at the end.)
I'm so sorry if I'm being a dope - thank you for your patience!
screenSeq01.png -
frenziedcurtain
@seb-harmonik.ar I didn't really mention this at the time, but I'm trying to do something vaguely similar to create a snake sequencer and have presets for 'snake patterns' that have the sequence wander about over a 4x4 grid of steps. I'm using one sequence to count off 1 through 16 and another to tell 1 through 16 which location to actually fire. (so e.g. sequence step 5 might actually bang location 9). I'm currently beginning to experiment with arrays to store these patterns. thanks for the tip, I hope I can understand enough to make use of it.
-
frenziedcurtain
@oid Thanks so much for this gold mine. I'm trying to figure it out just now. However, in the example as per the picture (with the zero on the right hand side of the list store going to the right hand inlet of the float, as described) I still get " Bad arguments for message 'get' to object 'list store' " with every bang from metro. I'll keep tinkering with it and read up on lists to see if I can figure out what I'm missing.
-
frenziedcurtain
Ah great, thank you folks, lots to chew on there - I can juust about understand it, which I think is the sweet spot for me kludging my way through and possibly learning something in the process! Thanks a million everyone.
-
frenziedcurtain
Help for a noob?
I'm building a sequencer and would like to be able to skip steps entirely (as opposed to playing a rest) if I select 'skip' for that step. (so the sequence would for example read 0 1 2 3 {skip 4 entirely without a pause} 5 etc.
At first I presumed I would need to change the numbers in my basic [select 0 1 2 3 4 ...] object that we are counting through to disinclude the step I want to skip. (Which is also not something I know how to do anyway) I think this is incorrect because I am using metro and modulo to count through the steps, and step 5 (e.g.) will not come up until metro & modulo get around to it, so it would be the same effect as playing step 4 as a rest.I've been roaming around forums randomly picking up oddly shaped bits of advice from previous queries and tutorials hoping they are the tool I need but I need a learning strategy for this particular thing, I'm getting a bit discouraged. Hope you can offer a bit of help or a point in the right direction. Thank you,
-
frenziedcurtain
Hi Folks,
I thought I’d share this patch in the hopes that someone might be able to help improve upon it. I am by no means even semi competent with PD and jumped into this task without actually bothering to learn the basics of PD or RPi, but nevertheless here we are: maybe you can share a better implementation.
Mods/experienced folks, if I am sharing irrelevant/wrong/confusing info, mea culpa and please correct me.
I wanted to make a patch for PD in Raspberry Pi that would do 3 things:
- Get the abl_link~ temp data over wifi
- Create a midi clock output using a 5-pin midi adapter (I have one of the cheapo usb-to-midi cable things here)
-simultaneously create an audio pulse ‘clock’ output such as those used by volcas, Teenage Engineering Pocket operators, and the like (I am not sure if such an audio signal over a 3.5mm jack would be hot enough to be considered a CV pulse too, maybe you can help clear that up?)
As I say, after much struggles I have globbed something together that sort of does this.
A couple of things for newcomers like myself:
The abl_link~ object in the patch isn’t initially part of the standard pure data install as I write. I was able to use deken (ie the code that powers the ‘help/find externals’ bit of PD) to look for abl_link~. Search for it. At the time of writing there is a version for Arm7 devices like the Raspberry Pi 3 which was put together by the illustrious mzero with code from antlr. Go ahead and install the abl_link~ object. (Possibly you may have to uncheck the ‘hide foreign architectures’ box to get the arm7 version to show up. This is usually a safeguard to stop users from trying to install versions of externals that won’t work on their systems. So long as you see ‘arm7’ in the description it should hopefully be the one you want) PD will ask where you want to store the external, and I would just leave it at the default unless you have a special reason to do otherwise.
To get the patch to hook up to your preferred audio and midi outputs by default you may have to take certain steps. In my version of it I have deemed the built in audio and my cheapo USB midi output to be good enough for this task.
[As part of my troubleshooting process I ended up installing amidiauto which is linked to here: https://community.blokas.io/t/script-for-launching-pd-patch-with-midi-without-aconnect/1010/2
I undertook several installations in support of amidiauto which may be helping my system to see and link up my USB midi and PD, but nothing worked until I took the step in the following paragraph about startup flags in PD. (It may also be that I did not need to put in amidiauto at all. Maybe I’ll try that on another card to see if it simplifies the process. I’m saying you might want to try it without amidiauto first to see).]Midi: - (ALSA is the onboard audio and midi solution that is part of Raspbian). To have PD use ALSA midi at the start I made the following setting in the preferences/startup dialog - within that window there is a section (initially blank) for startup flags. Here you can set instructions for PD to take note of when it starts up. I put in -alsamidi to tell it that alsamidi will be my preferred midi output. (I also took the step of going to file/preferences/midi settings, then ‘apply’ and ‘ok’ to confirm the Alsa midi ports that showed up. Then I went back to file/preferences/save all preferences. This seems to have (fingers crossed) saved the connection to my USB midi output.
Audio: I used the terminal and sudo raspi-config to set my audio out to the internal sound card (advanced options/audio/3.5mm jack). Since I had a fairly unused installation of PD I’d never asked it to do anything but work with the system defaults so getting audio out was fairly simple.
[nb I initially stuck this patch together on my Mac where everything worked pretty trouble free in terms of audio and midi selection]
About the patch. Obviously it is sort of horrible but there it is. It is a combination of stuff I cribbed from the demo example of abl_link~ in the example, and two example patches created by users NoDSP and jpg in this forum post https://forum.pdpatchrepo.info/topic/9545/generate-midi-clock-messages-from-pd/2
As well as some basic synthesis to make the bip bip noises I learned from LWMs youtube channel
https://www.youtube.com/channel/UCw5MbnaoDDuRPFsqaQpU9igAny and all errors and bad practice are mine alone.
The patch has some comments in it that doubtless expose my own lack of understanding more than anything. Undoubtedly many users can do a better job than I can.Some observations on limitations/screwups of the patch:
-
If you disconnect from the stream for a bit, it will attempt to catch up. There will be a massive flurry of notes and/or audio bips as it plays all the intervening notes.
-
It doesn’t seem to be too fussy about where in the bar it is getting started (It will be "on" the beat but sometimes the ‘1’will be the ‘2’ etc. This is okay if I’m using internal sequencers from scratch (in the volca, say) but not if there is an existing pattern that I am trying to have come in 'on the 1'.
-
My solution to more detailed subdivision of bars was to make a big old list of numbers up to 32 so that abl_link~ can count up to more than 4. There’s probably a better solution for this. If you find that you need even more subdivisions because you are making some sort of inhumanly manic speed gabba, add even yet more numbers and connections.
I haven’t tested this much. And since it’s taken me the better part of 18 months to do this at all, I’m really not your guy to make it work any better. I’m posting here so that wiser souls can do a better job and maybe share what I think has the potential to be a useful midi sync tool.
I plan to revisit https://community.blokas.io/t/script-for-launching-pd-patch-with-midi-without-aconnect/1010/3
for some pointers on setting this up to launch the patch at startup to give me a small, portable midi Link sync device for 5-pin and audio-pulse clocked devices.This is my first ever bit of quasi productive input to any technical community (mostly I just hang around asking dumb questions… So be kind and please use your giant brains to make it better) I look forward to spending some time learning the basics now. link-sync.pd
-
frenziedcurtain
@frenziedcurtain I eventually gave up on the pi zero for this. I got a regular Raspberry Pi Zero and used the ARM7 release put together by mzero and antlrs. Thank you for the help!