Author Topic: Digital Performer 1.41Y  (Read 47956 times)

Offline IIO

  • Platinum Member
  • *****
  • Posts: 4439
  • just a number
Re: Digital Performer 1.41Y
« Reply #20 on: December 28, 2014, 12:19:35 PM »
i have grabbed the main patcher from the app and so i am able to edit it and a make a max4 app, a pluggo plug-in, or or an OSX app out of it.

all what has to be done, as far as i can tell, is to add the sysex output stuff to the effects and eq settings.

and of course, as a first step, i will clean/repair/update the existing code a bit. :)

when i have 1-2 hours to spare next week i will try how far i come without you, if it does not work that way, we have to meet online so that you can test the code together with the hardware.
insert arbitrary signature here

Offline IIO

  • Platinum Member
  • *****
  • Posts: 4439
  • just a number
Re: Digital Performer 1.41Y
« Reply #21 on: December 28, 2014, 12:21:49 PM »
can you please download the max runtime v. 4.1 for now, and see if it opens in OS 7.5.5? and gives you access to the midi and audio drivers in question?
insert arbitrary signature here

Offline P.O.

  • Veteran Member
  • ****
  • Posts: 164
Re: Digital Performer 1.41Y
« Reply #22 on: December 28, 2014, 01:55:51 PM »
can you please download the max runtime v. 4.1 for now, and see if it opens in OS 7.5.5? and gives you access to the midi and audio drivers in question?



this is for DP 1.41Y?
I'd bet my shirt this won't open in 7.5.5! but I can try. I'll have to setup a machine with 7.5.5 though. If it is for "Mixdown", we're not concerned about audio drivers: all we want to do is to control the box with MIDI...

As for the Mixdown part I presume the EQ won't be too hard to implement, as the GUI part is already there. For the effects though there's nothing to control the parameters...

P.O.




Offline IIO

  • Platinum Member
  • *****
  • Posts: 4439
  • just a number
Re: Digital Performer 1.41Y
« Reply #23 on: December 28, 2014, 02:24:15 PM »
according to the guy from that email from 2001, 7.5.5 ist the latest where DP 1.x runs in.
insert arbitrary signature here

Offline IIO

  • Platinum Member
  • *****
  • Posts: 4439
  • just a number
Re: Digital Performer 1.41Y
« Reply #24 on: December 28, 2014, 02:32:26 PM »
well if you only want to program the thing via midi (and not sync recording/replaying with a host computer or something like that), that will of course work on any platform.
insert arbitrary signature here

Offline IIO

  • Platinum Member
  • *****
  • Posts: 4439
  • just a number
Re: Digital Performer 1.41Y
« Reply #25 on: December 28, 2014, 02:35:02 PM »
from what i remember that should also work with logic 4.x (there should also be an audio driver for logic for the cbx.)

for the sysex part only, cubase´s mixermap enviroment could also be an option.
insert arbitrary signature here

Offline P.O.

  • Veteran Member
  • ****
  • Posts: 164
Re: Digital Performer 1.41Y
« Reply #26 on: December 28, 2014, 04:06:45 PM »
Indeed, the CBX is useable with Logic audio: the drivers are there. That would probably be the best way to fully use it as intended. Ressucitating DP 1.41Y could be interesting, but from what I read here and there, it is a buggy proposition at best and you're stuck at system 7.5.5.
If you want to record from it, you can always use Yamaha's Tiny Wave Editor if you can live with that stupid quirk of having to specify you recording lenght BEFORE you start recording...
I at one time was using it with Peak, I think, through Sound Manager.
But all these solutions imply a SCSI setup,  which are becoming quite outdated and bulky.

I personally would be quite happy to be able to use the CBX as an external FX / sampling rate converter box. Controlled by MIDI by a compact program like "Mixdown" that can run on a range of computers, even modern, would be ideal. Since the CBX a 2-in, 4-out box, you could setup two different and simultaneous FXs. I do think we should concentrate on this...

