[
IMPORTANT: This information is primarily for the benefit of the NOTION product managers and software engineers . . . ]
After doing the aforementioned experiment (
see my previous post, above), I was wondering what being able to have two NOTION 3 scores open simultaneously during a ReWire session has to do with anything other than being a curiously surreal experiment . . .
But after pondering this for a while, I realized that it makes a lot more sense than perhaps most of the people on this planet might imagine, with the exception of a few of what one might call "ancient GUI software developers", which makes it very relevant to doing ReWire . . . If you rollback the clock 25 or so years, the facts of the matter were (a) that everything was 16-bits, (b) that computers were very slow, (c) that there was no multiple document interface in Windows, and (d) that programming was done in low-level C and the primitive Windows API, with the exception of one line of assembly code, which metaphysically created the portal through which one jumped into
Wonderland and had a bit of FUN via the
Burgermaster, which was the
Humpty Dumpty and
Wizard of Oz in the Windows universe . . .
The biggest problem in those days was devising ways to do everything within the vast constraints of a 16-bit operating system, and one of the strategies involved running multiple instances of what today has been replaced by a single application with a multiple document interface, which is the way NOTION 3 currently runs on the Mac, where depending on the complexity of the NOTION 3 scores, you can have at least two NOTION 3 scores open, with the key limitation in this respect being the 32-bit application workspace constraints . . .
The "multiple instances" aspect mapped to being able to run many copies of what really was one application, except that each copy was uniquely identified in a way that kept the multiple instances separate and independent in every respect, at least when doing so was convenient for one reason or another . . .
[
NOTE: Some types of corporate computing are done as transactions, and the general idea at the time was to create tiny Windows applications that worked like transactions, where the basic rule is that a "transaction" does three things very efficiently: (1) starts, (2) does a complete unit of work, and (3) ends. Hence, instead of creating a single huge Windows application, the strategy was to create a virtual festival of tiny Windows applications which for the most part were identical with respect to (1) and (3) but differed by (2), except that there were techniques for making (2) generic in such a way that (2) could be made specific at runtime . . . ]
Connecting a few dots and using the "Divide and Conquer" rule (
a personal favorite), it is useful to know that NOTION 3 can act as a ReWire host controller, which is a
key bit of information . . .
Currently on the Mac, it is
not possible to run multiple separate instances of NOTION 3, but this is more of a matter of packaging and perhaps doing a bit of additional software engineering to ensure that the various exposed defining identifiers are
unique . . .
In other words, if NOTION 3 can be either (a) a ReWire host controller or (b) a ReWIre slave, then I think that one instance of NOTION 3 should be able to function as a ReWire host controller with another instance of NOTION 3 functioning as a ReWire slave, thereby effectively mapping to two (2) 32-bit application workspaces rather than only one (1) 32-bit application workspace, and from the perspective of software engineering I do not think this is a difficult thing to do . . .
Without examining the code for NOTION 3, it is not so easy to guess how much work this might require, but with a good text editor and specific knowledge of the code, it generally is
not difficult for example to change "NOTION3" to "3NOITON", there by creating two applications, although there is a smarter way to do it that allows one to create multiple instances on the fly in real-time, where each instance is launched as a separate uniquely identified application, which then makes it possible (a) to have a NOTION 3 ReWire host controller and a handful of NOTION 3 ReWire slaves or (b) to have the option to start NOTION 3 specifically as an uniquely identified ReWire slave, which then maps to being able to have a virtual festival of "heavy" VSTi virtual instruments, because instead of there being just one 32-bit application workspace, there are
several 32-bit application workspaces . . .
And this also can be done when a DAW application is acting as the ReWire host controller, which probably is the
smarter way to do it, since it avoids needing to expand the NOTION 3 Mixer to have double or triple the tracks or whatever, in which case the first time NOTION 3 is started, it dynamically creates itself as an uniquely identified ReWire slave with its own separate 32-bit application workspace, and then each additional time NOTION 3 is started, NOTION 3 creates itself as yet another uniquely identified ReWire slave with its own separate 32-bit application workspace . . .
The following diagram shows a DAW application acting as the ReWire host controller of two (2) uniquely identified NOTION 3 ReWire slaves, each of which has its own separate 32-bit application workspace:

NOTION 3 running in a single 32-bit application workspace uses approximately two (2) cores of the 2.8-GHz 8-core Mac Pro here in the sound isolation studio when 25 VSTi virtual instruments are loaded, which tends to suggest that running two or perhaps three such separate and independent instances is possible, since two (2) cores need to be reserved for use by the DAW application which is the ReWire host controller application, and the operating system needs some resources, as well . . .
Another way to do it is to have an instance of NOTION running as a "conductor" or master instance that controls some number of "instrument section" NOTION slave instances, which is a logical way to separate a full symphonic orchestra score into sections, where each section has its own sub score, and there probably is a way to do this where the "conductor" master instance does all the visual work, so that it appears to be just one instance of NOTION, but behind the scenes there actually are several instances of NOTION running in the background to provide the generated audio and visual stuff for each of the instrument sections or sub scores . . .
On the Mac, I know that VST effects plug-ins and VSTi virtual instruments are programmed to be
unique, since for example, I can have multiple instances of the T-RackS 3.5 Opto-Compressor running in NOTION 3 and in Digital Performer 7.24 during a ReWire session, and I also know that two ReWire slave applications can run simultaneously, since I record NOTION 3 generated audio as soundbites in Digital Performer 7.24 via ReWire and have done this when Reason 5 (Propellerhead Software) was running as a ReWire slave, where the ReWire host controller (Digital Performer 7.24) was controlling both NOTION 3 and Reason 5 . . .
I continue to know more about Windows internals than Mac OS X internals, but there should be a way to do it, and logic tends to suggest that since the Apache web server, PHP, Perl, and MySQL run in the background as services in Mac OS X Server, this strongly suggests that there is a way to do it on the Mac, as well as in Windows, which is fabulous . . .
Fabulous! 
P. S. One way to monetize this is to sell "unique instance" licenses, where for example when a customer has purchased two "unique instance" licenses, the customer then can run two uniquely identified instances of NOTION 3, each of which has its own separate 32-bit application workspace . . .
Depending on the number of cores, memory, bus bandwidths, and so forth, it might be possible to run more than two uniquely identified instances of NOTION 3, but if it only is possible to run two uniquely identified instances of NOTION 3, then this (a) doubles everything and (b) makes it possible to do some very useful things via copying and pasting from one NOTION 3 score to another NOTION 3 score without needing to open and close each score between the copy and the paste steps, which is what one currently must do when the two NOTION 3 scores are at or near the maximum for fitting into a single 32-bit application workspace . . .
I know that there is a way to this on the Mac, because I can run 50 instances of the T-RackS 3.5 Deluxe (IK Multimedia) Opto-Compressor, and each one remembers its specific settings and operates only on its assigned stereo track. Whether this is done via GUIDs (Globally Unique Identifiers) or something else is another matter, but so what . . .
So what! When the Multiple Document Interface (MDI) appeared in the 1990s, nearly everyone went bonkers and switched to the Multiple Document Interface style of GUI programming, which was
spanky, but there are times when rolling back the clock makes a bit of sense, and I think this strategy has potential for filling a gap while the more complex goal of doing a 64-bit version of NOTION progresses, because being able to run two uniquely identified instances of NOTION 3--hence having two (2) separate and independent 32-bit application workspaces--would be a lot of FUN here in the sound isolation studio, really . . .
Really! 