Forums > MaxMSP

Exporting from detonate

January 22, 2006 | 5:51 pm

I tried to export and re-import the attached MIDI file from and into
detonate. The results were pretty surprising.

Georg


January 24, 2006 | 12:21 pm

You seem to assume that the surprise is obvious and the same for everybody.
This is a wrong assumption. Some explanation about the context is always
necessary…

In other words I have not even the slightest idea what the surprise
should be and what you would expect if there where no surprise.
(see bug reporting guidelines, which are not only a common sense advice
for reporting bugs (in case its not a bug you want to point to.))

Stefan

[][] [][][] [][] [][][] [][] [][][] [][] [][][]
[][][][][][][][][][][][][][][][][][][][][][][][][][][][]

Stefan Tiedje
Klanggestalter
Electronic Composition
&
Improvisation

/~~~~~
\ /|() ()|
))))) )| | |( \
/// _/)/ )))))
___/ ///

————————-x—
–_____———–|———-
–(_|_ —-|—–|—–()—
– _|_)—-|—–()———-
———-()————x—-

14, Av. Pr. Franklin Roosevelt, 94320 Thiais, France
Phone at CCMIX +33-1-49 77 51 72


January 24, 2006 | 3:04 pm

There are many import/export surprises with detonate. I made several
patches to demonstrate the bugs and the many variations you get with
different combinations of import/export/read/write.

On of my tests involved multitrack (32) data into detonate with a
composition algorithm. Exporting and reimporting moved everything to one
channel. Export/write with various arguments produced many surprises when
importing to finale and sibelius including 1) putting all the tracks on one
staff and 2) ignoring tracks beyond the first and putting that data on 32
staves.

Someone at Cycling74 was looking into this but the responses dried up and I
moved on to something else. I would love to use detonate because of its
graphics and its ability to work with multitrack midi data but I have lots
of other projects while I wait for this to be sorted out.

Slainte,
Gary Lee Nelson
Oberlin College
http://www.timara.oberlin.edu/GaryLeeNelson


January 28, 2006 | 4:23 pm

Stefan,

Sorry for the comment, but I feel your email sounds a bit overzealous.
I’m pretty sure that those guys at Cycling 74 who are doing the bug
fixes know exactly what I meant.
But let me rephrase it:
1. Open the attached file in detonate.
2. Save the file with the export message in MIDI file format.
3. Now reopen the new file and compare the two.
4. Do they look the same? No. Should they look the same? Yes.

Georg


January 30, 2006 | 2:07 pm

Georg Hajdu wrote:
> Stefan,
>
> Sorry for the comment, but I feel your email sounds a bit overzealous.
> I’m pretty sure that those guys at Cycling 74 who are doing the bug
> fixes know exactly what I meant.
> But let me rephrase it:
> 1. Open the attached file in detonate.
> 2. Save the file with the export message in MIDI file format.
> 3. Now reopen the new file and compare the two.
> 4. Do they look the same? No. Should they look the same? Yes.

Sorry for being overzealous, but when I opened the Midifile, the
detonate contained nothing (nothing to save so to say), but the midifile
would play fine with Quicktime. Thats why I was responding like that.
How should I know what you’d expect without description. Its often the
case that the bug I discover doesn’t show up on a different computer, or
as in your case shows up completely different…

Stefan

[][] [][][] [][] [][][] [][] [][][] [][] [][][]
[][][][][][][][][][][][][][][][][][][][][][][][][][][][]

Stefan Tiedje
Klanggestalter
Electronic Composition
&
Improvisation