I'd like to know more about that "main patcher" thing you mentionned earlier: is that the core of the program that you can open in MAX and work from? Or would it be easier to start from scratch? I feel that the actual "Mixdown" is a good starting point, as most of the elements are there (only FX parameters to implement and EQ section to have working?). But I don't know if it can be opened and reworked easily...

P.O.
« Last Edit: December 28, 2014, 04:51:29 PM by P.O. »

Offline IIO

  • Platinum Member
  • *****
  • Posts: 4439
  • just a number
Re: Digital Performer 1.41Y
« Reply #27 on: December 28, 2014, 06:45:40 PM »
main patch, yes, thats the main window which you can also see in the app, and which contains most of the programs code.

starting from scratch might be better, but you will have to tell me how you would like to have the layout.

while i can master a lot of things which max, i am very unexperienced with sysex formatting. i am a lucky owner of several sounddiver licenses – and almost stopped using hardware about 10 years ago. so i never needed that.

the actual max part is as easy as it can be, but to make up the numbers and eventually the related expressions is a bit weird ... my brain fails to think in hex.

this is how a change of the output volume is done in max (picture); we would need to do the same for the missing parameters.

insert arbitrary signature here

Online DieHard

  • Global Moderator
  • Platinum Member
  • *****
  • Posts: 2366
Re: Digital Performer 1.41Y
« Reply #28 on: December 28, 2014, 08:29:42 PM »
I love reading this thread everyday as I watch code fly right over my head... lol

You guys absolutely rock ! (last stuff I compiled was in college on an IBM 370)

As far as programming over the last 30 years, I have done a ton on both mac and PC, but all using high level libraries or business database / document integration packages. so, the lower level stuff is so much more interesting... I remember being the only one in assembly class that got into filling the machine registers with arrays of HEX values and actually liking it.

Keep up the good work resurrecting all the dead code... the original creators would be proud :)

Offline P.O.

  • Veteran Member
  • ****
  • Posts: 164
Re: Digital Performer 1.41Y
« Reply #29 on: December 28, 2014, 08:39:58 PM »
Dear IIO,
Sysex is not that complicated... If you google around, you'll find a number of good tutorials, like this one http://www.2writers.com/eddie/tutsysex.htm . I do admit that the constant Hex/decimal conversion is really annoying... If you look at the CBX manual, top of page Add-28, you'll see the structure they use. But frankly, it gets pretty confusing: I think it would be easier to sniff the actual data packets coming out of the program to understand their structure than to figure it out from the documentation! But I also think it should be well defined in the main patch...
Is the MAX example you give from that main patch?
If so, I see that the values preceded by the dollar sign are variables. a pair would be the parameter number, and another pair would be the variable value. the formatting is always the same, it's just the variables that change. And the "missing parameters" are all well defined in the manual. You would just have to "cut and paste" a given fader to implement a new parameter: change the parameter variable for a new one, and let the fader position define the variable value.

As for the layout, I'd say the actual "Mixdown" is quite fine and can be used as a starting point: there would only have to be a section added (maybe an other window) for the effects variables. same presentation as the EQ: a box for the variable name's text, a box for the variable's decimal value, and a box for the variable's real-life value.

hope this helped

P.O.

Offline IIO

  • Platinum Member
  • *****
  • Posts: 4439
  • just a number
Re: Digital Performer 1.41Y
« Reply #30 on: December 29, 2014, 12:48:03 AM »
Dear IIO,
Sysex is not that complicated...


in maxmsp it is totally weird.

the helper object [sxformat] is limited to 9 inputs, if you need a dynamic list length, you have to use negative numbers to gain "no output" for some of them. so it is almost impossible to write a custom mechanics for formatting.

Quote
I do admit that the constant Hex/decimal conversion is really annoying...

indeed, and you can not just write hex to max objects (at least not without third party objects)

Quote
Is the MAX example you give from that main patch?

yes, mainly.

Quote
And the "missing parameters" are all well defined in the manual. You would just have to "cut and paste" a given fader to implement a new parameter:

i hope so.

