Purr Data alpha3
This is the alpha 2 release of Purr Data (the GUI port of Pd-l2ork)
- visual improvements to the dialogs (thanks to Albert Gräf)
- fix error with "couldn't unbind" error with "Put" menu array
- fix resize anchor for [cnv]
- fix problem with starting up on Windows if there's a space in the path
- ported Scope~ from cyclone
- fix bug with disappearing text in object and message boxes
- fix resizing bug with atom box
- fix problem with iemguis in subpatches causing errors in the GUI
- fix message box border
Lots of changes in this one, so expect-- and please report-- lots of bugs to
Purr Data alpha2
This is the alpha 2 release of Purr Data (the GUI port of Pd-l2ork)
- OSX build included (Thanks to Matt Barber)
- Gem works on Windows now
- fixed bug that broke infinite undo in some cases
- build improvements for deb packages (Thanks to Albert Gräf)
- shorter console messages for legacy tk gui commands (Thanks to Albert Gräf)
- determistic build of deb packages with l2ork_addons/tar_em_up.sh
- you can now use the build instructions to build a binary on Windows with
- updated moocow and some iem libraries
- fixed bug where the window menus weren't inheriting the OS theme correctly
on GNU/Linux distros
Lots of changes in this one, so expect-- and please report-- lots of bugs to
Albert Gräf added an AUR package here
"This always builds from the latest git sources and can be used as a drop-in replacement for the pd-l2ork or pd-l2ork-git package. Just run
yaourt -S purr-data-git and you should be set (be patient, this package takes quite a while to build)."
PortMidi 'Invalid Device ID'
I have been having this issue (maybe non-issue) for some time.
Here is my set up:
Teensy 2.0 MIDI Device
Late 2013 Macbook Pro
I am using a Teensy MIDI device in Pd.
If I connect the Teensy device, then launch Pd, I get the following error message:
could not open midi input 0 (Teensy MIDI): PortMidi: 'Invalid device ID'
could not open midi output 1 (Teensy MIDI): PortMidi: 'Invalid device ID'
Under my MIDI settings I have "Teensy MIDI" selected both as my input and output.
If I re-select "Teensy MIDI" in both dialogs of the MIDI preferences menu, and hit OK the same error message will reappear in Pd's print window.
Though I get this error, it seems to not effect the use of the device in any way.
When I connect the device to a windows machine, I don't have this PortMidi error message.
I have also connected this device to my iPhone using MobMuPlat, no issues.
Any advice would be helpful.
MIDI Controller experiences/suggestions
@lovelovevideo Hello again.......... if your computer can talk to to the midi device then Pd will work fine. So the real question is "what usb midi devices will work with your computer".
The most future proof for you will be a usb soundcard with midi connectors, or just a usb midi card...... because then any and all midi devices will talk to it through standard 5-pin din connectors. But if a midi device will talk to your computer then it will talk to Pd.
That was a bit long winded... the question is...... "does my computer have the drivers available........ that work!........... for the device?....."
I don't use midi much nowadays as for control I use the "new midi" called osc. Pd works well with osc and you could try it if you have a tablet. I use this app http://hexler.net/software/touchosc which apart from being very reasonably priced and being available for ios and android (sounds like an advert!) will let you draw toggles buttons sliders and XY pads and more on your tablet.
Musicians still use midi for the notes (better timing) but are increasingly using osc for control....
It is far easier to understand than midi.
GUI port of Pd-l2ork Alpha 0 release
tried to install it, but my Jessie couldn't resolve dependencies, any clue?
nau@lapdell:~/Bureau$ sudo dpkg -i pd-l2ork-x86_64-jessie-a0.deb (Reading database ... 166599 files and directories currently installed.) Preparing to unpack pd-l2ork-x86_64-jessie-a0.deb ... Unpacking pd-l2ork (20160406) over (20160406) ... dpkg: dependency problems prevent configuration of pd-l2ork: pd-l2ork depends on tcl; however: Package tcl is not installed. pd-l2ork depends on tk; however: Package tk is not installed. pd-l2ork depends on libglew-dev; however: Package libglew-dev is not installed. pd-l2ork depends on libmagick++-dev; however: Package libmagick++-dev is not installed. pd-l2ork depends on libftgl2; however: Package libftgl2 is not installed. pd-l2ork depends on libgmerlin0; however: Package libgmerlin0 is not installed. pd-l2ork depends on libgmerlin-avdec1; however: Package libgmerlin-avdec1 is not installed. pd-l2ork depends on libavifile-0.7c2; however: Package libavifile-0.7c2 is not installed. pd-l2ork depends on libmpeg3-1 | libmpeg3-2; however: Package libmpeg3-1 is not installed. Package libmpeg3-2 is not installed. pd-l2ork depends on libquicktime2; however: Package libquicktime2 is not installed. pd-l2ork depends on libfftw3-3; however: Package libfftw3-3 is not installed. pd-l2ork dep dpkg: error processing package pd-l2ork (--install): dependency problems - leaving unconfigured Processing triggers for hicolor-icon-theme (0.13-1) ... Processing triggers for shared-mime-info (1.3-1) ... Processing triggers for man-db (18.104.22.168-5) ... Processing triggers for desktop-file-utils (0.22-1) ... Processing triggers for gnome-menus (3.13.3-6) ... Processing triggers for mime-support (3.58) ... Processing triggers for systemd (215-17+deb8u4) ... Errors were encountered while processing: pd-l2ork
Need help to slightly modify a PD project (Rythmboy)
I recently stumbled upon a PuraData based step sequencer for my QuNeo MIDI controller, the so called Rythmboy:
I want to use it as a step sequencer to use with the remix decks in Traktor, so I can add drums to the tracks I play.
Unfortunately, the Rythmboy has an internal MIDI clock, so I can't sync it with an external clock. I already tried to replace the BPM rotary in the patch with "MIDIrealtimein" and the stuff that's also needed, but I can't get it to work.
I managed to do all the other stuff that is needed to work with Traktor (changing the note output, optically mirroring the rotaries, limiting the notes ranges etc.), so I tried, but I don't know how to work with an external midi clock. Another problem that may occur is that the Rhythmboy then needs two MIDI inputs, #1 is the QuNeo and #2 is the external clock (Traktor or my Xone4D mixer).
This is the part of the Rhythmboy that controls the MIDI clock:
The blue box is a tap button to tap in the tempo. This is not needed.
The red box converts a rotary MIDI input between 0 and 127 into a BPM value between 60 and 240 bpm and gives out that value. This is where the changes need to happen I think. I need something that changes the MIDI clock in into a numerical BPM value.
The green box gives output to the rotary LEDs to show the current BPM. This is also not needed.
The other stuff lets a LED blink a metronome, I think.
So, would one of you please tell me what to put in instead of the red box, to make the magic happen?
Looking for PD guru...private proj
Cool...excellent in fact. Will start with 1 issue and go 1 at a time...
Main behaviour is a single click/double click/long hold. ie For midi sustain, a quick single click enables a filter which allows only note on values to play midi notes (for sustained atmoshpheres played from a midi guitar). Anything longer than a quick click is a standard momentary sustain pedal. A double click resets the pedal action and sends an 'all notes off' to clear everything.
I was planning to use this in a browser so I used an active X timer so it would be async to the rest of the script. Hope I have added enough comments to explain;
Insert Code Here Case 64 'Case CC 64 = sustain message from floorboard 'Dat1 = Midi message type+channel 'Dat2 = message value 'default action is send cc64 to instrument out ie Dat2 = 127 and begin sustain regardless of note off filter/sustain action If Dat2>0 Then mox.OutputMidiMsg InstOut, &hB0, 64, 127 'SC is prefix: SingleClick 'Check if its the first trigger in timer sequence and timer has been fired If SCTiming = 1 then 'Test how many pedal downs have occured during timer period If Dat1 = SCOldDat1 THEN SCClkCnt = SCClkCnt+1 End If Else 'Waiting for Single Click Pedal Up If WaitForSCPU=1 Then If (SCOldDat1=Dat1 AND Dat2=0) Then 'Long Hold Action - cc64 sustain off mox.OutputMidiMsg InstOut, &hB0, 64, 0 'Clear wait flag WaitForSCPU = 0 End If Else 'fresh trigger 'sc and dc are single/double click actions that are executed as strings according to timer sc="FilterMGNoteOff = FilterMGNoteOff XOR True : mox.OutputMidiMsg InstOut, &hB0, 64, 0" ' PUREDATA NOTE: couldnt see any XOR functions? dc="mox.OutputMidiMsg InstOut, &hB0, &h7B, &h7F : FilterMGNoteOff = False : mox.OutputMidiMsg InstOut, &hB0, 64, 0" 'SCTiming is a flag to indicate timer has fired SCTiming = 1 SCTimer.enabled = true SCTimer.Duration = 400 'set the click count to 1 (ie pedal down of 127 has ocurred) SCClkCnt = 1 End If End If 'Single Click previous value used for comparison/click count SCOldDat1 = Dat1
Insert Code Here
And here is the timer sink/sub; Insert Code Here Sub SC_Timer SCTiming=0 'Do Timer results here If (SCClkCnt=3 OR SCClkCnt=4) Then 'DC Behaviour Execute(dc) Else If SCClkCnt=2 Then 'msgbox "sc" 'SC Behaviour Execute(sc) Else If SCClkCnt=1 Then 'Wait for pedal up 'msgbox "pedal up" WaitForSCPU=1 End If End If End If 'Reset ClkCnt SCClkCnt=0 SCTimer.enabled = false End Sub
Hope that helps explain
The above example is a bit parametric in that it feeds strings to the sub. This type of module is used throughout the script so Im totally open to simplifying it/modding to make it better in PD...which, from what I have seen, looks like it should be able to do.
If I can get all the previous code to translate, would like to add a control panel showing the fcb with the the current status/values of footswitches on screen, or even just just plug a tablet on the front of the controller for the future.
Filter out midi clock information
I am currently using a pd patch to take incoming MIDI values from a drum pad, manipulate them, and pipe them into another program for sound generation. Unfortunately, my drum pad seems to be constantly sending MIDI clock information. Here's a screenshot to view incoming MIDI messages to my system.
In my patch, I use a custom abstraction to "learn" MIDI notes coming into pd. Basically, when I enable my abstraction to "learn", I tap a note on my MIDI keyboard or drum pad and it instantly becomes mapped to that abstraction. It's basically a really easy way to set the arguments for [notein], [ctlin], etc. However, this MIDI timing signal is screwing everything up. Now when I try to "learn" a MIDI note, the note "0" from channel "10" keeps triggering before I even have a change to tap my keyboard or drum pad.
Any idea how I should filter this out? I would like to just ignore all messages from channel 10, but that's where all my actual note data comes in as well.
Composing Indian Raga using Pd
Composing Indian Raga using Pd:
A raga is a melodic recipe for a mood. In Hindustani (North Indian) classical music, each raga has certain moods associated with it, and usually has a specific time of day and/or season in which it is meant to be played. Raga could be described as a "super scale" using a set of notes in ascending (arohi) and descending (avarohi) order, sometimes including prescribed alternate or zig zag routes (vakra chal), a hierarchy of note importance including king notes (vadi) and prime minister notes (samvadi) a fourth or fifth apart, and a key phrase that shows the heart of the movement of the raga (pakar).
This ancient system is both an art and a science of how musical notes create certain moods. Western music also recognizes that note order and hierarchy create a mood, with some theory texts noting that songs in major keys tend to communicate happiness while songs in minor keys show a feeling of sadness. But the rags show precisely how to create a specific mood. The recipe for each raga holds the key to an unlimited number of potential melodies, each perpetuating the mood or rasa contained in the raga, but each a unique work of art.
Study of this system can be of great benefit to any composer or improvising musician.
Ravikiran has composed and presented several concerts with top caliber artistes from many parts of the world featuring melharmony. He has arranged several melharmonic pieces for performances by full sized, medium sized or chamber orchestras. Some of these are in collaboration with composers such as Prof Robert Morris and Charles Demuynck, Toronto, Canada.
Ravikiran's melharmonic compositions endeavours to enrich both melodic and harmonic systems. Flavoured with exciting and often highly original rhythmic patterns, his compositions have started blazing a new trail in world music. One of his creations, Ujjwal, a full-fledged, first of its kind 45-minute long Melharmonic Concerto was presented in the Swar Utsav Festival at India Gate, New Delhi to an audience close to 20,000 people.
Melharmonic concerts in cities such as Boston, London, New Delhi, Toronto, Mumbai, San Jose, Austin (TX), Chennai, Bangalore, Tulsa (OK) at times in collaboration with top calibre artistes and groups from diverse parts of the world have also won plaudits.
I conceptualized this the other day. The main reason I wanted to make this is because I'm a little tired of complicated ableton live. I wanted to just be able to right click parameters and tell them to follow midi tracks.
The big feature in this abstract is a "Midi CC Module Window" That contains an unlimited (or potentially very large)number of Midi CC Envelope Modules. In each Midi CC Envelope Module are Midi CC Envelope Clips. These clips hold a waveform that is plotted on a tempo divided graph. The waveform is played in a loop and synced to the tempo according to how long the loop is. Only one clip can be playing per module. If a parameter is right clicked, you can choose "Follow Midi CC Envelope Module 1" and the parameter will then be following the envelope that is looping in "Midi CC Envelope Module 1".
Midi note clips function in the same way. Every instrument will be able to select one Midi Notes Module. If you right clicked "Instrument Module 2" in the "Instrument Module Window" and selected "Midi input from Midi Notes Module 1", then the notes coming out of "Midi Notes Module 1" would be playing through the single virtual instrument you placed in "Instrument Module 2".
If you want the sound to come out of your speakers, then navigate to the "Bus" window. Select "Instrument Module 2" with a drop-down check off menu by right-clicking "Inputs". While still in the "Bus" window look at the "Output" window and check the box that says "Audio Output". Now the sound is coming through your speakers. Check off more Instrument Modules or Audio Track Modules to get more sound coming through the same bus.
Turn the "Aux" on to put all audio through effects.
Work in "Bounce" by selecting inputs like "Input Module 3" by right clicking and checking off Input Modules. Then press record and stop. Copy and paste your clip to an Audio Track Module, the "Sampler" or a Side Chain Audio Track Module.
Work in "Master Bounce" to produce audio clips by recording whatever is coming through the system for everyone to hear.
Chop and screw your audio in the sampler with highlight and right click processing effects. Glue your sample together and put it in an Audio Track Module or a Side Chain Audio Track Module.
Use the "Threshold Setter" to perform long linear modulation. Right click any parameter and select "Adjust to Threshold". The parameter will then adjust its minimum and maximum values over the length of time described in the "Threshold Setter".
The "Execution Engine" is used to make sure all changes happen in sync with the music.
IE>If you selected a subdivision of 2, and a length of 2, then it would take four quarter beats(starting from the next quarter beat) for the change to take place. So if you're somewhere in the a (1e+a) then you will have to wait for 2, 3, 4, 5, to pass and your change would happen on 6.
IE>If you selected a subdivision of 1 and a length of 3, you would have to wait 12 beats starting on the next quater beat.
IE>If you selected a subdivision of 8 and a length of 3, you would have to wait one and a half quarter beats starting on the next 8th note.