help! can't output "note on velocity 0"
@midi said:
I need to output “note on velocity 0”
to the softwarethe software refuse to recognize
any note off messages
I just tested as follows (sending a nonzero midinote number of course):
... and found that (at least in Linux, using the ALSA MIDI protocol) [midiout] transmits the bytes exactly as given, without transforming note-on to note-off.
I don't know about Mac or Windows MIDI behavior.
But... when I set up a MIDI responder in SuperCollider (because SC distinguishes between noteOn and noteOff, unlike Pd where velocity is the only thing that distinguishes them), I found that SC changes in note-on message with velocity = 0 to a note-off message.
When I set, in SC, MIDIIn.noteOnZeroAsNoteOff = false;
, then the zero-velocity message was received as note-on.
Now, that's not a guarantee that it will do this on all platforms. But, I don't find anything in Pd's sources that changes the status byte in this case. So if that's definitely always happening in your environment, then it must be either PortMIDI in Pd, or the receiving software is doing it.
hjh
help! can't output "note on velocity 0"
just can't output note on velocity 0 through [midiout] .
"note on velocity 0"
is allways transformed to
"note off velocity 0"message by design
I need to output “note on velocity 0”
to the software
the software refuse to recognize
any note off messages
Controlling Mixxx via Pure Data
@whale-av said:
So if you have a slider sending to [midiout] on a channel then probably "vinyl control" could learn the parameter.
In Pd: I put a vertical slider connected to [midiout] object.
In learning mode ("vinyl control"), moving the slider in Pd, Mixxx says:
Didn't get any midi messages. Please try again.
a.
Controlling Mixxx via Pure Data
@atux You probably need to map a slider in Pd to the scratch control in Mixxx.
Mixxx will auto map if you install some DJ surface, but it seems that it can "learn" from received midi....
https://manual.mixxx.org/2.5/en/chapters/advanced_topics#advanced-controller
So if you have a slider sending to [midiout] on a channel then probably "vinyl control" could learn the parameter.
David.
Controlling Mixxx via Pure Data
@willblackhurst said:
you need to get the controller #s you can look at them as you hit buttons, their numbers show up in pd.
Thanks, using [noteout] in Pd and "Learning Wizard" in Mixxx, Mixxx buttons are easily controlled from Pd. It works well.
I just need to figure out how to control the "scratch" with a slider in Pd, I don't think there is any associated control. If anyone has any ideas...
a.
Midi cc rewriting
@APP_1000 Then you probably just need a bypass in the patch for the other midi messages..... a [notein] connected directly to a [noteout].... etc...... all except [midiin]/[midiout] and [ctlin]/[ctlout]....
David.
Soundfont2 (SF2) Preset Reader
15 or so years ago I came across a vb script to extract a presets list from a soundfont2 file, which I adapted to use in various VB.net Fluidsynth projects.
Now that Pure Data has the file handle object to read binary files I decided to give it a go in Pd on Windows 10.
I have also tried it using linux and it seems to work with the latest portable version.
Edit: Thursday 22nd August 2024, I've just updated choose-sf2-example.pd in the zip because it was incorrectly wired an triggered
sf2-presets-reader.zip
contains:
sf2-presets-reader.pd to create soundfont.txt
choose-sf2-example.pd to launch choose-sf2.pd and show index, bank and name extraction from [r $0-chosen]
choose-sf2.pd
soundfont,txt contains the presets from a soundfont I use SGM-V2.01.sf2 (236MB), this will be overwritten with your choice.
My preferred soundfont player to use with Pure Data is RGC-Audio SFZ.dll or SFZ+.dll loaded in @spacechild1 very excellent vstplugin~
Other options are Qsynth via midiout
Fluidsynth,exe via midiout launched with motex/system
Warning Purr-Data will not open sf2-presets-reader.pd because it does not have the file object.
Method;
open the soundfont2 file;
then look for phdr by searching backwards;
one byte at a time from the end of the file and look for p;
then see if the remainder from route is hdr;
then forwards 38 bytes for each instrument preset;
to retrieve bank, index and name until EOP tag;
send to text: (bank as integer, index / 1000 added to bank) and name as symbol;
;
then sort in order:- text define [sort(;
;
next write the text to soundfont, txt;
Cheers
Balwyn
playing video in pd and internal midi sound
@KMETE said:
In Max MSP when using Mac/pc the [makenote] object is using the internal sound engine of the computer(?)
No, [makenote] doesn't send any MIDI information out. It only generates data internally, inside Pd/Max.
It's [noteout] which uses some device. So this is what you would configure for the desired MIDI output.
But you'd also need to run something in Linux to play the MIDI sounds. There's no default "GS wavetable" in Linux. For that, I don't know, I always avoided default MIDI playback in Mac/PC. It might be easier to roll your own note player in Pd.
hjh
MPE support in Pure Data?
@jamcultur said:
Thanks. That might be what I need, but I need to do some more research on MIDI MPE messages. I'd like to find a MIDI MPE sample file that I could download. I see that Max/MSP added some new objects for MPE, mpeconfig, mpeparse, mpeformat, polymidiin, and others. I'm going to look to see what they're doing.
a file would not be as helpful as simply looking into the specs. the basic "polyphony" releated stuff is relatively simple, the only prerequisite would be that midiin and midiout do not filter out numbers they dont know.
max´s mpeparse or midiparse are quite useful, but it is not really difficult to write your own, it is basically sorting numbers.
midiout
Hey!
Im building a sequencer on pd to sequence my nord drum 2, as I dont have an interface with midi im using my digitone. Im also trying to clock the digitone with pd but I can't seem to get midiout working.
Can anyone help me out with please!