Implantación Del Kernel De Openmusic Bajo Linux

Total Page:16

File Type:pdf, Size:1020Kb

Implantación Del Kernel De Openmusic Bajo Linux Implantaci´on del Kernel de OpenMusic bajo Linux GERARDO MAURICIO SARRIA JOSE FERNANDO DIAGO PONTIFICIA UNIVERSIDAD JAVERIANA FACULTAD DE INGENIERIA INGENIERIA DE SISTEMAS Y COMPUTACION SANTIAGO DE CALI 2001 Implantaci´on del Kernel de OpenMusic bajo Linux GERARDO MAURICIO SARRIA JOSE FERNANDO DIAGO Tesis de grado para optar al t´ıtulo de Ingeniero de Sistemas y Computaci´on Director CAMILO RUEDA Ingeniero de Sistemas y Computaci´on PONTIFICIA UNIVERSIDAD JAVERIANA FACULTAD DE INGENIERIA INGENIERIA DE SISTEMAS Y COMPUTACION SANTIAGO DE CALI 2001 Santiago de Cali, Junio 15 de 2001 Ingeniero ANDRES´ JARAMILLO BOTERO Decano Acad´emico de la Facultad de Ingenier´ıa Pontificia Universidad Javeriana Ciudad Certifico que el presente proyecto de grado, titulado “Implantaci´on del Kernel de OpenMusic bajo Linux” realizado por GERARDO MAURICIO SARRIA y JOSE FERNANDO DIAGO, estudiantes de Ingenier´ıa de Sistemas y Computaci´on, se en- cuentra terminado y puede ser presentado para sustentaci´on. Atentamente, Ing. CAMILO RUEDA Director del Proyecto Santiago de Cali, Junio 15 de 2001 Ingeniero ANDRES´ JARAMILLO BOTERO Decano Acad´emico de la Facultad de Ingenier´ıa Pontificia Universidad Javeriana Ciudad Por medio de ´esta, presentamos a usted el proyecto de grado titulado “Implantaci´on del Kernel de OpenMusic bajo Linux” para optar al t´ıtulo de Ingeniero de Sistemas y Computaci´on. Esperamos que este proyecto re´una todos los requisitos acad´emicos y cumpla el prop´osito para el cual fue creado, y sirva de apoyo para futuros proyectos en la Uni- versidad Javeriana relacionados con la materia. Atentamente, GERARDO MAURICIO SARRIA JOSE FERNANDO DIAGO ARTICULO 23 de la Resoluci´on No 13 del 6 de Julio de 1946 del Reglamento de la Pontificia Universidad Javeriana. “La Universidad no se hace responsable por los conceptos emitidos por sus alumnos en sus trabajos de Tesis. S´olo velar´aporque no se publique nada contrario al dogma y a la moral Cat´olica y porque las Tesis no contengan ataques o pol´emicas puramente personales; antes bien, se vea en ellas el anhelo de buscar la Verdad y la Justicia” Nota de Aceptaci´on: Aprobado por el comit´ede Trabajo de Grado en cumplimiento de los requisitos exigidos por la Pontificia Universidad Javeriana para optar al t´ıtulo de Ingeniero de Sistemas y Computaci´on. ANDRES´ JARAMILLO BOTERO Decano Acad´emico de la Facultad de Ingenier´ıa CAMILO RUEDA CAMILO RUEDA Director de la Carrera de Ingenier´ıa Director de Tesis de Sistemas y Computaci´on GABRIEL TAMURA ANTAL BUSS Jurado Jurado Gerardo Mauricio Sarria A Jose y a m´ı, por seguir juntos desde Preescolar. Jose Fernando Diago A Gerardo, Llanos, Vacca, Javier y Carlitos, por mostrarme lo que puedo ser. Agradecimientos Los autores expresan sus agradecimientos: A Camilo Rueda, profesor y director de la carrera de Ingenier´ıa de Sistemas y Computaci´on de la Universidad Javeriana, director del proyecto, por su valioso apoyo y conocimiento brindado durante la realizaci´on del trabajo. A Carlos Agon, uno de los creadores de OpenMusic, por su ayuda incondicional desde Francia. A Antal Buss, profesor de la carrera de Ingenier´ıa de Sistemas y Computaci´on de la Universidad Javeriana, por sus ideas y consejos durante la implantaci´on del c´odigo. A Espen S. Johnsen, creador de CLG, por sus completas explicaciones acerca del manejo de la librer´ıa Gtk+ en Lisp. A Pierre R. Mai, desarrollador de CMUCL, por su orientaci´on en momentos cr´ıticos. Al Grupo Avispa. A todas aquellas personas que de una u otra forma colaboraron en la realizaci´on del presente trabajo. ´Indice general ´Indice de figuras V ´Indice de Anexos VII Introducci´on IX 1. Consideraciones Generales 1 1.1. CommonLisp............................... 1 1.1.1. Clase................................ 2 1.1.2. Instancia.............................. 2 1.1.3. Funci´onGen´erica . 3 1.1.4. M´etodo .............................. 4 1.1.5. Metaclase ............................. 4 1.2. MacOS................................... 5 1.3. Linux ................................... 7 2. OpenMusic 8 2.1. Organizaci´on de Clases de OpenMusic . .. 9 2.2. Metaclases................................. 10 ii 2.3. Workspace................................. 11 2.4. Patches .................................. 12 2.5. Maquettes................................. 14 2.6. Packages.................................. 14 3. Macintosh Common Lisp 17 3.1. Puntos................................... 17 3.2. VistasyVentanas............................. 18 3.3. Di´alogos .................................. 19 3.4. Men´us ................................... 20 3.5. Eventos .................................. 21 3.6. Recursos.................................. 22 4. Herramientas de Desarrollo en Linux 24 4.1. Compilador ................................ 24 4.1.1. CMUCL.............................. 26 4.2. Librer´ıaparaInterfazGr´afica . ... 27 4.2.1. CommonLispGtk+ . .. .. 31 5. Dise˜no de OM Linux 39 5.1. Resultados de la exploraci´on del c´odigo . ...... 39 5.2. Esquemas de implementaci´on por bloques . ... 40 5.2.1. OMANSI ............................. 40 5.2.2. OMNOANSI........................... 40 5.2.3. OM100%MCL.......................... 41 iii 5.2.4. OMParteGr´afica. 41 6. Detalles de Implantaci´on 42 6.1. ClasesyMetaclases............................ 42 6.2. C´odigoMCL................................ 51 6.2.1. Puntos............................... 51 6.2.2. FinderComment ......................... 52 6.2.3. TiposdeArchivos. 54 6.2.4. Recursos.............................. 55 6.2.5. OtrasFunciones. 56 6.3. Gr´aficos .................................. 57 6.3.1. VistasyVentanas. 59 6.3.2. Di´alogos .............................. 62 6.3.3. Men´us ............................... 62 6.4. Eventos .................................. 64 6.5. DragandDrop .............................. 65 6.6. Implementaci´on de V´ınculos . .. 67 7. Conclusiones 71 8. Recomendaciones 73 Bibliograf´ıa 74 ANEXOS 76 iv ´Indice de figuras 1.1. Representaci´on de Clases y Herencia. .... 3 1.2. Representaci´on de Instancias. ... 3 1.3. Representaci´on de Metaclases. ... 5 2.1. EstructuradeOpenMusic. 8 2.2. Herencia de Clases Principales de OpenMusic . .... 9 2.3. Herencia de Clases Gr´aficas de OpenMusic . ... 10 2.4. Workspace................................. 12 2.5. Patch ................................... 13 2.6. Packages.................................. 15 3.1. Herencia de Clases Gr´aficas de MCL . 19 3.2. Divisi´ondelosarchivosenMacOS . 22 4.1. GtkWindow-GtkVBox . .. .. 34 4.2. GtkMenuBar-GtkMenuItem . 35 4.3. GtkMenu-GtkMenuItem . 35 4.4. GtkWindow - GtkScrolledWindow - GtkLayout . .. 36 4.5. GtkPixmap-GtkLabel. 37 v 4.6. GtkEntry-GtkText-GtkButton . 38 5.1. Detalle de los bloques de implementaci´on del porte de OM ...... 40 6.1. Problema de incompatibilidad de metaclases. ...... 44 6.2. Problema de OMGenericFunction. 45 6.3. Primera soluci´on del problema de OMGenericFunction. ........ 46 6.4. Soluci´on final del problema de OMGenericFunction. ....... 48 6.5. ProblemadeOMMethod. 49 6.6. Soluci´on del problema de OMMethod. .. 49 vi ´Indice de Anexos Anexo A. Manejo de OpenMusic en Linux . 76 AnexoC.Metodolog´ıa . .. .. .. 79 Anexo C. Comunicaci´on con Pierre R. Mai, v´ıa E-mail . ..... 84 Anexo D. General Public Licence - GPL . 93 vii Resumen En este documento se pretende mostrar los detalles de la Implantaci´on del Kernel de OpenMusic bajo Linux, siguiendo una metodolog´ıa propuesta por los autores; la implantaci´on en este caso hace referencia al porte de una aplicaci´on originalmente desarrollada en MacOS. Se da inicio al porte familiariz´andose con la aplicaci´on en MacOS, como lo har´ıa cualquier otro usuario pero prestando particular atenci´on en los detalles que m´as adelante ser´an decisivos en la implementaci´on. A continuaci´on se explora el c´odigo y se procede a escoger las herramientas de desarrollo. Las herramientas de desarrollo escogidas son CMUCL, un compilador de Lisp para Unix que ha sido desarrollado durante m´as de una d´ecada en el De- partamento de Ciencias de la Computaci´on de la Universidad Carnegie Mellon, y GTK+ para la interfaz gr´afica de la aplicaci´on. Contando con las herramientas de desarrollo adecuadas se dise˜naron e implementaron los m´odulos de la aplicaci´on (tanto en su parte gr´afica como en su parte operativa) en Linux y se llevaron a cabo las pruebas pertinentes para constatar que el porte de la aplicaci´on presenta las mismas caracter´ısticas y funcionalidad que la aplicaci´on original. Introducci´on La Implantaci´on del Kernel de OpenMusic bajo Linux hace referencia en este proyec- to al porte de la aplicaci´on de la plataforma original (MacOS) a una nueva plataforma (Linux). Al Portar un programa de una plataforma inform´atica a otra se pretende proveer a los usuarios de la plataforma destino con una herramienta lo m´as parecida posible, en aspecto y funcionalidad, a la herramienta original. Dependiendo del lenguaje en el que se encuentre escrito el programa original, el compilador usado, la portabilidad que ofrezcan el lenguaje y el compilador mismo, las librer´ıas usadas y el uso de recursos dependientes de la plataforma, suele ser necesario en algunos casos una casi completa re-escritura del c´odigo del programa. En el caso del porte de Open Music se hizo necesario reescribir una buena parte del c´odigo, tratando siempre de preservar y respetar la estructura original del programa. La plataforma de origen involucrada (MacOS) provee al programador de muchos recursos suficientemente poderosos y bastante simples de usar pero totalmente
Recommended publications
  • Apple Software Design Guidelines
    Apple Software Design Guidelines May 27, 2004 Java and all Java-based trademarks are Apple Computer, Inc. trademarks or registered trademarks of Sun © 2004 Apple Computer, Inc. Microsystems, Inc. in the U.S. and other All rights reserved. countries. OpenGL is a trademark of Silicon Graphics, No part of this publication may be Inc. reproduced, stored in a retrieval system, or transmitted, in any form or by any means, PowerPC and and the PowerPC logo are mechanical, electronic, photocopying, trademarks of International Business recording, or otherwise, without prior Machines Corporation, used under license written permission of Apple Computer, Inc., therefrom. with the following exceptions: Any person Simultaneously published in the United is hereby authorized to store documentation States and Canada. on a single computer for personal use only Even though Apple has reviewed this manual, and to print copies of documentation for APPLE MAKES NO WARRANTY OR personal use provided that the REPRESENTATION, EITHER EXPRESS OR IMPLIED, WITH RESPECT TO THIS MANUAL, documentation contains Apple's copyright ITS QUALITY, ACCURACY, notice. MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. AS A RESULT, THIS The Apple logo is a trademark of Apple MANUAL IS SOLD ªAS IS,º AND YOU, THE PURCHASER, ARE ASSUMING THE ENTIRE Computer, Inc. RISK AS TO ITS QUALITY AND ACCURACY. Use of the ªkeyboardº Apple logo IN NO EVENT WILL APPLE BE LIABLE FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, (Option-Shift-K) for commercial purposes OR CONSEQUENTIAL DAMAGES without the prior written consent of Apple RESULTING FROM ANY DEFECT OR may constitute trademark infringement and INACCURACY IN THIS MANUAL, even if advised of the possibility of such damages.
    [Show full text]
  • Objects, Time and Constraints in Openmusic
    OBJECTS, TIME AND CONSTRAINTS IN OPENMUSIC Carlos Agon, Gérard Assayag, Olivier Delerue, Camilo Rueda. {agonc,assayag,delerue,crueda}@ircam.fr IRCAM - 1 Pl. Stravinsky. F-75004 Paris, France. 1. Abstract OpenMusic is a object oriented visual programming environment for music composers. It is based on Macintosh CommonLisp and Common Lisp Object System. It shows several original features, such as reflexivity, metaprogrammation capacities, handling of the duality between musical time and computational time, and provides with a framework of predefined musical objects for handling sound, midi and musical notation. Common Music Notation in OpenMusic is an extension of CMN, a public domain notation package by Bill Schottstaedt [SCO98]. 2. Objects 2.1. Underlying Object Model. Broadly speaking, basic calculus for object-oriented programming inherited the approach imposed by the precursory language Simula and its followers. The tentatives to formalize this family of object models used the concepts of parametric polymorphism or true polymorphism [CaWe85]. More recently, languages based on multiple-dispatching (methods that dispatch on a product of types rather than a single type) such as CLOS [Steel90] were also formalized [Cast98], using concepts of overloading or ad-hoc polymorphism. As OpenMusic, based on CLOS, may very well be formally described in this way, we will give here a brief summary of the λ&− calculus used by [Cast98]. We restrain to the extension of λ−calculus by the concept of generic functions which is at the base of λ&−calculus. A generic function is simply a collection of simple functions (λ−abstractions), which we will call methods. We must also distinguish the simple application indicated by «.» from the application of generic functions indicated by the operator .
    [Show full text]
  • Processing Sound and Music Description Data Using Openmusic
    PROCESSING SOUND AND MUSIC DESCRIPTION DATA USING OPENMUSIC Jean Bresson, Carlos Agon IRCAM – CNRS UMR STMS Paris, France fbresson,[email protected] ABSTRACT graphs corresponding to functional expressions. The lan- guage provides a set of graphical control structures, such as This paper deals with the processing and manipulation of iterations and conditional controls, as well as the possibility music and sound description data using functional programs to carry out other programming concepts like abstraction, in the OpenMusic visual programming environment. We go higher-order functions or recursion [4]. through several general features and present some toolkits OM includes specialized functions and data structures created in this environment for the manipulation of different designed for musical applications. The different musical or data formats (audio, MIDI, SDIF). extra-musical objects are represented by classes (as meant by object-oriented programming) and used in the visual 1. INTRODUCTION programs by means of factory boxes, i.e. boxes generating instances of these classes and allowing to access their dif- Musical information processing often requires manipulating ferent attributes (called slots). large musical or sound description data bases. Ordering, Compared to most existing visual programming envi- sorting, renaming files, automatic indexing, contents brows- ronments, OM has the particularity to run a demand-driven ing or transformations are basic operations in compositional, execution model. In this model, the user triggers execution analytical, or other experimental applications. by evaluating a box somewhere in the visual program graph, Visual music programming environments make it possi- which recursively evaluates the upstream connected boxes ble to define specialized and personalized programs and to and returns a value.
    [Show full text]
  • Macaque – a Tool for Spectral Processing and Transcription
    MACAQUE – A TOOL FOR SPECTRAL PROCESSING AND TRANSCRIPTION Georg Hajdu Center for Microtonal Music and Multimedia (ZM4) Hamburg University of Music and Theater (HfMT) Harvestehuder Weg 12 20148 Hamburg [email protected] ABSTRACT act of my opera Der Sprung – Beschreibung einer Oper [7] I used the MIDI velocity information of the transcribed note This paper describes Macaque, a tool for spectral process- events to alter the size of their note heads so that the sight- ing and transcription, in development since 1996. Macaque reading musicians had instantaneous visual feedback per- was programmed in Max and, in 2013, embedded into the taining to the dynamics of the music to be performed. In MaxScore ecosystem. Its GUI offers several choices for the other instances, I have used a technique called “velocoding” processing and transcription of SDIF partial-track files into to encode microtonal pitch deviation in eighth-tone resolu- standard music notation. At the core of partial-track tran- tion into the velocity part of a MIDI note-on message to scription is an algorithm capable of “attracting” partial modify the Enigma file in such ways that the resulting score tracks (and fragments thereof) into single staves, thereby displayed the corresponding pitch alterations. Another early performing an important aspect of “spectral orchestration.” example of using Macaque is my piece Herzstück for two player pianos from 1999 which premiered at the Cologne 1. INTRODUCTION Triennale in 2000. This piece was written for two of Jürgen Hocker’s instruments which he also used to tour Conlon Macaque is a component of the MaxScore notation soft- Nancarrow’s compositions for player piano [8].
    [Show full text]
  • Composição Assistida Por Computador: – Escolha De Estrutura Musical , Partes Computador • P.Ex
    Composição não é Edição de Partituras • Ex: Musescore Computação Musical http://www.musescore.org/en Composição Assistida por • Composição Assistida por Computador: – Escolha de estrutura musical , partes Computador • p.ex. Concerto (3 movm: 'allegro-adagio-allegro') – Escolha de ritmos Prof. Marcelo Soares Pimenta – Escolha de sons, timbres, notas e sua serialização (melodia) e verticalização (harmonia, acordes) [email protected] – Edição, (re)arranjo, (re)organização, experimentação (audição) 2 Porto Alegre , 2009-2 Foundations of CAC Foundations of CAC the concept of Compositional Modeling Otto Laske, Composition Theory in Koenig's Project One and Project Two . Computer Music Journal (1981): Study, simulation, explicitation of an object (concept, concrete object, phenomenon, situation, "We may view composer-program interaction along a trajectory leading from purely manual etc.) control to control exercised by some compositional algorithm (composing machine). The zone "Modeling aims at gathering in a common coherent discourse a number of experiences and of greatest interest for composition theory is the midd le zone of the trajectory, since it allow a observations related by a means which is to determine during the modeling process itself" D. Berthier. Le great flexibility of approach. The powers of intuition and machine computation may be savoir et l’ordinateur combined." (2002) . Jean-Claude Risset, Musique, un calcul secret ? (1977) Computer model => abstract representation focusing on particular ⇒ The musician must be able to communicate with the computer in order to control and aspects of an object and supporting effective expermients and organize the details and global aspects of his musical works, and eventually to build his own operations on this object musical universe in it.
    [Show full text]
  • Comprehensive Support for Developing Graphical Highly
    AN ABSTRACT OF THE THESIS OF J-Iuan -Chao Keh for the degree of Doctor of Philosophy in Computer Science presented on July 29. 1991 Title:Comprehensive Support for Developing Graphical. Highly Interactive User Interface Systems A Redacted for Privacy Abstract approved: ed G. Lewis The general problem of application development of interactive GUI applications has been addressed by toolkits, libraries, user interface management systems, and more recently domain-specific application frameworks. However, the most sophisticated solution offered by frameworks still lacks a number of features which are addressed by this research: 1) limited functionality -- the framework does little to help the developer implement the application's functionality. 2) weak model of the application -- the framework does not incorporate a strong model of the overall architecture of the application program. 3) representation of control sequences is difficult to understand, edit, and reuse -- higher-level, direct-manipulation tools are needed. We address these problems with a new framework design calledOregon Speedcode Universe version 3.0 (OSU v3.0) which is shown, by demonstration,to overcome the limitations above: 1) functionality is provided by a rich set of built-in functions organizedas a class hierarchy, 2) a strong model is provided by OSU v3.0 in the form ofa modified MVC paradigm, and a Petri net based sequencing language which together form the architectural structure of all applications produced by OSU v3.0. 3) representation of control sequences is easily constructed within OSU v3.0 using a Petri net editor, and other direct manipulation tools builton top of the framework. In ddition: 1) applications developed in OSU v3.0 are partially portable because the framework can be moved to another platform, and applicationsare dependent on the class hierarchy of OSU v3.0 rather than the operating system of a particular platform, 2) the functionality of OSU v3.0 is extendable through addition of classes, subclassing, and overriding of existing methods.
    [Show full text]
  • LISP in Max: Exploratory Computer-Aided Composition in Real-Time
    LISP in Max: Exploratory Computer-Aided Composition in Real-Time Julien Vincenot Composer, PhD candidate Harvard University [email protected] ABSTRACT The author describes a strategy to implement Common Lisp applications for computer-aided composition within Max, to enrich the possibilities offered by the bach library. In parallel, a broader discussion is opened on the current state of the discipline, and some applications are presented. 1. 1. INTRODUCTION Computer-aided composition (CAC), as we know it, has been around for decades. Following the pioneers of algo- rithmic music, the emergence of the first relevant graphi- cal interfaces allowed the discipline to expand in several directions. CAC exists today under a variety of forms, languages and tools available to composers. This tendency has crystallized around visual program- ming environments such as OpenMusic (OM) and PWGL, both derived from the program PatchWork (or PW) developed by Mikael Laurson since the late 1980s [5]. A Figure 1. A Score object in PWGL and specificity of this family of programs, but also many its inner representation as a Lisp linked-list or tree. others since then1, is that they were all built on top of the same language: Common Lisp2. dedicated to traditional notation, concern a small popula- Since the early days of artificial intelligence, Lisp has tion of musicians. always been considered a special language, and its Nevertheless, we can observe today a real interest in popularity is quite uneven among professional program- renewing those paradigms. The discipline of CAC is mers. However, the interest among musicians never com- going through a phase of transition, with the emergence pletely declined.
    [Show full text]
  • 2016-Program-Book-Corrected.Pdf
    A flagship project of the New York Philharmonic, the NY PHIL BIENNIAL is a wide-ranging exploration of today’s music that brings together an international roster of composers, performers, and curatorial voices for concerts presented both on the Lincoln Center campus and with partners in venues throughout the city. The second NY PHIL BIENNIAL, taking place May 23–June 11, 2016, features diverse programs — ranging from solo works and a chamber opera to large scale symphonies — by more than 100 composers, more than half of whom are American; presents some of the country’s top music schools and youth choruses; and expands to more New York City neighborhoods. A range of events and activities has been created to engender an ongoing dialogue among artists, composers, and audience members. Partners in the 2016 NY PHIL BIENNIAL include National Sawdust; 92nd Street Y; Aspen Music Festival and School; Interlochen Center for the Arts; League of Composers/ISCM; Lincoln Center for the Performing Arts; LUCERNE FESTIVAL; MetLiveArts; New York City Electroacoustic Music Festival; Whitney Museum of American Art; WQXR’s Q2 Music; and Yale School of Music. Major support for the NY PHIL BIENNIAL is provided by The Andrew W. Mellon Foundation, The Fan Fox and Leslie R. Samuels Foundation, and The Francis Goelet Fund. Additional funding is provided by the Howard Gilman Foundation and Honey M. Kurtz. NEW YORK CITY ELECTROACOUSTIC MUSIC FESTIVAL __ JUNE 5-7, 2016 JUNE 13-19, 2016 __ www.nycemf.org CONTENTS ACKNOWLEDGEMENTS 4 DIRECTOR’S WELCOME 5 LOCATIONS 5 FESTIVAL SCHEDULE 7 COMMITTEE & STAFF 10 PROGRAMS AND NOTES 11 INSTALLATIONS 88 PRESENTATIONS 90 COMPOSERS 92 PERFORMERS 141 ACKNOWLEDGEMENTS THE NEW YORK PHILHARMONIC ORCHESTRA THE AMPHION FOUNDATION DIRECTOR’S LOCATIONS WELCOME NATIONAL SAWDUST 80 North Sixth Street Brooklyn, NY 11249 Welcome to NYCEMF 2016! Corner of Sixth Street and Wythe Avenue.
    [Show full text]
  • 51. Graphical User Interface Programming
    Brad A. Myers Graphical User Interface Programming - 1 51. Graphical User Interface Programming Brad A. Myers* Human Computer Interaction Institute Carnegie Mellon University 5000 Forbes Avenue Pittsburgh, PA 15213 [email protected] http://www.cs.cmu.edu/~bam (412) 268-5150 FAX: (412) 268-1266 *This paper is revised from an earlier version that appeared as: Brad A. Myers. “User Interface Software Tools,” ACM Transactions on Computer-Human Interaction. vol. 2, no. 1, March, 1995. pp. 64-103. Draft of: January 27, 2003 To appear in: CRC HANDBOOK OF COMPUTER SCIENCE AND ENGINEERING – 2nd Edition, 2003. Allen B. Tucker, Editor-in-chief Brad A. Myers Graphical User Interface Programming - 2 51.1. Introduction Almost as long as there have been user interfaces, there have been special software systems and tools to help design and implement the user interface software. Many of these tools have demonstrated significant productivity gains for programmers, and have become important commercial products. Others have proven less successful at supporting the kinds of user interfaces people want to build. Virtually all applications today are built using some form of user interface tool [Myers 2000]. User interface (UI) software is often large, complex and difficult to implement, debug, and modify. As interfaces become easier to use, they become harder to create [Myers 1994]. Today, direct manipulation interfaces (also called “GUIs” for Graphical User Interfaces) are almost universal. These interfaces require that the programmer deal with elaborate graphics, multiple ways for giving the same command, multiple asynchronous input devices (usually a keyboard and a pointing device such as a mouse), a “mode free” interface where the user can give any command at virtually any time, and rapid “semantic feedback” where determining the appropriate response to user actions requires specialized information about the objects in the program.
    [Show full text]
  • Gsharp, Un Éditeur De Partitions De Musique Interactif Et Personnalisable
    Gsharp, un éditeur de partitions de musique interactif et personnalisable Christophe Rhodes* — Robert Strandh** * Department of Computing Goldsmiths, University of London London SE14 6NW United Kingdom [email protected] ** LaBRI, Université Bordeaux 1 351, Cours de la libération 33405 Talence Cedex France [email protected] RÉSUMÉ. Dans cet article, nous présentons Gsharp, un projet dont le but est la création d’un éditeur de partitions de musique traditionnelles. Le logiciel Gsharp est écrit en Common Lisp et utilise CLIM (Common Lisp Interface Manager) comme bibliothèque pour l’interaction avec l’utilisateur. De nombreux algorithmes et structures de données ont été inventés afin d’assurer un performance acceptable pour de simples interactions comme l’insertion ou la suppression d’une note ou d’un accord. ABSTRACT. In this article, we present Gsharp, a project with the purpose of creating an editor for traditional music scores. Gsharp is written in Common Lisp, and uses the CLIM (Common Lisp Interface Manager) library for interactions with the user. Several new algorithms and data structures were invented in order to ensure acceptable performance for simple interactions such as inserting or deleting a note or a chord. MOTS-CLÉS : édition de partitions, Common Lisp, CLIM, personnalisation, logiciels interactif KEYWORDS: score editing, Common Lisp, CLIM, customization, interactive software DN – 11/2008. Documents musicaux, pages 9 à 28 10 DN – 11/2008. Documents musicaux 1. Introduction Gsharp est un projet dont le but est la création d’un éditeur de partitions de mu- sique. Il s’agit d’un logiciel interactif dans le sens qu’après chaque action de la part de l’utilisateur, le résultat final de la mise en page est visible.
    [Show full text]
  • Comparative Studies of 10 Programming Languages Within 10 Diverse Criteria Revision 1.0
    Comparative Studies of 10 Programming Languages within 10 Diverse Criteria Revision 1.0 Rana Naim∗ Mohammad Fahim Nizam† Concordia University Montreal, Concordia University Montreal, Quebec, Canada Quebec, Canada [email protected] [email protected] Sheetal Hanamasagar‡ Jalal Noureddine§ Concordia University Montreal, Concordia University Montreal, Quebec, Canada Quebec, Canada [email protected] [email protected] Marinela Miladinova¶ Concordia University Montreal, Quebec, Canada [email protected] Abstract This is a survey on the programming languages: C++, JavaScript, AspectJ, C#, Haskell, Java, PHP, Scala, Scheme, and BPEL. Our survey work involves a comparative study of these ten programming languages with respect to the following criteria: secure programming practices, web application development, web service composition, OOP-based abstractions, reflection, aspect orientation, functional programming, declarative programming, batch scripting, and UI prototyping. We study these languages in the context of the above mentioned criteria and the level of support they provide for each one of them. Keywords: programming languages, programming paradigms, language features, language design and implementation 1 Introduction Choosing the best language that would satisfy all requirements for the given problem domain can be a difficult task. Some languages are better suited for specific applications than others. In order to select the proper one for the specific problem domain, one has to know what features it provides to support the requirements. Different languages support different paradigms, provide different abstractions, and have different levels of expressive power. Some are better suited to express algorithms and others are targeting the non-technical users. The question is then what is the best tool for a particular problem.
    [Show full text]
  • Compositional and Analytic Applications of Automated Music Notation Via Object-Oriented Programming
    UC San Diego UC San Diego Electronic Theses and Dissertations Title Compositional and analytic applications of automated music notation via object-oriented programming Permalink https://escholarship.org/uc/item/3kk9b4rv Author Trevino, Jeffrey Robert Publication Date 2013 Peer reviewed|Thesis/dissertation eScholarship.org Powered by the California Digital Library University of California UNIVERSITY OF CALIFORNIA, SAN DIEGO Compositional and Analytic Applications of Automated Music Notation via Object-oriented Programming A dissertation submitted in partial satisfaction of the requirements for the degree Doctor of Philosophy in Music by Jeffrey Robert Trevino Committee in charge: Professor Rand Steiger, Chair Professor Amy Alexander Professor Charles Curtis Professor Sheldon Nodelman Professor Miller Puckette 2013 Copyright Jeffrey Robert Trevino, 2013 All rights reserved. The dissertation of Jeffrey Robert Trevino is approved, and it is acceptable in quality and form for publication on mi- crofilm and electronically: Chair University of California, San Diego 2013 iii DEDICATION To Mom and Dad. iv EPIGRAPH Extraordinary aesthetic success based on extraordinary technology is a cruel deceit. —-Iannis Xenakis v TABLE OF CONTENTS Signature Page .................................... iii Dedication ...................................... iv Epigraph ....................................... v Table of Contents................................... vi List of Figures .................................... ix Acknowledgements ................................. xii Vita .......................................... xiii Abstract of the Dissertation . xiv Chapter 1 A Contextualized History of Object-oriented Musical Notation . 1 1.1 What is Object-oriented Programming (OOP)? . 1 1.1.1 Elements of OOP . 1 1.1.2 ANosebleed History of OOP. 6 1.2 Object-oriented Notation for Composers . 12 1.2.1 Composition as Notation . 12 1.2.2 Generative Task as an Analytic Framework . 13 1.2.3 Computational Models of Music/Composition .
    [Show full text]