Quote
As for the layout, I'd say the actual "Mixdown" is quite fine and can be used as a starting point: there would only have to be a section added (maybe an other window) for the effects variables.

i believe the effects are already in a subwindow also in the demo app, click on the blue text field and it should all be there.
insert arbitrary signature here

Offline P.O.

  • Veteran Member
  • ****
  • Posts: 164
Re: Digital Performer 1.41Y
« Reply #31 on: December 29, 2014, 09:41:08 AM »
OK. first you need a Hex/decimal conversion table or calculator.
Sysex messages don't require more than nine inputs. In fact we only need five max.: channel (one byte, could in fact be one nibble), parameter number (2 bytes, low and high) and parameter value  (2 bytes, low and high). All the other data is fixed and never changes!
If you take a look at the patch you posted, the "sxformat" box is probably the only format we'll ever need:
240 is hex F0, Sysex header, never changes.
67 and 120 are hex 43 & 78, Yamaha ID and sub ID, never changes.
then I have to understand what exactly the syntax of this box is, in particular the slashes...
I'll take a guess:
$i4 is the channel nr. since this value is never more than 16, the following 0 completes the byte
$i3 would be the the parameter nr. This value never goes over 99 dec.
the role of the 02 afterward escapes me... maybe completes the parameter nr., which should be a Word.
the following two are the parameter value Word, low-byte ($i2) and high-byte ($i1).
247 is Hex F7, Sysex footer, never changes.

Now regarding the layout I had not seen the Effects subwindow: that is great, now EVERYTHING we need layout-wise is already there!
I don't know if you spotted the "Test Window"... that could be extremely useful as it could hold a common structure for ALL the data we want to send. I suggest you extract the code to this one and post it.
You probably noticed that a number of values require some translation. In the EQ section, for example, the variable box gives a value of 0 to 60 but this has to be translated into a real-life value in Hz: this is done with an external look-up table called "Freq" in the MixdownCBX-D5 folder. Other variables are converted to real-life values by simple arithmetic operations. (look at page Add-8, the "step/table" column.)

that's all for now!

   P.O. 
 


Offline IIO

  • Platinum Member
  • *****
  • Posts: 4439
  • just a number
Re: Digital Performer 1.41Y
« Reply #32 on: December 30, 2014, 01:05:23 AM »

the conversion tool is what i am always missing. it would be so nice to type hex directly. i am afraid using a table will be the best solution.

in this case one could skip using sxformat at all, and built the lists in other ways:
[prepend 240] - [list 1 2 3 4 5] - [append 247]

the slashes are just some kind of delimiter requirement when you use an expression instead of a decimal value.

where, for some reason, for this object, variables such as "$i1" are also counted as expression. for "$i1+15" or "4>>7" it should be more clear what it is. :)

(in the other object where you may use expressions, [if $i1>=100 then 1 else 0], you dont need to do that.)
insert arbitrary signature here

Offline IIO

  • Platinum Member
  • *****
  • Posts: 4439
  • just a number
Re: Digital Performer 1.41Y
« Reply #33 on: January 01, 2015, 08:03:50 AM »
ok i forgot that max also can handle hex in the form of symbols (=strings or characters)

you just have to concatenate "0x" to the symbol "F0" without a space and it outputs "240" as integer number.

insert arbitrary signature here

Offline IIO

  • Platinum Member
  • *****
  • Posts: 4439
  • just a number
Re: Digital Performer 1.41Y
« Reply #34 on: January 01, 2015, 10:27:18 AM »

does that work?
 
insert arbitrary signature here

Offline IIO

  • Platinum Member
  • *****
  • Posts: 4439
  • just a number
Re: Digital Performer 1.41Y
« Reply #35 on: January 01, 2015, 11:02:01 AM »
 
uh. you need this 110 file, too.

instructions: put both files into /maxmspfolder/patches/ for max4, or – in the case of free runtime – into /maxmspruntimefolder/whereeveryouwish/, then launch the cbx example patcher.
insert arbitrary signature here

Offline P.O.

  • Veteran Member
  • ****
  • Posts: 164
