CA2153964A1 - Object-oriented audio record/playback system - Google Patents

Object-oriented audio record/playback system

Info

Publication number
CA2153964A1
CA2153964A1 CA002153964A CA2153964A CA2153964A1 CA 2153964 A1 CA2153964 A1 CA 2153964A1 CA 002153964 A CA002153964 A CA 002153964A CA 2153964 A CA2153964 A CA 2153964A CA 2153964 A1 CA2153964 A1 CA 2153964A1
Authority
CA
Canada
Prior art keywords
multimedia
component
component object
objects
processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
CA002153964A
Other languages
French (fr)
Inventor
Steven H. Milne
James Michael Tindell
John C. Ii Tobias
Bradley Alan Edelman
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Taligent Inc
Original Assignee
Taligent Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Taligent Inc filed Critical Taligent Inc
Publication of CA2153964A1 publication Critical patent/CA2153964A1/en
Abandoned legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/24Object-oriented
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data

Abstract

A technique for providing routing of various multimedia events throughout the course of a multimedia presentation using a computer with a storage and a display. A processor with an attached display, storage and multimedia device builds a component object in the storage of the processor for managing the multimedia device including at least one port for exchanging multimedia information. The processor includes a connection object for connecting the at least one port to the multimedia device to facilitate the exchange of multimedia information and the processor routes information between the multimedia device and the component object port. A list of component objects are stored in the storage and current status for each of the components in the list is also stored. Then, when a multimedia player is invoked, a test is performed on each of the components in the list, and their associated multimedia devices, to determine what aspects of the multimedia presentation can be run.

Description

21~:~9~4 WO 95/08147 ^ PCT/US94/00042 OBJECT-ORIENTED AUDIO RECORD/PLAYBACK SYSTEM

Copyright Notification Portions of this patent application contain materials that are subject to 5 copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwisereserves all copyright rights whatsoever.

l0Field of the Invention This invention generally relates to improvements in computer ~ysLel.ls and more particularly to a system for mixing digital representations of analog signals using an object-oriented operating system.

lSBackground of the Invention Multime~7ia is perhaps the fastest growing application for computer systems.
Increasingly, users are employing computers to present graphic, sound and imaging information to end users. Users are increasingly demanding ergonomic interfaces for managing multimedia presentations. In the past, a time matrix and 20 programming language were used to implement a multimedia presentation.
However, simulating a flexible mixing board to enable the presentation of music or sound with the display of information as a multimedia presentation unfolded was not possible.
Examples of current multimedia systems that do not have the capability of 25 the subject invention are Apple's Quicktime and Microsoft's Video for Windows as described in the March issue of NEWMEDIA, "It's Showtime", pp. 36-42 (1993). Theimportance of obtaining a solution to the routing problem encountered in the prior art is discussed in the March issue of IEEE Spectrum, "Interactive Multimedia", pp.
22-31 (1993); and "The Technology Framework", IEEE Spectrum, pp. 32-39 (1993).
30 The articles point out the importance of an aesthetic interface for controlling multimedia productions.

Sllmmary of the Invention Accordingly, it is a primary objective of the present invention to provide a 35 system and method for routing multimedia data throughout the course of a multimedia presentation using a computer with a storage and a display. A
processor with an attached display, storage and multimedia device builds a component object in the storage of the processor for managing the multimedia device including at least one port for exchanging multimedia information. The WO 95/~8147 215 3 9 6 ~ 2- PCT/US94/00042 processor includes a connection object for connecting the at least one port to the multimedia device to facilitate the exchange of multimedia information and the processor routes information between the multimedia device and the component object port. A list of component objects are stored in the storage and current status 5 for each of the components in the list is also stored. Then, when a multimediaplayer is invoked, a test is performed on each of the components in the list, and their associated mllltime~ devices, to determine what aspects of the multimedia presentation can be run.

