Ableton Push MK1/MK2 as Pure Data Controller?
Right now, I am working on a larger patch that is essentially a modification of the Automatism modular synth. At the moment, I am using a Novation Launchpad to control the sequencer, etc., but I would like to use an encoder and have a screen to display graphics, values, and other information. Ideally, I would like to control this display information directly from Pure Data.
I was considering getting an old Push controller from Ableton. I found some information about controlling the display in Max/MSP but haven’t come across anything related to Pure Data.
Short question: Has anyone already tried this and would be willing to share some knowledge?
Streaming youtube livestream into GEM
I recenlty used OBS to capture different IP camera stream and get the image in pix_video using a virtual camera as output in OBS.
-
First issue is that pix_video cannot get thevirtual camera texture under Windows or MacOS (https://github.com/umlaeute/Gem/issues/433)
-
I changed to Ubuntu linux and a second issue was that RTSP stream doesn't work anymore under Ubuntu, so I installed a
special version of VLC to allows RTSP and finally made a VLC source in OBS...
Using TouchOSC to draw into a 16 step array? communication back'n'forth? Show Array content in TouchOSC?
@ddw_music said:
It's much more common to transmit OSC messages over a LAN using UDP.
From my perspective here: I've been using OSC successfully for years, never ran into any of the headaches you're reporting. I made some suggestions of what has worked for me. Then you do something different from what was suggested ("so i decided to ditch UDP and just use TCP" -- why?) ... and then it doesn't work. So I feel at this point like my ability to help is somewhat limited.
hjh
so the reason why i moved from udp was that i couldn't get a connection going on between TouchOSC on iPad, TouchOSC on macOS, TouchOSC Bridge app and PureData.
I could try again, but it looked like UDP required me to know the IP address of both the laptop and the iPad, and that really threw me (i don't know how to figure out what the IP address of the iPad is, or how to make sure it's always the same, same for macOS).
btw after unsuccessfully getting anything going with TCP, i ended up just creating a regular array on TouchOSC and inputting it into PureData, which i got working. the fancier PD + TouchOSC compilation zip provided by @whale-av still sounds very very good and nice, if only i could comprehend what else i need to add to it for it to receive the OSC / UDP.
unfortunately my "also in Finland" go-to-guy on TouchOSC wasn't able to help me with the UDP or TCP connection either. i'm trying to all of this tethered via USB-cable, which normally works for at least MIDI and TouchOSC "on -iPad-editing" via Server inside TouchOSC.
just couldn't figure out UDP/TCP.
i apologize for switching contexts and jumping around from udp to tcp, i have maybe an hour every 2-3 days to try and get something going, and also feel a bit like there's no "TouchOSC with PureData for idiots" blog-post for iPad / macOS going on, or at least i haven't been able to find it.
I've resisted OSC since 2009 pretty much but now that I can control most of my script with TouchOSC on the iPad, it's quite mesmerizing. just getting this stepsequencer going (and back'n'forth communication between PureData and TouchOSC on iPad so i press a button on PureData and TouchOSC also lights up, type thing) would be pretty amazing but i'm probably going about it the wrong way all the time.
I'll try to stick with UDP, since it was mentioned that oscparse only works with that.
Disappearing patches
Your test patch worked, but when I tried mine, I got this in the console:
saved to: C:/Users/nypon/Desktop/Music/PureData/launchpad/test_relocate.pd
test_relocate.pd: no such object
Array Save to textfile - load from textfile?
Hi, I'm working on an array stepsequencer, 16 steps. all it does is output some pitches which i use to play other arrays with. that's neat.
but sometimes i get a really nice stepsequencer going by accident. what kind of a message should i send, to get the array contents saved to a textfile, so i could later reload it?
Just curious...does anyone have handy...the pd recursive code that "walks the tree" of a patch's files?
I just tried the above, by downloading from Launchpad and using the (5) Kinetic builds, and got:
/usr/bin/puredata: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by /usr/bin/puredata)
/usr/bin/puredata: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /usr/bin/puredata)
/usr/bin/puredata: /lib/x86_64-linux-gnu/libmvec.so.1: version `GLIBC_2.35' not found (required by /usr/bin/puredata)```
So am pretty sure. to do that upgrade (from Xenial), would require upgrading my OS (puppy linux). As I mentioned 'Having had problems in the past, when I upgrade'.
Thank you, @oid, for suggesting it. But prob going to need to just hold out until I switch computers. Will see what I can find out, about getting those paths, prob via bash.
Passing a list as parameter to csound6~
@oid Thanks for your answer.
I followed your advice and spent quite some time learning a bit how Csound works - a bit overwhelming indeed.
Then I realized that I'd love to be able to play this synth when connecting my MIDI controller to my smartphone, so I tried to run a slightly modified version of the CSD file on Csound for Android, but I didn't manage to get anything but crashes. Then I tried with csound6~ as a Pd external on PdDroidParty and MobMuPlat, but externals of course don't work on these. Then I considered running Linux on old smartphones and tablets, but I couldn't properly access the soundcard without root access. Then I fell back and looked for handpan soundfonts, but I could find only 1 or 2 (for free) in a single scale.
Then I finally came back to Pure Data and realized that my best chance was to convert this Csound patch into Pd vanilla and run it on MobMuPlat.
Which I've done! yay!
I've had quite a few challenges and the sound isn't perfect yet, but it works, and I'm also adjusting a few things to my preferences. I'm also including the r_cycle functionalities to tune the Launchpad and it's a lot of fun! I might be able to spend my Sunday sitting in the grass and playing handpan on my MIDI controller connected to my smartphone
I will push it to Github eventually, right now it's still a little too messy for sharing, but if anyone passing by is interested, just let me know!
Cheers!
Passing a list as parameter to csound6~
Hi everyone,
I've been playing a bit with a Csound handpan synth from here and I've used the r_cycle external to make a handpan with my Launchpad (the patch is not very complicated so I didn't try to make it neat, sorry!).
The csound patch maps specific MIDI notes to the synth according to a scale, and the Pd patch lights up the pads so each colored group of pads sends the corresponding MIDI note to CSound:
I'm super happy with it, but the next step is to make it configurable: the csound patch contains many different scales defined with giNotes = ftgen(0, 0, -<number of notes>, -2, <list of note numbers> )
:
; B Kurd
;giNotes = ftgen(0, 0, -10, -2, 47, 54, 55, 57, 59, 61, 62, 64, 66, 69)
; B Golden Arcadia
giNotes = ftgen(0, 0, -9, -2, 47, 51, 54, 58, 59, 61, 65, 66, 68)
So instead of editing the CSD file and changing the color mapping of the launchpad when I want to change scale, I would like to send a list/array/table of note numbers from Pd to [csound6~] via a message (and adjust the MIDI notes sent by the launchpad at the same time).
I know basically nothing about Csound, so I've read up and found examples using chnget
/chnset
or invalue
which seem relatively straightforward to change the value of a single int variable. However I don't really have any idea on how to pass the list/array of scale notes using chnset or invalue, or if there is a better way to do it.
Maybe someone around here has an idea? Thanks for reading so far in any case
Launchpad4Oktatrack
hello everyone
since you cannot change outgoing midi messages in those devices,here is my patch to turn Novation Launchad mini mk1&mk2 into Octatrack midi controller,plus i added few small but nice features...
Repo
https://github.com/k2z3k0/launchpad-for-octatrak-in-pure-data
Example video
Getting Started with Raspberry Pi, Pure Data
How to deal with Raspberry Pi as usb midi host
Raspberry Pi audio/midi board
https://blokas.io/pisound/
Raspberry Pi audio/midi board
https://www.osaelectronics.com/.../midi-board-for.../
Raspberry Pi how to get midi out out of onboard GPIO
https://github.com/nugluke/midi2gpio
best regards
Kazik
Ganymede: an 8-track, semi-automatic samples-looper and percussion instrument based on modulus instead of metro
Ganymede.7z (includes its own limited set of samples)
Background:
Ganymede was created to test a bet I made with myself:
that I could boil down drum sequencing to a single knob (i.e. instead of writing a pattern).
As far as I am concerned, I won the bet.
The trick is...
Instead of using a knob to turn, for example, up or down a metro, you use it to turn up or down the modulus of a counter, ie. counter[1..16]>[mod X]>[sel 0]>play the sample. If you do this then add an offset control, then where the beat occurs changes in Real-Time.
But you'll have to decide for yourself whether I won the bet. .
(note: I have posted a few demos using it in various stages of its' carnation recently in the Output section of the Forum and intend to share a few more, now that I have posted this.)
Remember, Ganymede is an instrument, i.e. Not an editor.
It is intended to be "played" or...allowed to play by itself.
(aside: specifically designed to be played with an 8-channel, usb, midi, mixer controller and mouse, for instance an Akai Midimix or Novation LaunchPad XL.)
So it does Not save patterns nor do you "write" patterns.
Instead, you can play it and save the audio~ output to a wave file (for use later as a loop, song, etc.)
Jumping straight to The Chase...
How to use it:
REQUIRES:
moonlib, zexy, list-abs, hcs, cyclone, tof, freeverb~ and iemlib
THE 7 SECTIONS:
- GLOBAL:
- to set parameters for all 8 tracks, exs. pick the samples directory from a tof/pmenu or OPEN_IND_DIR (open an independent directory) (see below "Samples"for more detail)
- randomizing parameters, random all. randomize all every 10*seconds, maximum number of bars when randomizing bars, CLR the randomizer check boxes
- PLAY, L(imited) or I(nfinite) counter, if L then number of bars to play before resetting counter, bpm(menu)
- MSTVOL
- transport/recording (on REC files are automatically saved to ./ganymede/recordings with datestamp filename, the output is zexy limited to 98 and the volume controls the boost into the limiter)
- PLAYHEADS:
- indicating where the track is "beating"
- blank=no beat and black-to-red where redder implies greater env~ rms
- MODULAE:
- for information only to show the relative values of the selected modulators
- WEIGHTS:
- sent to [list-wrandom] when randomizing the When, Accent, and Offset modulators
- to use click READ_ARRAYS, adjust as desired, click WRITE, uncheck READ ARRAYS
- EVEN=unweighted, RND for random, and 0-7 for preset shapes
- PRESETS:
- ...self explanatory
-
PER TRACK ACCORDION:
- 8 sections, 1 per track
- each open-closable with the left most bang/track
- opening one track closes the previously opened track
- includes main (always shown)
- with knobs for the sample (with 300ms debounce)
- knobs for the modulators (When, Accent, and Offset) [1..16]
- toggles if you want that parameter to be randomized after X bars
- and when opened, 5 optional effects
- adsr, vcf, delayfb, distortion, and reverb
- D-W=dry-wet
- 2 parameters per effect
-
ALL:
when ON. sets the values for all of the tracks to the same value; reverts to the original values when turned OFF
MIDI:
CC 7=MASTER VOLUME
The other controls exposed to midi are the first four knobs of the accordion/main-gui. In other words, the Sample, When, Accent, and Offset knobs of each track. And the MUTE and SOLO of each track.
Control is based on a midimap file (./midimaps/midimap-default.txt).
So if it is easier to just edit that file to your controller, then just make a backup of it and edit as you need. In other words, midi-learn and changing midimap files is not supported.
The default midimap is:
By track
CCs
---TRACK--- | ---SAMPLE--- | ---WHEN--- | ---ACCENT--- | --- OFFSET--- |
---|---|---|---|---|
0 | 16 | 17 | 18 | 19 |
1 | 20 | 21 | 22 | 23 |
2 | 24 | 25 | 26 | 27 |
3 | 28 | 29 | 30 | 31 |
4 | 46 | 47 | 48 | 49 |
5 | 50 | 51 | 52 | 53 |
6 | 54 | 55 | 56 | 57 |
7 | 58 | 59 | 60 | 61 |
NOTEs
---TRACK--- | ---MUTE--- | ---SOLO--- |
---|---|---|
0 | 1 | 3 |
1 | 4 | 6 |
2 | 7 | 9 |
3 | 10 | 12 |
4 | 13 | 15 |
5 | 16 | 18 |
6 | 19 | 21 |
7 | 22 | 24 |
SAMPLES:
Ganymede looks for samples in its ./samples directory by subdirectory.
It generates a tof/pmenu from the directories in ./samples.
Once a directory is selected, it then searches for ./**/.wav (wavs within 1-deep subdirectories) and then ./*.wav (wavs within that main "kit" directory).
I have uploaded my collection of samples (that I gathered from https://archive.org/details/old-school-sample-cds-collection-01, Attribution-Non Commercial-Share Alike 4.0 International Creative Commons License, 90's Old School Sample CDs Collection by CyberYoukai) to the following link on my Google Drive:
https://drive.google.com/file/d/1SQmrLqhACOXXSmaEf0Iz-PiO7kTkYzO0/view?usp=sharing
It is a large 617 Mb .7z file, including two directories: by-instrument with 141 instruments and by-kit with 135 kits. The file names and directory structure have all been laid out according to Ganymede's needs, ex. no spaces, etc.
My suggestion to you is unpack the file into your Path so they are also available for all of your other patches.
MAKING KITS:
I found Kits are best made by adding directories in a "custom-kits" folder to your sampls directory and just adding files, but most especially shortcuts/symlinks to all the files or directories you want to include in the kit into that folder, ex. in a "bongs&congs" folder add shortcuts to those instument folders. Then, create a symnlink to "bongs&congs" in your ganymede/samples directory.
Note: if you want to experiment with kits on-the-fly (while the patch is on) just remember to click the REFRESH bang to get a new tof/pmenu of available kits from your latest ./samples directory.
If you want more freedom than a dynamic menu, you can use the OPEN_IND(depedent)_DIR bang to open any folder. But do bear in mind, Ganymede may not see all the wavs in that folder.
AFTERWARD/NOTES
-
the [hcs/folder_list] [tof/pmenu] can only hold (the first) 64 directories in the ./samples directory
-
the use of 1/16th notes (counter-interval) is completely arbitrary. However, that value (in the [pd global_metro] subpatch...at the noted hradio) is exposed and I will probably incorporate being able to change it in a future version)
-
rem: one of the beauties of this technique is: If you don't like the beat,rhythm, etc., you need only click ALL to get an entirely new beat or any of the other randomizers to re-randomize it OR let if do that by itself on AUTO until you like it, then just take it off AUTO.
-
One fun thing to do, is let it morph, with some set of toggles and bars selected, and just keep an ear out for the Really choice ones and record those or step in to "play" it, i.e. tweak the effects and parameters. It throws...rolls...a lot of them.
-
Another thing to play around with is the notion of Limited (bumpy) or Infinite(flat) sequences in conjunction with the number of bars. Since when and where the modulator triggers is contegent on when it resets.
-
Designed, as I said before, to be played, esp. once it gets rolling, it allows you to focus on the production (instead of writing beats) by controlling the ALL and Individual effects and parameters.
-
Note: if you really like the beat Don't forget to turn off the randomizers. CLEAR for instance works well. However you can't get the back the toggle values after they're cleared. (possible feature in next version)
-
The default.txt preset loads on loadbang. So if you want to save your state, then just click PRESETS>SAVE.
-
[folder_list] throws error messages if it can't find things, ex. when you're not using subdirectories in your kit. No need to worry about it. It just does that.
POSTSCRIPT
If you need any help, more explanation, advise, or have opinions or insight as to how I can make it better, I would love to hear from you.
I think that's >=95% of what I need to tell you.
If I think of anything else, I'll add it below.
Peace thru Music.
Love thru Pure Data.
-s
,