Re: Digital Performer 1.41Y
« Reply #36 on: January 01, 2015, 02:26:52 PM »
Excuse me, but I'm lost here! It's not clear what we're shooting at...

Remember I know next to nothing about MAX.

I have downloaded MAX MSP 4.1, installed it on a OS9 G4 machine. I'm trying to follow your instructions but:


uh. you need this 110 file, too.

instructions: put both files into /maxmspfolder/patches/ for max4, or – in the case of free runtime – into /maxmspruntimefolder/whereeveryouwish/, then launch the cbx example patcher.


I don't know where to put this "concat" thing. In the patches folder live four folders named "editors","extras","inspectors" and "picts". None of these contain stuff ressebling concat-.

When I try to open the "cbx-test.txt" file, it always comes out as... text!
What is it supposed to do? What am I supposed to do?

P.O.




Offline IIO

  • Platinum Member
  • *****
  • Posts: 4439
  • just a number
Re: Digital Performer 1.41Y
« Reply #37 on: January 01, 2015, 05:49:11 PM »
no problem. it just has to be anywhere in the search path in order to be found.

do you know what a relative link is in a html document? that is about how files are found in programming enviroments, too.

in max, go to
options
file preferences


here you can see which paths are scanned when you open max.

you can also modify the settings, for example you could add the OS9 desktop or a custom folder at /maxmsp/myfiles/.

(i recommend not to add whole harddisks.)

now, if there is a document (like cbxtest), which links to another document (there is a 110.concat object in the cbxtest patch), this must reside inside the search path.

cbxtest hast lost its creator from uploading, but it should open when you drag it on the max app.
insert arbitrary signature here

Offline IIO

  • Platinum Member
  • *****
  • Posts: 4439
  • just a number
Re: Digital Performer 1.41Y
« Reply #38 on: January 01, 2015, 05:53:53 PM »
cbxtest hast lost its creator from uploading, but it should open when you drag it on the max app.

oh wait, it seems that doesnt work (at least not in OSX-max.) :P

are you browsing this forum from OS9 or OSX?
insert arbitrary signature here

Offline IIO

  • Platinum Member
  • *****
  • Posts: 4439
  • just a number
Re: Digital Performer 1.41Y
« Reply #39 on: January 01, 2015, 06:03:35 PM »

i use so many different versions of max that i sometimes forget what works where and what not.

normally i would just do command-all and then copy and paste it here like this:

