Ms Pinky's Reformed Max-For-Live device
So after a few hours of rehearsing with this new Pinky set up, I am confident about Ms Pinky's ability.
Ms. Pinky is definitely the way forwards. In the middle of trying to set up Live to use Pinky with 2 decks for a gig on Saturday, I felt like it wasn't going to work. I switched back to Traktor briefly
. Missing the possibilities I created with Pinky and Ableton, I gave it another stab, and now I am LOVING the Pinky Ableton COMBO!!!
With M4L and Live hopefully making future improvements and more accessible stuff, I can't imagine a need for any other DVS.
Still trying to figure out Drop Cue's and other features, but there's no turning back now.
Ms. Pinky is definitely the way forwards. In the middle of trying to set up Live to use Pinky with 2 decks for a gig on Saturday, I felt like it wasn't going to work. I switched back to Traktor briefly
![Confused :?](./images/smilies/icon_confused.gif)
With M4L and Live hopefully making future improvements and more accessible stuff, I can't imagine a need for any other DVS.
![Very Happy :D](./images/smilies/icon_biggrin.gif)
Still trying to figure out Drop Cue's and other features, but there's no turning back now.
Creating a drop cue function is reaaaaaaaaaaaly easy, you will kick yourself with how easy it is to make.
Earlier in this thread we were talking about how to track the position of the song with a number between 0.00000 -> 1.00000
All you need to do is feed that into the right inlet of a message object, then feed a bang into the left hand side of the object with a button. Feed the message box outlet into the right hand of another message box and attach another button object to the left input of that second message object. Now attach the outlet of the second message object to a "prepend cue" object, then feed that into the the input of the ms pinky object.
The first button drops the cue point, the second button is used to jump back to that cue point.
The problem though is if you want to store that cue point into any of the cue point slots, you can only store it into the last cue point you selected. Thats why i recreated the whole cue point and loop point storage system , so that i could save cue point data into any cue point slot without having to trigger the slot before storing it into that slot.
And yeah... hang in there guys i have not given up on working on this patch despite the fact that you guys have not heard from me in a while.
Earlier in this thread we were talking about how to track the position of the song with a number between 0.00000 -> 1.00000
All you need to do is feed that into the right inlet of a message object, then feed a bang into the left hand side of the object with a button. Feed the message box outlet into the right hand of another message box and attach another button object to the left input of that second message object. Now attach the outlet of the second message object to a "prepend cue" object, then feed that into the the input of the ms pinky object.
The first button drops the cue point, the second button is used to jump back to that cue point.
The problem though is if you want to store that cue point into any of the cue point slots, you can only store it into the last cue point you selected. Thats why i recreated the whole cue point and loop point storage system , so that i could save cue point data into any cue point slot without having to trigger the slot before storing it into that slot.
And yeah... hang in there guys i have not given up on working on this patch despite the fact that you guys have not heard from me in a while.
Last edited by BentoSan on Thu May 06, 2010 5:14 pm, edited 1 time in total.
Copy paste this into a max patch and you will get the idea of how to intergrate it into the patch.
Edit: i should not that this only works in relative mode and NOT in absolute mode. Relative mode is the future anyway, so stick with it![Smile :)](./images/smilies/icon_smile.gif)
Edit: i should not that this only works in relative mode and NOT in absolute mode. Relative mode is the future anyway, so stick with it
![Smile :)](./images/smilies/icon_smile.gif)
Code: Select all
{
"boxes" : [ {
"box" : {
"maxclass" : "comment",
"text" : "Cue Play",
"id" : "obj-9",
"numinlets" : 1,
"patching_rect" : [ 172.0, 471.0, 51.0, 18.0 ],
"fontname" : "Arial Bold",
"numoutlets" : 0,
"fontsize" : 10.0
}
}
, {
"box" : {
"maxclass" : "comment",
"text" : "Cue Drop",
"id" : "obj-7",
"numinlets" : 1,
"patching_rect" : [ 172.0, 415.0, 54.0, 18.0 ],
"fontname" : "Arial Bold",
"numoutlets" : 0,
"fontsize" : 10.0
}
}
, {
"box" : {
"maxclass" : "button",
"id" : "obj-6",
"numinlets" : 1,
"patching_rect" : [ 231.0, 471.0, 20.0, 20.0 ],
"numoutlets" : 1,
"outlettype" : [ "bang" ]
}
}
, {
"box" : {
"maxclass" : "button",
"id" : "obj-4",
"numinlets" : 1,
"patching_rect" : [ 231.0, 415.0, 20.0, 20.0 ],
"numoutlets" : 1,
"outlettype" : [ "bang" ]
}
}
, {
"box" : {
"maxclass" : "newobj",
"text" : "prepend cue",
"id" : "obj-3",
"numinlets" : 1,
"patching_rect" : [ 270.0, 522.0, 100.0, 18.0 ],
"fontname" : "Arial Bold",
"numoutlets" : 1,
"outlettype" : [ "" ],
"fontsize" : 10.0
}
}
, {
"box" : {
"maxclass" : "message",
"id" : "obj-2",
"numinlets" : 2,
"patching_rect" : [ 270.0, 490.0, 50.0, 16.0 ],
"fontname" : "Arial Bold",
"numoutlets" : 1,
"outlettype" : [ "" ],
"fontsize" : 10.0
}
}
, {
"box" : {
"maxclass" : "message",
"text" : "0.",
"id" : "obj-1",
"numinlets" : 2,
"patching_rect" : [ 269.0, 452.0, 50.0, 16.0 ],
"fontname" : "Arial Bold",
"numoutlets" : 1,
"outlettype" : [ "" ],
"fontsize" : 10.0
}
}
, {
"box" : {
"maxclass" : "newobj",
"text" : "- 0.",
"id" : "obj-327",
"numinlets" : 2,
"patching_rect" : [ 300.0, 416.0, 100.0, 18.0 ],
"fontname" : "Arial Bold",
"numoutlets" : 1,
"outlettype" : [ "float" ],
"fontsize" : 10.0
}
}
, {
"box" : {
"maxclass" : "newobj",
"text" : "t f i",
"id" : "obj-324",
"numinlets" : 1,
"patching_rect" : [ 300.0, 397.0, 100.0, 18.0 ],
"fontname" : "Arial Bold",
"numoutlets" : 2,
"outlettype" : [ "float", "int" ],
"fontsize" : 10.0
}
}
, {
"box" : {
"maxclass" : "newobj",
"text" : "if $f1>0 then $f1",
"id" : "obj-321",
"numinlets" : 1,
"patching_rect" : [ 300.0, 378.0, 100.0, 18.0 ],
"fontname" : "Arial Bold",
"numoutlets" : 1,
"outlettype" : [ "" ],
"fontsize" : 10.0
}
}
, {
"box" : {
"maxclass" : "newobj",
"text" : "snapshot~ 1",
"id" : "obj-288",
"numinlets" : 2,
"patching_rect" : [ 300.0, 321.0, 71.0, 18.0 ],
"fontname" : "Arial Bold",
"numoutlets" : 1,
"outlettype" : [ "float" ],
"fontsize" : 10.0
}
}
, {
"box" : {
"maxclass" : "newobj",
"text" : "expr $f1*11.60997732426/$f2",
"linecount" : 2,
"id" : "obj-320",
"numinlets" : 2,
"patching_rect" : [ 300.0, 348.0, 119.0, 29.0 ],
"fontname" : "Arial Bold",
"numoutlets" : 1,
"outlettype" : [ "" ],
"fontsize" : 10.0
}
}
, {
"box" : {
"maxclass" : "newobj",
"text" : "route msec_time duration msec_duration msec_remainder file_type bitrate vinyl_metric vinyl_position read",
"id" : "obj-173",
"numinlets" : 1,
"patching_rect" : [ 436.0, 323.0, 775.0, 19.0 ],
"fontname" : "Sans Serif",
"numoutlets" : 10,
"outlettype" : [ "", "", "", "", "", "", "", "", "", "" ],
"fontsize" : 11.0
}
}
, {
"box" : {
"maxclass" : "newobj",
"varname" : "mptcfs_sa~",
"text" : "mptcfs_sa~",
"id" : "obj-5",
"numinlets" : 7,
"patching_rect" : [ 30.0, 301.0, 424.0, 18.0 ],
"fontname" : "Arial Bold",
"numoutlets" : 7,
"outlettype" : [ "signal", "signal", "signal", "signal", "signal", "list", "list" ],
"fontsize" : 10.0
}
}
],
"lines" : [ {
"patchline" : {
"source" : [ "obj-3", 0 ],
"destination" : [ "obj-5", 0 ],
"hidden" : 0,
"midpoints" : [ 279.5, 551.0, 5.0, 551.0, 5.0, 278.0, 39.5, 278.0 ]
}
}
, {
"patchline" : {
"source" : [ "obj-6", 0 ],
"destination" : [ "obj-2", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-4", 0 ],
"destination" : [ "obj-1", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-2", 0 ],
"destination" : [ "obj-3", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-1", 0 ],
"destination" : [ "obj-2", 1 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-327", 0 ],
"destination" : [ "obj-1", 1 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-173", 2 ],
"destination" : [ "obj-320", 1 ],
"hidden" : 0,
"midpoints" : [ 613.5, 345.0, 409.5, 345.0 ]
}
}
, {
"patchline" : {
"source" : [ "obj-320", 0 ],
"destination" : [ "obj-321", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-288", 0 ],
"destination" : [ "obj-320", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-5", 4 ],
"destination" : [ "obj-288", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-5", 6 ],
"destination" : [ "obj-173", 0 ],
"hidden" : 1,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-324", 0 ],
"destination" : [ "obj-327", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-324", 1 ],
"destination" : [ "obj-327", 1 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-321", 0 ],
"destination" : [ "obj-324", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
]
}
Not true for me.Relative mode is the future anyway, so stick with it
I find relative mode looses positioning when fast back cueing. So any marker on the vinyl becomes useless. I understand that this is unavoidable when using relative mode.
So for me ABSOLUTE MODE is the only way I can perform using pinky.
But I have a problem!
I want to be able to use cue points with absolute mode. Nuts right?
I figure there needs to be a SUPER ABSOLUTE MODE, or something that uses the timecode for positioning but allows you to move the position of the audio track on the vinyl.
So when you hit a cue point in SUPER ABSOLUTE MODE your audio file would move so that the cue point is in the current position of the needle on the record.
I suppose its a case of MATHS on the position code. When you hit the CUE it reads the vinyls current position and the cue points position. It then +/- the difference from the incoming timecode as a kind of playback offset.
Sound like it would work? Perhaps I should start a new thread for this?
I had a look at the MAX/MSP patch and its beyond my understanding. If any one can implement this it would be MASSIVE! For me at least
![Smile :)](./images/smilies/icon_smile.gif)
So I have some questions about improvement.
My number one issue is when loading a track using the "highlighted clip - bento button" method, the other deck will have a slight glitch 90% of the time. Like a tiny needle skip. Any ideas on how to fix this?
Also as in the above post, when back cueing fast in absolute mode, the position may change. Is there a way to fix that issue?
Thanks Bento for the info on cue dropping.
My number one issue is when loading a track using the "highlighted clip - bento button" method, the other deck will have a slight glitch 90% of the time. Like a tiny needle skip. Any ideas on how to fix this?
Also as in the above post, when back cueing fast in absolute mode, the position may change. Is there a way to fix that issue?
Thanks Bento for the info on cue dropping.