/~~~~~
\ /|() ()|
))))) )| | |( \
/// _/)/ )))))
___/ ///

————————-x—
–_____———–|———-
–(_|_ —-|—–|—–()—
– _|_)—-|—–()———-
———-()————x—-

14, Av. Pr. Franklin Roosevelt, 94320 Thiais, France
Phone at CCMIX +33-1-49 77 51 72


January 30, 2006 | 6:01 pm

Hi Stefan,

I might have been a bit irritated because of the headache detonate
was and is still causing me. So, I hope you don’t mind my words.
Now, I’m really surprised that you didn’t see anything opening the
file in detonate. I checked again, I don’t have problems seeing the
events. What’s your system? I work on Mac OS X 10.4.4 with MaxMSP
4.5.6 installed.

Georg

On Jan 30, 2006, at 3:07 PM, Stefan Tiedje wrote:

> the detonate contained nothing (nothing to save so to say


January 30, 2006 | 8:00 pm

MIDI files come in several formats (0, 1, 2). While
Quicktime may be able to play all three, ‘detonate’
may be restricted to one format or the other, and this
may or may not be documented. You can use a MIDI file
format conversion utility to get the file into
detonate.
As a long-time MIDI user, I’ve experienced different
versions of this limitation with several older MIDI
sequencer boxes and software packages, so it has
become second nature to pump a file through one or
more conversion stages to get it into usable form one
one platform or another.
MIDI Formats and terse description:
0 the file contains a single
multi-channel track
1 the file contains one or more
simultaneous tracks (or MIDI outputs) of a sequence
2 the file contains one or more
sequentially independent single-track patterns

see

http://www.sfu.ca/sca/Manuals/247/midi/fileformat.html


January 30, 2006 | 9:45 pm

There may be undocumented things about the export formats with detonate but
I tried all of the documented ones and each one has some problem ewlated to
reimport to detonate or import to other applications – Finale and Sibelius
were my targets. There is a difference between detonate’s import/export and
read/write commands but each has a pair of parameters that let you chose
midi format as well as the interpretation of time codes. The options in the
documentation meet all of my needs – or would if they actually worked.

Slainte,
Gary Lee Nelson
TIMARA Department
Oberlin College
http://www.timara.oberlin.edu/GaryLeeNelson


January 31, 2006 | 1:04 pm

Did you want some of piano roll functionality in max? Because, I think at this point there are better and easier ways around using detonate…. for example, using plugmidiin>udp-write localhost inside a pluggo plugin using #synth in a pluggo script makes it possible to use a proper sequencers piano roll. all you do is put the vsti you created on whichever lane you want to pipe into max and viola. Or, atlernatively virtual midi cables work just as well… Just curious what you were trying to do or why you were working with detonate [in the first place]. Because, and this is just my opinion, it sort of seems a lost cause to even bother with that object :) … that’s just me though.

j.


January 31, 2006 | 1:16 pm

Georg Hajdu wrote:
> Hi Stefan,
>
> I might have been a bit irritated because of the headache detonate was
> and is still causing me. So, I hope you don’t mind my words.
> Now, I’m really surprised that you didn’t see anything opening the file
> in detonate. I checked again, I don’t have problems seeing the events.
> What’s your system? I work on Mac OS X 10.4.4 with MaxMSP 4.5.6 installed.

The same system here, on a 12" Powerbook. Maybe some type voodoo? I had
to rename it to be able to read it and named it test.mid. That would
then play in Quicktime, but would not show anything in detonate.
Could you repost it with proper types/extensions or maybe as a zip/sit?
Then I could give it another shot.

Stefan

[][] [][][] [][] [][][] [][] [][][] [][] [][][]
[][][][][][][][][][][][][][][][][][][][][][][][][][][][]

Stefan Tiedje
Klanggestalter
Electronic Composition
&
Improvisation

/~~~~~
\ /|() ()|
))))) )| | |( \
/// _/)/ )))))
___/ ///

————————-x—
–_____———–|———-
–(_|_ —-|—–|—–()—
– _|_)—-|—–()———-
———-()————x—-

14, Av. Pr. Franklin Roosevelt, 94320 Thiais, France
Phone at CCMIX +33-1-49 77 51 72


January 31, 2006 | 3:06 pm

On 1/31/06 8:04 AM, "bine~" wrote:

>
> Did you want some of piano roll functionality in max? Because, I think at this
> point there are better and easier ways around using detonate…. for example,
> using plugmidiin>udp-write localhost inside a pluggo plugin using #synth in a
> pluggo script makes it possible to use a proper sequencers piano roll. all you
> do is put the vsti you created on whichever lane you want to pipe into max and
> viola. Or, atlernatively virtual midi cables work just as well… Just
> curious what you were trying to do or why you were working with detonate [in
> the first place]. Because, and this is just my opinion, it sort of seems a
> lost cause to even bother with that object :) … that’s just me though.
>
> j.
>
I like this solution for several reasons. First, it seems to be a solution.
Any chance you can make us a simple example? Second, it addresses the
notion that a single piece of software, however rich and deep, cannot be all
things to all people. Each program reflects the preoccupations of its
designer(s). Designers who provide the possibilities of expansion through
plugins and the like are to cream of the crop. This was not always the
case. In the early days, designers of hardware synths and software were a
very paternal lot. The very first thing I want to know about Max back in
1990 was "can I write my own externals?"