Brief Description of the Drawings Figure 1 is a block diagram of a personal computer system in accordance with a preferred embodiment;
Detailed Description Of The Invention The invention is t~reLeLably practiced in the context of an operating system 15 resident on a personal computer such as the IBM (~) PS/2 (g) or Apple (~) Macintosh (~3 computer. A representative hardware environment is depicted in Figure 1, which illustrates a typical hardware configuration of a workstation in accordance with the subject invention having a central processing unit 10, such as a conventional microprocessor, and a number of other units inLeLco~ ected via a system bus 12.
20 The workstation shown in Figure 1 includes a Random Access Memory (RAM) 14, Read Only Memory (ROM) 16, an I/O adapter 18 for connecting peripheral devices such as disk units 20 to the bus, a user interface adapter 22 for connecting a keyboard 24, a mouse 26, a speaker 28, a microphone 32, and/or other user interface devices such as a touch screen device (not shown) to the bus, a communication adapter 3425 for connecting the workstation to a data processing network and a display adapter 36 for connecting the bus to a display device 38. The workstation has resident thereon an operating system such as the Apple System/7 (~) operating system.
In a preferred embodiment, the invention is implemented in the C++
programming language using object oriented programming techniques. As will be 30 understood by those skilled in the art, Object-Oriented Programming (OOP) objects are software entities comprising data structures and operations on the data.
Together, these elements enable objects to model virtually any real-world entity in terms of its characteristics, represented by its data elements, and its behavior, represented by its data manipulation functions. In this way, objects can model 35 concrete things like people and computers, and they can model abstract concepts like numbers or geometrical concepts. The benefits of object technology arise out of three basic principles: encapsulation, polymorphism and inheritance.
Objects hide, or encapsulate, the internal structure of their data and the algorithms by which their functions work. Instead of exposing these ~ wo 95/08l47 215 3 9 6 ~ PCT/US94/00012 implementation details, objects present interfaces that represent their abstractions cleanly with no extraneous information. Polymorphism takes encapsulation a step further. The idea is many shapes, one interface. A software component can make arequest of another component without knowing exactly what that component is.
The component that receives the request interprets it and determines, according to its variables and data, how to execute the request. The third principle is inheritance, which allows developers to reuse pre-existing design and code. This capability allows developers to avoid creating software from scratch. Rather, through inheritance, developers derive subclasses that inherit behaviors, which the developer then customizes to meet their particular needs.
A prior art approach is to layer objects and class libraries in a procedural environment. Many application frameworks on the market take this design approach. In this design, there are one or more object layers on top of a monolithic operating system. While this approach utilizes all the principles of encapsulation, polymorphism, and inheritance in the object layer, and is a substantial improvement over procedural programming techniques, there are limitations to this approach. These difficulties arise from the fact that while it is easy for a developer to reuse their own objects, it is difficult to use objects from other systems and the developer still needs to reach into the lower, non-object layers with procedural Operating System (OS) calls.
Another aspect of object oriented programming is a framework approach to application development. One of the most rational definitions of frameworks camefrom Ralph E. Johnson of the University of Illinois and Vincent F. Russo of Purdue.
In their 1991 paper, Reusing Object-Oriented Designs, University of Illinois tech report UIUCDCS91-1696 they offer the following definition: "An abstract class is a design of a set of objects that collaborate to carry out a set of responsibilities. Thus, a framework is a set of object classes that collaborate to execute defined sets ofcomputing responsibilities." From a programming standpoint, frameworks are essentially groups of interconnected object classes that provide a pre-fabricated structure of a working application. For example, a user interface framework might provide the support and "default" behavior of drawing windows, scrollbars, menus, etc. Since frameworks are based on object technology, this behavior can be inherited and overridden to allow developers to extend the framework and create customizedsolutions in a particular area of expertise. This is a major advantage over traditional programming since the programmer is not changing the original code, but rather extending the software. In addition, developers are not blindly working through layers of code because the framework provides architectural guidance andmodeling but at the same time frees them to then supply the specific actions unique to the problem domain.

WO 9S/08147 21 ~ 3 9 ~ 4 PCT/US94/00042 to the mixer. Similarly, the reverberation unit and the speakers are connected an amplifier connected to the mixer.
A preferred embodiment utilizes object-oriented technology to represent a connection model. Multimedia objects can be connected to each other, creating directed data flow graphs. In addition, a standard set of multimedia objects is defined to the system. These objects can be connected together to facilitate D multimedia data flow from object to object. The connection operations can be facilitated by connecting multimedia objects via a geometric figure such as a line, line segment or other ap~r~ iate geometry. The figures discussed below show examples of various multime~ objects, including connecting objects and the geometric figures that are used to represent the internal data structures and logic joining the multimedia objects.

Albert Architecture Patent Application Progr~mmin~ Interface The "basic components" are - a fixed set of Geometric Primitives (Point, Rectangle, Line, Curve, Polygon, Polyline, Area in 2D; Line, Polyline, Curve and Surface in 3D. This set of geometry is not intend to be user extensible. This limits the complexity of the lower level graphic devices, and provides a "contract" between the user-level API and the low level device for consistent data.
- Discretized data sets. This include 2D raster images (with a number of possible components) and triangulated 3D datasets.
- High level modelling tools, that can express hierarchical groups of graphic objects.
- Transforms. These objects represent the operations available with a traditional 3X3 (in 2D) or 4X4 (in 3D) matrices to rotate, scale, translate, etc. objects.
- Bundles These encapsulate the appearance of the geometry. Standard attributes include (2D
& 3D) frame and/or fill color (fill for area enclosing geometry only), pen thickness, 35 dash patterns, etc. In 3D, bundles also define shading attributes, a la renderman.
Custom attributes (often specific to a particular device) may be specified via akeyword/value pair.
All numeric values are expressed in double precision floating point.
API uses model of:
port->Draw( geometry, bundle, transform ) 45 The latter two default to an "empty" bundle (using the port's default) and anidentity transform. The port (more formally, a TGrafPort) is an application-level view that encapsulates the state. The TGrafPort re-routes the Draw() call to a WO95/08147 21 S39 6 ~ PCT/US94/00042 From a business perspective, frameworks can be viewed as a way to encapsulate or embody expertise in a particular knowledge area. Corporate development organizations, Independent Software Vendors (ISV)s and ~y~L~ms integrators have acquired expertise in particular areas, such as manufacturing, 5 accounting, or currency transactions. This expertise is embodied in their code.
Frameworks allow organizations to capture and package the common characteristicsof that expertise by embodying it in the organization's code. First, this allowsdevelopers to create or extend an application that utilizes the expertise, thus the problem gets solved once and the business rules and design are enforced and used10 consistently. Also, frameworks and the embodied expertise behind the frameworks, have a strategic asset implication for those organizations who have acquired expertise in vertical markets such as manufacturing, accounting, or bio-technology, and provide a distribution mechanism for packaging, reselling, and deploying their expertise, and furthering the progress and dissemination of technology.
Historically, frameworks have only recently emerged as a mainstream concept on personal computing platforms. This migration has been assisted by theavailability of object-oriented languages, such as C++. Traditionally, C++ was found mostly on UNIX systems and researcher's workstations, rather than on computers in commercial settings. It is languages such as C++ and other object-oriented languages, such as Smalltalk and others, that enabled a number of university andresearch projects to produce the precursors to today's commercial frameworks andclass libraries. Some examples of these are InterViews from Stanford University,the Andrew toolkit from Carnegie-Mellon University and University of Zurich's ET++ framework.
Types of frameworks range from application frameworks that assist in developing the user interface, to lower level frameworks that provide basic system software services such as communications, printing, file systems support, graphics, etc. Commercial examples of application frameworks are MacApp (Apple), Bedrock (Symantec), OWL (Borland), NeXTStep App Kit (NeXT), and Smalltalk-80 MVC
(ParcPlace).
Programming with frameworks requires a new way of thinking for developers accustomed to other kinds of systems. In fact, it is not like "programming" at all in the traditional sense. In old-style operating systems such as DOS or UNIX, the developer's own program provides all of the structure. The operating system provides services through system calls--the developer's programmakes the calls when it needs the service and control returns when the service has been provided. The program structure is based on the flow-of-control, which is embodied in the code the developer writes.

wo 95/08147 2 ~ S 3 ~ ~ 1 PCT/U$94/00042 number of possible devices (monitors, off screen frame buffers, PostScriptPrinter on a network, a window, etc.).
Graphical "state" (current transform, bundle, clipping region, etc) is managed by 5 Albert at the port level. However, at the device level Albert is "stateless", i.e., the complete state for a particular rendering operation is presented to the device when that rendering occurs.
The Grafport translates the "port->Draw()" call described above into a device level 10 "Render()" call as follows:
TGrafPort::Draw( geometry, bundle, transform ) GetGrafportDevice()->Render( geometry, grafstate ) Note the device may turn around and invoke other devices (for example, a device for the entire desktop may first decide which screen the geometry falls upon, and then invoke the render call for that particular screen.) Art-etecture diagram ~ WO95/08147 215 ~ ~ 6 4 PCT/US94/00042 -When frameworks are used, this is reversed. The developer is no longer responsible for the flow-of-control. The developer must forego the tendency to understand programming tasks in term of flow of execution. Rather, the thinking must be in terms of the responsibilities of the objects, which must rely on the 5 framework to determine when the tasks should execute. Routines written by the developer are activated by code the developer did not write and that the developer never even sees. This flip-flop in control flow can be a significant psychological barrier for developers experienced only in procedural programming. Once this is understood, however, framework programming requires much less work than 10 other types of programming.
In the same way that an application framework provides the developer with prefab functionality, system frameworks, such as those included in a preferred embodiment, le~ ~ ~age the same concept by providing ~y~lem level services, which developers, such as system progr~mm~rs, use to subclass/override to create 15 customized solutions. For example, consider a multimedia framework which could provide the foundation for supporting new and diverse devices such as audio, video, MIDI, animation, etc. The developer that needed to support a new kind of device would have to write a device driver. To do this with a framework, the developer only needs to supply the characteristics and behaviors that are specific to 20 that new device.
The developer in this case supplies an implementation for certain member functions that will be called by the multimedia framework. An immediate benefit to the developer is that the generic code needed for each category of device is already provided by the multimedia framework. This means less code for the device driver25 developer to write, test, and debug. Another example of using system frameworks would be to have separate I/O frameworks for SCSI devices, NuBus cards, and graphics devices. Because there is inherited functionality, each framework provides support for common functionality found in its device category. Other developers could then depend on these consistent interfaces for implementing other kinds of30 devices.
A preferred embodiment takes the concept of frameworks and applies it throughout the entire system. For the commercial or corporate developer, systemsintegrator, or OEM, this means all the advantages that have been illustrated for a framework such as MacApp can be leveraged not only at the application level for 35 such things as text and user interfaces, but also at the system level, for services such as graphics. I3~ultimedia, file systems, I/O, testing, etc.
App.~ -- on creation in the architecture of a preferred embodiment will essentially ~e ilke writing domain-specific pieces that adhere to the framework protocol. In this manner, the whole concept of programming changes. Instead of WO 9StO8147 21 5 3 9 6 4 PCT/US94/00042 (Optional) Modeling Layer State Storage at GrafPort Level 210 POLYMORPHIC DEVICE Cac2h2e ~_, ~ Captured ~

f CONTRACT~ POLYMORPHIC GRAPHIC
~l~i f ~ ~ ~
DESCRIPTION VECTOR GRAPHIC FRAME
LANGUAGE ENGINE ACCELERATOR BUFFER

In the diagram above, a modelling layer (described below, either user-defined orS provided by Albert) generates calls to a GrafPort 210 using the API described above.
This GraphPort interface accepts only a specific, fixed set of primitives forming a "contract" 250 between the user level API and the device level API. The graphport captures state (including transform, appearance ("bundle"), clipping, etc.) into a polymorphic cache 220 that is used across multiple types of devices1. For each - lO render call, the geometry and all relavant accumulated state 230 is presented at once to the device via a polymorphic device interface 240. This device may take the form of a page description language 260 (such as PostScriptTM), a vector plotting device 270, a device with custom electronic hardware for rendering geometric primitives280, or a traditional framebuffer 290 (either on or off screen).
Modelling Layer Above the GrafPort and geometry layers there is an optional modelling layer. Themodelling layer may be user-supplied, or the user may use the implementation 2133~6~ ~
writing line after line of code that calls multiple API hierarchies, software will be developed by deriving classes from the preexisting frameworks within this environment, and then adding new behavior and/or overriding inherited behavior as desired.
Thus, the developer's application becomes the collection of code that is written and shared with all the other framework applications. This is a powerfulconcept because developers will be able to build on each other's work. This alsoprovides the developer the flexibility to customize as much or as little as needed.
Some frameworks will be used just as they are. In some cases, the amount of 10 customization will be minimal, so the piece the developer plugs in will be small. In other cases, the developer may make very extensive modifications and create something completely new.
In a preferred embodiment, as shown in Figure 1, a multimedia data routing system manages the movement of multimedia information through the computer 15 system, while multiple media components resident in the RAM 14, and under thecontrol of the CPU 10, or externally attached via the bus 12 or communication adapter 34, are responsible for presenting multimedia information. No central player is necessary to coordinate or manage the overall processing of the system.
This architecture provides flexibility and provides for increased extensibility as new 20 media types are added. The system makes use of a variety of multimedia objects, some of which that can be used as connecting objects. The connecting objects include gain, filters, amplifiers, mixers, players and other multimedia components that are individually implemented as objects in an object oriented operating system.
Objects, as discussed above include a code or method component and a data 25 component. The system includes a mouse for facilitating iconic operations such as drag/drop, double-clicking, drop-launching, cursor positioning and other typicaloperations.
In video and audio production studios, media such as sound, MIDI, and video make use of physical patch cords to route signals between sources, effects30 processors, and sinks. Signal processing algorithms are also often represented as networks of sources, sinks, and processors. Both of these models can be represented as directed graphs of objects that are connected. A preferred embodiment allows this model - connecting objects together - to be realized on a computer system.
Figure 2 illustrates a prior art, simple, home studio setup utilizing a tape deck, 35 mixer, reverberation unit, pair of microphones, and pair of speakers. Since the microphones are connected to the tape deck, sound input is routed from the microphone to the tape deck, where it can be recorded. When the tape deck plays back, its signal is routed to the mixer because of the connection from the tape deck WO 95/08147 ~ 15 3 q (~ l PCT/US94/00042 ¦~

-1~
provided by Albert, caII the "MGraphic" layer. An MGraphic object encapsulates both geometry and and appearance (a bundle). To render an MGraphic a Draw method is used. This takes a the GrafPort the MGraphic is drawn into as an argument. The MGraphic Draw method turns this into a GrafPort calls like this:
s MGraphic::Draw( grafport ) {

grafport->Draw( fGeometry, fBundle );

[More specifics can be lifted from the MGraphic & MGraphic3D ERS, as well as some figures to go with it. This is the portion of the architecture that covers the same ground as the Ingalls paper]
15 The goal behind separating the MGraphic layer from the GrafPort/Geometry layer is to avoid a rigid structure suited to only one type of database. If the structureprovided by the MGraphic objects does not meet the client's needs, the architecture still permits a different data structure to be used, as long as it can be expressed in terms of primitive geometries, bundles, and transforms.

Claims (14)

-11-Having thus described our invention, what we claim as new, and desire to secure by Letters Patent is:
1. A system for multimedia presentations, comprising:
(a) a processor;
(b) a storage under the control of and attached to the processor;
(c) a display under the control of and attached to the processor;
(d) a plurality of multimedia devices under the control of and attached to the processor;
(e) a component object in the storage of the processor for managing the multimedia device including at least one port for exchanging multimedia information;
(f) means for storing a list of component objects in the storage;
(g) means for marking the list of component objects to indicate resort;
(h) means for testing each of the component objects on the list and activating the multimedia device associated with the component object if the multimedia device associated with the component object can process information;
(i) means for connecting the at least one port to the multimedia device to facilitate the exchange of multimedia information; and (j) means under the control of the processor for routing information between the multimedia device and the component object port.
2. The system as recited in claim 1, including means for deactivating components.
3. The system as recited in claim 1, including means for ordering a plurality ofcomponent objects in the storage of the processor so that component objects that produce a multimedia output are processed before component objects requiring the multimedia output.
4. The system as recited in claim 3, including means for processing a second component object that is dependent upon the output of a first component object after the first component object is processed.
5. The system as recited in claim 4, including means for managing component objects so that each component object performs its processing operation within a fixed period of time (frame).
6. The system as recited in claim 4, including means for the second component object dependent upon the output of the first component object to wait until the first component object has completed processing to commence processing of the second component object.
7. The system as recited in claim 3, including means for recursively invoking the plurality of component objects in their designated order.
8. A method for facilitating multimedia presentations on a processor with an attached storage, multimedia device and display under the control of the processor, comprising the steps of:
(a) creating a component object in the storage of the processor including at least one port for exchanging multimedia information;
(b) managing the multimedia device with the component object;
(c) storing a list of component objects in the storage;
(d) marking the list of component objects to indicate resort;
(e) testing each of the component objects on the list and activating the multimedia device associated with the component object if the multimedia device associated with the component object can process information;
(f) connecting the at least one port to the multimedia device to facilitate the exchange of multimedia information; and (g) routing information between the multimedia device and the component object port.
9. The method as recited in claim 8, including the step of connecting a plurality of multimedia devices and their associated component objects and exchanging multimedia information.
10. The method as recited in claim 8, including the step of ordering a plurality of component objects in the storage of the processor so that component objects that produce a multimedia output are processed before component objects requiring the multimedia output.
11. The method as recited in claim 10, including the step of processing a second component object that is dependent upon the output of a first component object after the first component object is processed.
12. The method as recited in claim 11, including the step of managing component objects so that each component object performs its processing operation within a fixed period of time (frame).
13. The method as recited in claim 11, including the step of having the second component object dependent upon the output of the first component object wait until the first component object has completed processing to commence processing of the second component object.
14. The method as recited in claim 10, including the step of recursively invoking the plurality of component objects in their designated order.
CA002153964A 1993-09-13 1994-01-03 Object-oriented audio record/playback system Abandoned CA2153964A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12032893A 1993-09-13 1993-09-13
US120,328 1993-09-13

Publications (1)

Publication Number Publication Date
CA2153964A1 true CA2153964A1 (en) 1995-03-23

Family

ID=22389570

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002153964A Abandoned CA2153964A1 (en) 1993-09-13 1994-01-03 Object-oriented audio record/playback system

Country Status (4)

Country Link
US (1) US5544297A (en)
AU (1) AU5989194A (en)
CA (1) CA2153964A1 (en)
WO (1) WO1995008147A1 (en)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0714531B1 (en) 1993-09-13 1997-06-18 Taligent, Inc. Object-oriented video system
CA2153968A1 (en) 1993-09-13 1995-03-23 Steven H. Milne Multimedia data routing system
EP0674414B1 (en) * 1994-03-21 2002-02-27 Avid Technology, Inc. Apparatus and computer-implemented process for providing real-time multimedia data transport in a distributed computing system
US5768607A (en) * 1994-09-30 1998-06-16 Intel Corporation Method and apparatus for freehand annotation and drawings incorporating sound and for compressing and synchronizing sound
EP0735472A3 (en) * 1995-03-31 2000-01-19 Sun Microsystems, Inc. Method and apparatus for conspiracy among objects
US5740436A (en) * 1995-06-06 1998-04-14 Apple Computer, Inc. System architecture for configuring input and output devices of a computer
US5680461A (en) * 1995-10-26 1997-10-21 Sun Microsystems, Inc. Secure network protocol system and method
US5768505A (en) 1995-12-19 1998-06-16 International Business Machines Corporation Object oriented mail server framework mechanism
US5870587A (en) * 1996-03-20 1999-02-09 International Business Machines Corporation Information-handling system, method, and article of manufacture including a mechanism for providing an improved application binary interface
US5913038A (en) * 1996-12-13 1999-06-15 Microsoft Corporation System and method for processing multimedia data streams using filter graphs
US5933141A (en) * 1998-01-05 1999-08-03 Gateway 2000, Inc. Mutatably transparent displays
WO1999067067A1 (en) * 1998-06-23 1999-12-29 Sony Corporation Robot and information processing system
US6618852B1 (en) 1998-09-14 2003-09-09 Intellichem, Inc. Object-oriented framework for chemical-process-development decision-support applications
US6938029B1 (en) * 1999-03-31 2005-08-30 Allan Y. Tien System and method for indexing recordings of observed and assessed phenomena using pre-defined measurement items
US7085773B2 (en) * 2001-01-05 2006-08-01 Symyx Technologies, Inc. Laboratory database system and methods for combinatorial materials research
US6968538B2 (en) * 2001-06-01 2005-11-22 Symyx Technologies, Inc. System and methods for integration of custom classes into pre-existing objects models
US10083621B2 (en) * 2004-05-27 2018-09-25 Zedasoft, Inc. System and method for streaming video into a container-based architecture simulation
GB2415270A (en) * 2004-06-16 2005-12-21 Argo Interactive Ltd A method of generating a test routine
JP4348546B2 (en) * 2005-01-20 2009-10-21 ソニー株式会社 Signal processing apparatus, signal processing program, and recording medium
US8918366B2 (en) * 2005-02-07 2014-12-23 Mimosa Systems, Inc. Synthetic full copies of data and dynamic bulk-to-brick transformation
US8812433B2 (en) * 2005-02-07 2014-08-19 Mimosa Systems, Inc. Dynamic bulk-to-brick transformation of data
US8799206B2 (en) * 2005-02-07 2014-08-05 Mimosa Systems, Inc. Dynamic bulk-to-brick transformation of data
JP4622611B2 (en) * 2005-03-24 2011-02-02 ソニー株式会社 Signal processing device
WO2007024478A2 (en) * 2005-08-23 2007-03-01 Mimosa Systems, Inc. Enterprise server version migration through identity preservation
KR100733965B1 (en) * 2005-11-01 2007-06-29 한국전자통신연구원 Object-based audio transmitting/receiving system and method
US8819258B2 (en) * 2009-05-07 2014-08-26 International Business Machines Corporation Architecture for building multi-media streaming applications
KR20120020532A (en) * 2010-08-30 2012-03-08 삼성전자주식회사 Method and apparatus for processing audio signal
US20140149606A1 (en) * 2012-11-23 2014-05-29 Samsung Electronics Co., Ltd. Server, multimedia apparatus and control method thereof for synchronously playing multimedia contents through a plurality of multimedia devices

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4821220A (en) * 1986-07-25 1989-04-11 Tektronix, Inc. System for animating program operation and displaying time-based relationships
US4885717A (en) * 1986-09-25 1989-12-05 Tektronix, Inc. System for graphically representing operation of object-oriented programs
US4891630A (en) * 1988-04-22 1990-01-02 Friedman Mark B Computer vision system with improved object orientation technique
US4953080A (en) * 1988-04-25 1990-08-28 Hewlett-Packard Company Object management facility for maintaining data in a computer system
EP0347162A3 (en) * 1988-06-14 1990-09-12 Tektronix, Inc. Apparatus and methods for controlling data flow processes by generated instruction sequences
US5208745A (en) * 1988-07-25 1993-05-04 Electric Power Research Institute Multimedia interface and method for computer system
US5041992A (en) * 1988-10-24 1991-08-20 University Of Pittsburgh Interactive method of developing software interfaces
US5133075A (en) * 1988-12-19 1992-07-21 Hewlett-Packard Company Method of monitoring changes in attribute values of object in an object-oriented database
US5086385A (en) * 1989-01-31 1992-02-04 Custom Command Systems Expandable home automation system
US5050090A (en) * 1989-03-30 1991-09-17 R. J. Reynolds Tobacco Company Object placement method and apparatus
US5060276A (en) * 1989-05-31 1991-10-22 At&T Bell Laboratories Technique for object orientation detection using a feed-forward neural network
US5125091A (en) * 1989-06-08 1992-06-23 Hazox Corporation Object oriented control of real-time processing
US5057996A (en) * 1989-06-29 1991-10-15 Digital Equipment Corporation Waitable object creation system and method in an object based computer operating system
US5129083A (en) * 1989-06-29 1992-07-07 Digital Equipment Corporation Conditional object creating system having different object pointers for accessing a set of data structure objects
US5181162A (en) * 1989-12-06 1993-01-19 Eastman Kodak Company Document management and production system
US5093914A (en) * 1989-12-15 1992-03-03 At&T Bell Laboratories Method of controlling the execution of object-oriented programs
US5075848A (en) * 1989-12-22 1991-12-24 Intel Corporation Object lifetime control in an object-oriented memory protection mechanism
US5151987A (en) * 1990-10-23 1992-09-29 International Business Machines Corporation Recovery objects in an object oriented computing environment
US5119475A (en) * 1991-03-13 1992-06-02 Schlumberger Technology Corporation Object-oriented framework for menu definition
US5283638A (en) * 1991-04-25 1994-02-01 Compuadd Corporation Multimedia computing and telecommunications workstation
US5283819A (en) * 1991-04-25 1994-02-01 Compuadd Corporation Computing and multimedia entertainment system
US5367621A (en) * 1991-09-06 1994-11-22 International Business Machines Corporation Data processing method to provide a generalized link from a reference point in an on-line book to an arbitrary multimedia object which can be dynamically updated
US5408659A (en) * 1992-03-05 1995-04-18 International Business Machines Corporation Link pane class and application framework
US5339413A (en) * 1992-08-21 1994-08-16 International Business Machines Corporation Data stream protocol for multimedia data streaming data processing system
US5384771A (en) * 1993-08-27 1995-01-24 At&T Corp. Multimedia call configuration system

Also Published As

Publication number Publication date
US5544297A (en) 1996-08-06
WO1995008147A1 (en) 1995-03-23
AU5989194A (en) 1995-04-03

Similar Documents

Publication Publication Date Title
CA2153964A1 (en) Object-oriented audio record/playback system
EP0727076B1 (en) Object-oriented graphic system and method
EP0679278B1 (en) Object-oriented constructive area system
CA2147847C (en) Object-oriented rendering system
US5710896A (en) Object-oriented graphic system with extensible damage repair and drawing constraints
CN101421761B (en) Visual and scene graph interfaces
US6167404A (en) Multimedia plug-in using dynamic objects
CN1534476B (en) Method and system for image processing by using computer
KR101130484B1 (en) Common charting using shapes
KR100962920B1 (en) Visual and scene graph interfaces
US5471568A (en) Object-oriented apparatus and method for scan line conversion of graphic edges
EP0714530B1 (en) Object-oriented midi system
US6981208B2 (en) Multimedia data routing system and method
EP0720758B1 (en) Multimedia player component object system
US6377962B1 (en) Software program for routing graphic image data between a source located in a first address space and a destination located in a second address space
US5519818A (en) Object-oriented graphic picking system
CA2153969A1 (en) Object-oriented audio system
WO1995015524A1 (en) Method and apparatus for displaying hardware dependent graphics in an object-oriented operating system
US5479589A (en) Object-oriented system for selecting a graphic image on a display
CA2154451C (en) Object-oriented cursor tool
Sinclair et al. An Object-Oriented Solution to an Interdisciplinary 3D Visualization Tool

Legal Events

Date Code Title Description
FZDE Discontinued