MIDI Delay with weird fix (has now become an ASIO issue)
Hi there!
New to PD and its really great to use. I have a USB MIDI keyboard which, in any program, has huge input lag, making it unplayable (we're talking quarter of a second here, which is huge in timing terms). This was the same in PD, until I opened Audio Settings in PD and started, gradually, nudging down the delay (msec) value. Since that, I get no noticeable input lag at a msec value of 25 (lower breaks with horrible input lag, higher obviously increases input lag because, well, its a delay), however the input lag comes back if I close the Audio Settings window. After applying and not closing the window, there is no problem. I also notice launching my email client with the window open created huge lag, but I see that as being normal, as you're putting more work on the CPU.
My setup for testing is as follows: USB MIDI keyboard -> PD -> simple input to output patch -> USB MIDI adapter (not the keyboard, a different one) -> Yamaha CBX-T3 MIDI sound module.
This system is running windows 10 64Bit
Preferably, I'd like to remove delay for ALL programs. Worst case I'd like to be able to use PD's midi functions without the Audio Settings window open.
Thanks for any help.
EDIT: Clsoing the Audio Settings window and waiting about 5 seconds fixes the delay issue for PD., still have program delay though, such as Ableton.
2017 06 25 01:4:06 - The Way I REALly Want to Play with Her (For My Guitar's Sake (Improv) Remix-0): improv remix (using Anduril and a midi-keyboard as parameter controller)
2017 06 25 01:4:06 - The Way I REALly Want to Play with Her (For My Guitar's Sake (Improv) Remix-0): improv remix (using Anduril and a midi-keyboard as parameter controller)
I think this turned out Really well! (A mix of an old guitar piece where this time instead of the guitar (send it as input~) I "played" the effects.
I configured my "Samson Graphite M25" (USB, midi-keyboard) so the keys sent (0-1)/7 and the velocity sent the [line~] values to my xyz effects.
So I divided the keyboard into 3 sets of 8 controls to send values to my effect parameters, i.e. as I "played" a key, the parameter value [line]d to the chosen value. The greater the velocity the shorter the line.
Was a hell-offa lot of fun.
I also added a key (the 25th) to turn on the elven-cloak (pitch/env~) automatic parameter changer, and my CC's to change the values on a twist.
Hope you like it. Better to hear it than talk about it, right?
The original guitar piece (mine) is one of my favorites I have done and really lent itself to this techinque.
Ciao for Now and Happy PDing.
Sincerely,
Scott
Recording audio output from openpanel sequences in pure data
Hi there! I have seen some tuts teaching how to record audio from PD, when you have a sound been generated from a osc object for exemple, in a .wav file. The tutorial link the DAC object to a writesf~object to generate the audio recorded file in the computer hd.
My question is : if i want to record a sequence of sound events that were not generated by osc or sintesis but they were generated by openpanel object? for example i have a patch that turns my pc keyboard into a piano with .wav files for the piano notes being played when i press the computer keyboard keys. In this case i do not have some audio coming out from a DAC object. How can i record with writesf~object the sound, (the .wav. files) addressed by open panel when i played pressing the keyboard. i want to play some notes of the piano and record that note sequence in another .wav file in the computer hard disk.
thanks for any help!!!
Regards!!
press some keys using the key press objetc.
Piano Keyboard note visualizer
Hi everyone,
First of all, sorry for my bad english, I'm italian. This is the first GUI abstraction I share so hope you'll enjoy it. I've been using Pd for a little more than one year, so maybe this is not the most optimized piece of work you'll find around, but it surely does it's job.
I created a piano layout with 88 (piano keyboard) or 128 keys (midi range) that shows the notes played by a midi keyboard or something similar. You just need to input messages to one of its 4 inlets containing one or more couples <note velocity> e.g. you can pack the 2 outlet of [makenote] or [notein] or just simply a message such as |60 40, 64 30, 67 60( to show a C major chord and then |60 0, 64 0, 67 0( to switch it off (more examples in the help file).
Each of the 4 inlets has a different color to show the note played so you can monitor up to 4 instrument simultaneously.
88keys and 128keys use only canvases to work so they are perfectly compatible with Pd Vanilla, but they are a bit heavy while moving around so please be careful if you're using a low spec machine. They use white.pd and black.pd as building blocks so if you need to build a smaller one you can simply modify the original layout to make a 2 octave keyboard or else, or modify the single key abstraction if you don't like the original colors.
Hope this can be useful for someone, feel free to use and abuse as you wish and please share your own improvement so everyone can enjoy!
Using multiples of the same subpatch when it includes a table
@me-andmymonkey Hello Chris........ This will get you on your way I think...... You might want to approach it differently, but it will show you how to use $values....... and it will do exactly what you wish if you are using wav files and you number them the same as your abstractions..
keyboard.zip
(Open "keyboard.pd", play the sounds, and open the abstractions to see what is in the first picture below)
Your problem is that it is (a little bit) hard to get $0 into the "read" message for [soundfiler(
In the second picture below I have shown how to push the $0 value into the array name in the read message...... with a little explanation.
David.
'Swallow' keyboard key press
Thanks David, I agree that midi keyboards and controllers are cheap and convenient. I also have touchOSC.
My quest with the qwerty keyboard is more for the sake of geekness than practicability.
With glovepie my script would use scroll lock as a toggle: when off it's a typing computer keyboard and when on events are swallowed and turned into midi messages. I then use the mouse to control what happens on the screen.
One of my uses is that I have a second qwerty keyboard connected to the PC that is lying on the floor (the computer doesn't make the difference between 2 keyboards). With just one scroll lock press then each third of the keyboard surface is mapped to one midi note: that's how I have a puzzling looking wireless effect footswitch!
I also had a mouse footswitch in the same fashion, it's great fun to kick those interfaces. And they come for free as you can still make use of them when people discard them because some keys are defective..
I'm discovering Auto Hot Key now and it seems it may be the answer to my needs.
keyboards GUI for MIDI
@gsagostinho hahahaha Gilberto sorry for Guilherme ...
I use externals binaries included in deken, but we have only linux 64 bits versions of ggee and cyclone compiled there. So I did only Linux 64 bits version of keyboards GUI, if someone have these libraries compiled in 64bits on MAC and/or WIN, please include binaries in the 64 bits version.
ps.: @gsagostinho are named correctly now.
32 bits (Linux, Windows, Mac):
keyboards-pd-vanilla-32bits.zip
64 bits (Linux Only)
keyboards-pd-vanilla-64bitsLinuxOnly.zip
Cheers
Questions: Batch Array Creation/Assign
@jjegede01 Hello again...... as @LiamG said recently........ abstractions.
This should get you on your way...... (open "keyboard.pd")
"read_from_abstr.pd" is an abstraction that contains an array which can be played by sending a message (in this case from the parent patch "keyboard.pd").
"put_dynamic.pd" shows you how to create and destroy the abstactions dynamically.
keyboard.zip
David.
Multiple mice and keyboards as \[hid\] not for X input
@atarikai said:
I know I can target individual mice and keyboards with [hid] but is there a way to keep the linux Xserver from using them as input?
Old thread, I know, but for anyone else who stumbles upon it...
I think what you want is the `xinput` command. First, find out what devices you have:
$ xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Logitech USB Trackball id=8 [slave pointer (2)]
⎜ ↳ Wacom Intuos3 6x8 eraser id=9 [slave pointer (2)]
⎜ ↳ Wacom Intuos3 6x8 cursor id=10 [slave pointer (2)]
⎜ ↳ Wacom Intuos3 6x8 id=11 [slave pointer (2)]
⎜ ↳ Logitech USB-PS/2 Optical Mouse id=12 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Power Button id=7 [slave keyboard (3)]
↳ Unicomp Endura Keyboard id=13 [slave keyboard (3)]
You can detach the device, preventing it from controlling the X pointer/keyboard, by using `xinput float`, e.g.
$ xinput float "Logitech USB Trackball"
(or use its numeric ID.) The control stream will still come through via HID. In fact, you can use `xinput` to access the control stream as formatted text as well:
$ xinput test "Logitech USB Trackball"
motion a[0]=1176 a[1]=607
motion a[0]=1177 a[1]=608
motion a[0]=1177 a[1]=609
motion a[0]=1177 a[1]=610
button press 1
button release 1
The `xidump` command from the Linux Wacom Project can be used in a similar way.
To reattach the floated device and regain control of the X pointer:
$ xinput reattach "Logitech USB Trackball" "Virtual core pointer"
You can detach keyboard devices as well, but watch for the Enter key getting (virtually) stuck!
Output keyboard keys such as arrows, page up/down, enter...
hi
I'm wondering if it is possible to send this kind of data, directly to the OS (acting like an actual alphanum keyboard keys).
it's a bit hard to find with search engines since these keywords usually return stuff about midi keyboard and keys, nothing about computer keyboards.
thanks in advance.