Slainte,
Gary Lee Nelson
TIMARA Department
Oberlin College
http://www.timara.oberlin.edu/GaryLeeNelson


January 31, 2006 | 3:25 pm

okey, here I go… may the great 8 legged goat guardian protect me…

=====pluggo plugin=====

max v2;
#N vpatcher 507 251 877 566;
#P window setfont "Sans Serif" 12.;
#P window linecount 1;
#P newex 37 143 50 9109516 append;
#P newex 145 94 95 9109516 sprintf set /ch%i;
#N pp 1 channel 1 16;
#P newobj 145 59 106 9109516 pp 1 channel 1 16;
#P comment 164 78 67 9109516 send_midi;
#N plugconfig;
#C useviews 1 0 0 0;
#C numprograms 1;
#C preempt 1;
#C sigvschange 1;
#C sigvsdefault 32;
#C nohintarea;
#C autosize;
#C defaultview Interface 0 0 0;
#C dragscroll 1;
#C infotext;
#C uniqueid 106 195 106;
#C initialpgm 1;
#C synth;
#P newobj 283 250 65 9109516 plugconfig;
#P newex 37 167 73 9109516 _ /midisend;
#P newex 20 100 27 9109516 t b l;
#P newex 20 219 108 9109516 opensoundcontrol;
#B color 14;
#P objectname osc;
#P newex 20 75 92 9109516 midiparse;
#P newex 20 34 66 9109516 plugmidiin;
#P newex 20 247 144 9109516 udp-write 127.0.0.1 7010;
#B color 14;
#P objectname udpwrite;
#P connect 1 0 2 0;
#P connect 2 0 4 0;
#P fasten 5 0 3 0 42 206 25 206;
#P connect 4 0 3 0;
#P connect 3 0 0 0;
#P fasten 9 0 10 0 150 129 42 129;
#P connect 4 1 10 0;
#P connect 10 0 5 0;
#P connect 8 0 9 0;
#P pop;

=====patch for receiving osc data=====

max v2;
#N vpatcher 514 224 957 478;
#P window setfont "Sans Serif" 12.;
#P window linecount 1;
#P newex 348 88 42 9109516 print 3;
#P newex 292 88 42 9109516 print 2;
#P newex 235 88 45 9109516 print 1;
#P newex 348 61 50 9109516 r mid_3;
#B color 4;
#P newex 292 61 50 9109516 r mid_2;
#B color 4;
#P newex 235 61 50 9109516 r mid_1;
#B color 4;
#P newex 25 76 55 9109516 zl ecils 1;
#P newex 25 51 94 9109516 route /midisend;
#P newex 70 173 49 9109516 forward;
#B color 4;
#P newex 70 135 122 9109516 sprintf send mid_%s;
#P newex 70 112 44 9109516 strtok /;
#P newex 25 26 91 9109516 osc_read 7010;
#B color 5;
#P connect 0 0 4 0;
#P connect 4 0 5 0;
#P connect 5 1 1 0;
#P connect 1 0 2 0;
#P fasten 5 0 3 0 30 166 75 166;
#P connect 2 0 3 0;
#P connect 6 0 9 0;
#P connect 7 0 10 0;
#P connect 8 0 11 0;

=====required abstraction "osc_read"=====

max v2;
#N vpatcher 363 167 926 786;
#P window setfont "Sans Serif" 12.;
#P newex 76 51 121 9109516 tap.loadbang 500 $1;
#P newex 36 464 67 9109516 print uread;
#P newex 88 81 82 9109516 tap.typecheck;
#P message 36 442 104 9109516 Port $1 now open;
#P message 186 321 15 9109516 0;
#P button 186 307 15 0;
#P newex 196 366 78 9109516 _ receiveport;
#P newex 206 207 21 9109516 t 1;
#P newex 102 105 46 9109516 route 0;
#P newex 351 372 100 9109516 print uread_error;
#P message 351 351 161 9109516 read_port $1 already in use!;
#P toggle 168 237 15 0;
#P newex 138 259 58 9109516 leftgate 2;
#P newex 138 133 40 9109516 t i i 0;
#N coll udp-read 1;
#P newobj 180 176 90 9109516 coll udp-read 1;
#B color 9;
#N coll udp-read 1;
#P newobj 58 378 90 9109516 coll udp-read 1;
#B color 9;
#P newex 58 354 60 9109516 append 1;
#P outlet 245 528 15 0;
#P newex 196 414 108 9109516 opensoundcontrol;
#P objectname osc;
#P newex 196 390 68 9109516 udp-read 0;
#P objectname udp-read;
#P comment 89 259 46 9109516 unique;
#P comment 201 259 46 9109516 in_use;
#P comment 43 403 127 9109516 currently_active_ports;
#P fasten 10 0 19 0 143 308 41 308;
#P connect 19 0 21 0;
#P fasten 10 0 6 0 143 308 63 308;
#P connect 6 0 7 0;
#P fasten 22 1 20 0 192 76 93 76;
#P connect 20 1 14 0;
#P connect 14 1 9 0;
#P connect 9 0 10 0;
#P fasten 15 0 11 0 211 237 173 237;
#P connect 9 2 11 0;
#P connect 9 1 8 0;
#P fasten 11 0 10 1 173 255 191 255;
#P connect 10 1 17 0;
#P connect 17 0 18 0;
#P connect 10 0 16 0;
#P connect 18 0 16 0;
#P connect 16 0 3 0;
#P connect 3 0 4 0;
#P connect 8 1 15 0;
#P connect 4 1 5 0;
#P fasten 10 1 12 0 191 286 356 286;
#P connect 12 0 13 0;
#P pop;