#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#P message 189 292 85 196617 change settings;
#B color 5;
#P message 174 234 55 196617 Effect 2R;
#B color 12;
#P message 174 193 55 196617 Effect 2L;
#B color 12;
#P message 174 151 55 196617 Effect 1R;
#B color 12;
#P message 174 110 55 196617 Effect 1L;
#B color 12;
#P message 189 64 85 196617 Effect Return;
#B color 12;
#P message 232 675 135 196617 doubleclick to ope console;
#B color 5;
#P message 411 675 141 196617 doubleclick to select port;
#B color 5;
#P newex 411 638 71 196617 midiout;
#P message 189 554 59 196617 dump now;
#B color 5;
#P toggle 745 464 15 0;
#P newex 712 610 106 196617 110.blinker 87.5;
#P toggle 712 653 15 0;
#P newex 506 388 35 196617 t i 13;
#P newex 468 388 35 196617 t i 12;
#P newex 430 388 35 196617 t i 11;
#P newex 392 388 35 196617 t i 10;
#P newex 354 388 35 196617 t i F;
#P newex 316 388 35 196617 t i E;
#P newex 278 388 35 196617 t i D;
#P newex 240 388 35 196617 t i C;
#P newex 745 510 78 196617 metro 175;
#P user umenu 243 100 45 196644 1 64 116 0;
#X setrgb 102 102 204 221 221 221 255 255 255 221 221 221 170 170 170 119 119 119 187 187 187;
#X add OUT 1;
#X add OUT 2;
#X add OUT 3;
#X add OUT 4;
#X add MUTE;
#P user umenu 243 119 45 196644 1 64 135 0;
#X setrgb 102 102 204 221 221 221 255 255 255 221 221 221 170 170 170 119 119 119 187 187 187;
#X add OUT 1;
#X add OUT 2;
#X add OUT 3;
#X add OUT 4;
#X add MUTE;
#P user umenu 243 141 45 196644 1 64 157 0;
#X setrgb 102 102 204 221 221 221 255 255 255 221 221 221 170 170 170 119 119 119 187 187 187;
#X add OUT 1;
#X add OUT 2;
#X add OUT 3;
#X add OUT 4;
#X add MUTE;
#P user umenu 243 160 45 196644 1 64 176 0;
#X setrgb 102 102 204 221 221 221 255 255 255 221 221 221 170 170 170 119 119 119 187 187 187;
#X add OUT 1;
#X add OUT 2;
#X add OUT 3;
#X add OUT 4;
#X add MUTE;
#P user umenu 243 183 45 196644 1 64 199 0;
#X setrgb 102 102 204 221 221 221 255 255 255 221 221 221 170 170 170 119 119 119 187 187 187;
#X add OUT 1;
#X add OUT 2;
#X add OUT 3;
#X add OUT 4;
#X add MUTE;
#P user umenu 243 202 45 196644 1 64 218 0;
#X setrgb 102 102 204 221 221 221 255 255 255 221 221 221 170 170 170 119 119 119 187 187 187;
#X add OUT 1;
#X add OUT 2;
#X add OUT 3;
#X add OUT 4;
#X add MUTE;
#P user umenu 243 224 45 196644 1 64 240 0;
#X setrgb 102 102 204 221 221 221 255 255 255 221 221 221 170 170 170 119 119 119 187 187 187;
#X add OUT 1;
#X add OUT 2;
#X add OUT 3;
#X add OUT 4;
#X add MUTE;
#P user umenu 243 243 45 196644 1 64 259 0;
#X setrgb 102 102 204 221 221 221 255 255 255 221 221 221 170 170 170 119 119 119 187 187 187;
#X add OUT 1;
#X add OUT 2;
#X add OUT 3;
#X add OUT 4;
#X add MUTE;
#P newex 611 500 46 196617 + 48;
#P button 199 499 37 0;
#P message 296 597 71 196617 --------;
#P newex 411 565 92 196617 zl iter 1;
#P newex 411 592 92 196617 110.concat 0x;
#P newex 411 537 236 196617 list F0 43 78 40 0 40 0 0 2 30 0 F7;
#P newex 296 638 71 196617 print serial;
#P connect 26 0 15 0;
#P connect 25 0 24 0;
#P connect 15 0 25 0;
#P connect 2 0 0 0;
#P connect 2 0 28 0;
#P connect 2 0 25 0;
#P connect 6 0 1 10;
#P connect 16 0 6 0;
#P connect 17 0 6 0;
#P connect 18 0 6 0;
#P connect 19 0 6 0;
#P connect 20 0 6 0;
#P connect 21 0 6 0;
#P connect 22 0 6 0;
#P connect 23 0 6 0;
#P connect 23 1 1 6;
#P connect 22 1 1 6;
#P connect 21 1 1 6;
#P connect 20 1 1 6;
#P connect 19 1 1 6;
#P connect 18 1 1 6;
#P connect 17 1 1 6;
#P connect 16 1 1 6;
#P connect 7 0 23 0;
#P connect 8 0 22 0;
#P connect 9 0 21 0;
#P connect 3 0 2 0;
#P connect 1 0 3 0;
#P connect 5 0 1 0;
#P connect 10 0 20 0;
#P connect 11 0 19 0;
#P connect 12 0 18 0;
#P connect 4 0 0 0;
#P connect 13 0 17 0;
#P connect 14 0 16 0;
#P window clipboard copycount 37;

but thats too complicated to make that work in OS9 for someone who has never used it before.

as long as you can unzip this in OSX, this binary file should work by double clicking.
insert arbitrary signature here