record polyphonic notes into a table
Thanks to everyone for their help! I had to try a few things, but I just can’t come up with a solution.
Basically, I want to feed polyphonic input into a step sequencer — either through [notein] or by manually selecting notes from a virtual keyboard.( a button each sending the pitch for each note)
Using [notein] seemed like the easiest approach at first. I’m storing pitch and velocity in separate [text] objects, and I thought I could just use [text get] to feed that into [poly].
But here’s the issue: [poly] doesn’t accept lists, it expects values to arrive one at a time, as MIDI is a serial process. So instead of feeding a list directly, I would need to send each note individually, one after the other.
I could route each voice separately after [poly] and assign pitch and velocity manually for each voice, but that feels like a lot of effort, and I can’t really use [clone] for my synth setup. That means I’d have to manually duplicate everything based on the number of voices, which isn't ideal. Also I don`t know how to store velocity and note length in this case.
When I try the virtual keyboard approach, I run into the same issue: I have all the note data stored in a list, but I can't feed that list directly into [poly]. I’d still need to read the notes out one by one, in quick succession. On top of that, with the virtual keyboard, I’m not sure how to handle note length, since [poly] manages note on/off internally. I’d basically need to generate my own note on and note off messages manually.
So I think the core issue I’m running into is how to read out a list in a serial way — fast enough to sound like a chord, but still feeding each note individually into [poly].
Also, I found another approach someone did
send audio over wifi from pc to raspberry pi on pd
Hi!
I would like to send audio over wifi in pure data from my pc to several raspberry pi. I tried to send audio over wifi from one pc to another pc with mrpeach udpsend~ and udpreceive~ , and it worked pretty good. My goal is to create a small spacialisation set with 4 to 8 small speakers each one linked to a rasberry pi with audio that i send from my pc. I want to send a different audio channel to each raspberry pi.
i have now one raspberry pi zero 2, so i can try with one speaker first. i installed pure data on it but my problem is that i can't install mrpeach on the raspberry pi OS. Didn't find it on the pure data browser externals and when i put the downloaded files inside the externals file, it doesn't work either.
Do you have a solution?
Thanks
Clément
I need an object to unpack an incoming midi chord (midi in, note in )
@whale-av said:
@gentleclockdivider "Let's recap , a chord ( thus separate incoming midi notes perceived as a chord ) goes into pure data , I want to extract the midi note values .
UNpack -only unpacks last received note+velocity , that's why I wrote that an object that detects the time between incoming events could be the solution .
SO let's say I play a simple c min (midiin) , which has the midi note nr's 48 , 51 , 55 ....I want these these to appear in separate numboxes ."[unpack] produces all the note numbers...... but you only see the last..... a [print] will show them.
As I said at the start of this thread, [poly] will separate them for you as it indexes the notes.
You could then use [route] to separate them but [clone] is more useful as you can clone a synth inside if you wish.
The indexes from [poly] can be used to allocate the notes to the clones, and [poly] then ensures that you have no hanging notes as the noteoff messages are allocated the same index.As the idea of a chord is human and has no meaning in Pd, midi, or even on a keyboard, why would you need to group the notes together with a timer or a threshold.... I am just curious...
To correct bad keyboard technique...?The method using [poly] and [route] is shown in your Pd/doc folder....... Pd/doc/7.stuff/synth/1.poly.synth.pd .... since at least 2011.
David.
I reall think we have a communication error here .
I know that a chord does not exist in pure data -midi etc...and that it's a sequential message of single notes , I have expresed that in my first post .
I am also aware that only the last of the messages is shown by the unpack module .
- quote-
As the idea of a chord is human and has no meaning in Pd, midi, or even on a keyboard, why would you need to group the notes together with a timer or a threshold.... I am just curious...
To correct bad keyboard technique...?
-unquote -
Bad keyboard technique ??
I just wanted pure data to SHOW all incoming midi notes that make up the chord , not in the console but in the structure view ., , your treshold value example did that .
Why is it so bizarre to ask for that , max msp has a dedicated object for exactly that , says enough .
using HID object on Raspberry Pi
sorry for the double forum post, just starting a new thread for clarity.
I'm trying to use a USB joystick with pure data on my headless Raspberry Pi. I've got the patch working on my laptop just fine.
I've installed the pd-hid external on my Raspberry Pi, but the joystick doesn't do anything in the patch. The external loads when I start up Pd, but I don't get any input information from the joystick into Pd.
One theory I have is that the version of [hid] is different on the Raspberry Pi repo vs. Deken? On Raspberry Pi it is says:
[hid] 0.7, written by Hans-Christoph Steiner <hans@eds.org>
compiled for Debian on 2022/12/07 at 09:43:35 UTC```
Whereas the version on Deken is "hidv0.1.0.dek".
Could these be different? Or is there something else entirely that I'm missing?
Pd as an accessible programming environment?
@JoshuaACNewman A macro keyboard can be made much simpler just using a normal keyboard and keybinding, some info here. I started making a version which accepts two key commands so you could type "ag" to get [array get] and the like, but I am failing to find my plugin, i either accidentally saved over it or lost it. But with just keybinding you could get around 100 objects on a standard keyboard with single key commands and shift/capslock and just relabel the keys. You could also use a midi keyboard and dynamic patching.
Edit, I do not think you need to use dynamic patching to do the midi keyboard, you probably can just convert the midi key into an asci key and send it too pd.
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
shortcuts issue
I have the same problem...
You might use a french or german keyboard maybe?
The problem is that numeric keys are mapped to Command + Shift + digit key in such systems.
I finally ended by modifying some line of my pd_binding.tcl file long time ago to make them match my local keyboard.
For exemple (for french keyboard) for object box "CMD+1", I use "CMD + &":
bind all <$::modifier-ampersand> {menu_send_float %W obj 0}
For CMD+2, I use "CMD + é":
bind all <$::modifier-eacute> {menu_send_float %W msg 0}
This way I don't need to press 3 keys (CM + SHIFT + numeric) and only 2 keys like in us keyboard (CMD + &) and it removes the double box.
But I might be wrong?
Polyphonic Pitchshifter controlled by Midi-Keyboard
Hello!
I'm fairly new to Pure Data, but thanks to several tutorials I managed to somehow get close to what I want to achieve:
I want to change the pitch of an audio signal live, by pressing the keys on my midi-keyboard. This I have managed to do, but now I also want to be able to press several keyboard-keys at once in order to create a chord - for instance pitch-shift the audio signal to a C and E and a G at the same time.
I tried to combine this Pitchshifter:
https://github.com/pure-data/pure-data/blob/master/doc/3.audio.examples/G09.pitchshift.pd
With the Poly-setup discussed here:
https://forum.pdpatchrepo.info/topic/5311/polyphonic-voice-management-using-poly
The pitchshifter works by multiplying or dividing the frequencies of the audio signal.
If I want to be able to produce 4 notes at the same time, my guess is that I need to have 4 different pitchshifter-setups that respectively are connected to the nodes of the route-output.
The problem with this is, that if I for instance only would play one note - one voice of the midi keyboard so to say - one pitchshifter would play my desired note, but the 3 others would still play the untransposed audio signal.
Is there a way to check how many keyboard-keys are being pressed or which voices are being active, and then accordingly mute the pitchshifters?
Thankful for any help!
David
Patch that will play different chords with [midi] input
Hello dear PD patchrepo community !
I'm currently trying to make a PD patch that will basically produce different chords when I use different keys on my midi keyboard. I stumbled upon one patch which seems to be a good basis for my work so far but it's too limited ; I'm not very technical savy ( more of a musician actually ) but for my course ( bachelor in sound engineering ) I'm supposed to make a patch that generates chord when I play a note on my MIDI keyboard.
I'd like to generate different chords ( for example minor chords, major chords, and scales for example ) which would be triggered when I use keys on my midi keyboards; do you think this is feasible ?
So far this is what I got;
Just to make it clear for example I'd like my patch to generate a C major seventh cord by inputing the C key on my midi keyboard and add more versatility to my patch by adding extra functionalities such as being able to make a reversed chord too...
I'm struggling to build this patch and any help would be greatly appreciated !
Thanks a lot !
NoxSiren - Modular synthesizer system <- [v15]
NoxSiren is a modular synthesizer system where the punishment of failure is the beginning of a new invention.
--DOWNLOAD-- NoxSiren for :
-
Pure Data :
NoxSiren v15.rar
NoxSiren v14.rar -
Purr Data :
NoxSiren v15.rar
NoxSiren v14.rar
--DOWNLOAD-- ORCA for :
- x64, OSX, Linux :
https://hundredrabbits.itch.io/orca
In order to connect NoxSiren system to ORCA system you also need a virtual loopback MIDI-ports:
--DOWNLOAD-- loopMIDI for :
- Windows 7 up to Windows 10, 32 and 64 bit :
https://www.tobias-erichsen.de/software/loopmidi.html
#-= Cyber Notes [v15] =-#
- added BORG-IMPLANT module.
- introduction to special modules.
- more system testing.
#-= Special Modules [v15] =-#
- BORG-IMPLANT (connects ORCA MIDI system to NoxSiren system)
#-= Current Modules [v15] =-#
- VCO (voltage-controlled-oscillator)
- VCO2 (advance voltage-controlled-oscillator)
- WAVEBANK (additive synthesis oscillator)
- ADSR (Attack-Decay-Sustain-Release envelope)
- C-ADSR (Curved Attack-Decay-Sustain-Release envelope)
- CICADAS (128 steps-Euclidean rhythm generator)
- CICADAS-2 (advance 128-steps polymorphic-Euclidean rhythm generator)
- COMPRESSOR (lookahead mono compressor unit)
- DUAL-COMPRESSOR (2-channel lookahead mono compressor unit)
- STEREO-COMPRESSOR (lookahead stereo compressor unit)
- MONO-KEYS (virtual 1-voice monophonic MIDI keyboard)
- POLY-KEYS-2 (virtual 2-voice polyphonic MIDI keyboard)
- POLY-KEYS-3 (virtual 3-voice polyphonic MIDI keyboard)
- POLY-KEYS-4 (virtual 4-voice polyphonic MIDI keyboard)
- POLY-KEYS-5 (virtual 5-voice polyphonic MIDI keyboard)
- POLY-KEYS-6 (virtual 6-voice polyphonic MIDI keyboard)
- BATTERY (simple manual triggered machine for drumming.)
- REVERB (reverb unit with lowpass control)
- STEREO-REVERB (stereo reverb unit with lowpass control)
- RESIN (advanced rain effect/texture generator)
- NOISE (generates black,brown,red and orange noise)
- NOISE2 (generates yellow,blue,pink and white noise)
- COBALT (6-stage polyrhythm generator)
- SHAPER (basic shaper unit)
- FOLDER (basic wave folding unit)
- STEREO-FOLDER (stereo wave folding unit)
- DUAL-FOLDER (advance wave folding unit)
- POLARIZER (transform a signal into bi-polar, uni-polar, inverted or inverted uni-polar form)
- CLOCK (generates a BPM clock signal for sequencing other modules)
- CLOCKDIVIDER (a clock divider with even division of clock signal)
- CLOCKDIVIDER2 (a clock divider with odd division of clock signal)
- DELAY-UNIT (delay unit)
- STEREO-DELAY (stereo delay unit)
- CHORUS (chorus unit)
- STEREO-CHORUS (stereo chorus unit)
- SEQ (advance 16-step/trigger sequencer)
- KICK (synthesize kick unit)
- KICK2 (synthesize flavor of KICK module)
- KICK3 (synthesize flavor of KICK module)
- SNARE (synthesize snare unit)
- CLAP (synthesize clap unit)
- CYMBAL (synthesize cymbal unit)
- RAND (RNG generator for other modules parameters)
- FMOD (feedback modulation unit)
- AM (amplitude modulation unit)
- RM (ring modulation unit)
- LFO (low-frequency-oscillator)
- LFO2 (advance low-frequency-oscillator)
- COMBINATOR (combine two waves)
- COMBINATOR2 (combine three waves)
- COMBINATOR3 (combine four waves)
- STRING (Karplus-Strong string synthesis unit)
- STRING2 (advance Karplus-Strong string synthesis unit)
- DETUNER (parametric 4-channel detuner unit)
- CRUSHER (basic audio resolution unit)
- STEREO-CRUSHER (basic stereo audio resolution unit)
- DUAL-CRUSHER (advance audio resolution unit)
- FILTER (basic filter)
- VCF (voltage-controlled-filter)
- MAR (Moog-analog-resonant filter)
- VCA (voltage-controlled-amplifier)
- DUAL-VCA (advance voltage-controlled-amplifier)
- FMUX (multiplexer with fast A/D internal envelope)
- MMUX (multiplexer with medium A/D internal envelope)
- SMUX (multiplexer with slow A/D internal envelope)
- FDMX (demultiplexer with fast A/D internal envelope)
- MDMX (demultiplexer with medium A/D internal envelope)
- SDMX (demultiplexer with slow A/D internal envelope)
- MIXER (mix 1-4 possible waves)
- SCOPE (oscilloscope analyzer)
- MASTER (fancy DAC~)
- BOX (useless decorative module)
NoxSiren integrated modules menu system.