_____pluggoscript externals_______
_.mxe
opensoundcontrol.mxe
udp-write.mxe

IE

open thispatcher
include E:/maxmsp/__path__/externals/jasch_objects/_.mxe
include E:/maxmsp/__path__/externals/CNMAT/opensoundcontrol.mxe
include E:/maxmsp/__path__/externals/CNMAT/udp-write.mxe

or whereever those are in your path….

so, here how it should be….

1.compile the plugin first off
2.insert as a synth in your sequencer
3.choose which "channel" via the slider, keep it at 1 for now
4.loop a midi part on the timeline
5.open up the receiver patch
6.piano roll info should be coming in on "receive mid_1"

lemme know if that works for you.
j.


January 31, 2006 | 3:57 pm

shite, I just noticed you can attach files…. makes sense…. doh. Okay, well all that junk I just put above can be downloaded via attached, that is to say attached actually works being as such I am trying it for the first time now.


January 31, 2006 | 3:57 pm

bah, fuck it, I don’t see where my zip went anywhere! =/


January 31, 2006 | 4:03 pm

Using Max for almost 16 years, I have gotten used to working around
certain idiosyncrasies. Nonetheless, I believe that an object
offering basic MIDI functionality such as MIDI import and export
should be well maintained.

Georg


January 31, 2006 | 4:08 pm

Hrm yeah, I guess. I don’t know, I have only been using max for 2-3 years and to me, I guess being as such that detonate doesn’t really seem to "do it to well" is no accident. I think its a bit too much of a "musical" primitive for my/MAXs’ likings… But yeah, its there and should work, did you try my alternative? I know I’ve spent a lot of time messing about with detonate and I’ve never been particulary thrilled with its functionality as a piano roll/sequencer. Versus a program like Nuendo, it almost seems like a rather ridiculous object.


January 31, 2006 | 4:46 pm

I apologise for the amount of time it is taking to get this object working correctly – please be assured that we are working on it and an update will be forthcoming. Thank you for your patience….

Cheers

Andrew


January 31, 2006 | 4:59 pm

Hi Bine~,

On Jan 31, 2006, at 5:08 PM, bine~ wrote:

>
> Hrm yeah, I guess. I don’t know, I have only been using max for 2-3
> years and to me, I guess being as such that detonate doesn’t really
> seem to "do it to well" is no accident. I think its a bit too much
> of a "musical" primitive for my/MAXs’ likings…

I don’t quite agree with you on that. Detonate only offers a visual
paradigm for manipulating list of lists, albeit with MIDI import and
export.

> But yeah, its there and should work, did you try my alternative? I
> know I’ve spent a lot of time messing about with detonate and I’ve
> never been particulary thrilled with its functionality as a piano
> roll/sequencer. Versus a program like Nuendo, it almost seems like
> a rather ridiculous object.

I’m used to making a fuss on this list, when things are broken, and
that’s probably one of the reasons why the timeline object is
actually still usable. Ask David Z. I’m optimistic that my strategy
might also work in this case ;-))

Thank you anyway for your excellent work; I’ll have a closer look
once I can find a bit more time.

Georg


January 31, 2006 | 5:01 pm

Here we go…

Thanks, Andrew!!

Georg


Viewing 19 posts - 1 through 19 (of 19 total)