Aalborg Universitet Real-Time Control of Large-Scale Modular Physical

Total Page:16

File Type:pdf, Size:1020Kb

Aalborg Universitet Real-Time Control of Large-Scale Modular Physical Aalborg Universitet Real-Time Control of Large-Scale Modular Physical Models using the Sensel Morph Willemsen, Silvin; Andersson, Nikolaj Schwab; Serafin, Stefania; Bilbao, Stefan Published in: Proceedings of the 16th Sound and Music Computing Conference DOI (link to publication from Publisher): 10.5281/zenodo.3249295 Creative Commons License CC BY 3.0 Publication date: 2019 Document Version Accepted author manuscript, peer reviewed version Link to publication from Aalborg University Citation for published version (APA): Willemsen, S., Andersson, N. S., Serafin, S., & Bilbao, S. (2019). Real-Time Control of Large-Scale Modular Physical Models using the Sensel Morph. In I. Barbancho, L. J. Tardón, A. Peinado, & A. M. Barbancho (Eds.), Proceedings of the 16th Sound and Music Computing Conference (pp. 151-158). Sound and Music Computing Network. Proceedings of the Sound and Music Computing Conference https://doi.org/10.5281/zenodo.3249295 General rights Copyright and moral rights for the publications made accessible in the public portal are retained by the authors and/or other copyright owners and it is a condition of accessing publications that users recognise and abide by the legal requirements associated with these rights. ? Users may download and print one copy of any publication from the public portal for the purpose of private study or research. ? You may not further distribute the material or use it for any profit-making activity or commercial gain ? You may freely distribute the URL identifying the publication in the public portal ? Take down policy If you believe that this document breaches copyright please contact us at [email protected] providing details, and we will remove access to the work immediately and investigate your claim. Downloaded from vbn.aau.dk on: November 24, 2020 REAL-TIME CONTROL OF LARGE-SCALE MODULAR PHYSICAL MODELS USING THE SENSEL MORPH Silvin Willemsen, Nikolaj Andersson, Stefania Serafin Stefan Bilbao Multisensory Experience Lab, CREATE, Acoustics and Audio Group Aalborg University Copenhagen University of Edinburgh Copenhagen, Denmark Edinburgh, UK fsil, nsa, [email protected] [email protected] ABSTRACT standard computing power is now approaching a level suit- able for real-time performance for simpler systems. In this paper, implementation, instrument design and con- We are interested in bridging the gap between large-scale trol issues surrounding a modular physical modelling syn- modular physical modelling synthesis and sonic interac- thesis environment are described. The environment is con- tion design [16], to be able to play with such simulations structed as a network of stiff strings and a resonant plate, in real-time. Specifically, we are interested in using the accompanied by user-defined connections and excitation expressivity of the Sensel Morph [17] to control our simu- models. The bow, in particular, is a novel feature in this lations, using both percussive and bowing excitations. Our setting. The system as a whole is simulated using finite ultimate goal is to create models that are both mathemat- difference (FD) methods. The mathematical formulation ically accurate and efficient. This goal is nowadays pos- of these models is presented, alongside several new instru- sible thanks to improvements in hardware and software ment designs, together with a real-time implementation in technologies for sound synthesis, yet it has rarely been JUCE using FD methods. Control is through the Sensel achieved. The ultimate goal is to provide a modular ef- Morph. ficient synthesizer based on accurate simulations, where real-time expressivity can also be achieved. This synthe- sizer has already been informally evaluated by composers 1. INTRODUCTION and sound designers, who appreciated the current sonic Physical models for sound synthesis have been researched palette. for several decades to mathematically simulate the sonic This paper is structured as follows: Section2 describes behaviour of musical instruments and everyday sounds. Var- the physical models used in the implementation and Sec- ious techniques and methodologies have developed, rang- tion3 shows a general description of the FD methods used ing from mass-spring models [1–3] to modal synthesis [4] to digitally implement these models. Furthermore, Sec- and waveguide based models [5]. The latter two techniques tion4 elaborates on the real-time implementation, Sec- may be viewed as numerical simulation techniques applied tion5 shows several different configurations of the physi- to the systems of partial differential equations (PDEs). These cal models inspired by real musical instruments, Section6 equations define the dynamics of a musical instrument, ei- will present the results on CPU usage and evaluation and ther real or imagined. discuss this and finally, in Section7, some concluding re- Mainstream time-domain simulation techniques, such as marks appear. finite difference (FD) methods, were first applied to the case of string vibration by Ruiz [6] and Hiller and Ruiz [7,8], and then later by other authors [9] including, most 2. MODELS notably Chaigne [10] and Chaigne and Askenfelt [11]. The In this section, the PDEs for the damped stiff string and general use of finite-difference schemes (FDSs) in sound plate will be presented. The notation used will be the one synthesis is described in [12]. Modularized physical mod- found in [12] where the subscript for state variable u de- elling sound synthesis, whereby the user may construct a notes a single derivative with respect to time t or space x virtual instrument using basic canonical components dates respectively. Furthermore, to simplify the presented phys- back to the work of Cadoz and collaborators [1–3]. It ical models, non-dimensionalization (or scaling) will be has been also used as a design principle in the context of used [12]. FD methods [13–15], where the canonical elements are strings and plates, with a non-linear connection mecha- nism. Though computational cost of such methods is high, 2.1 Stiff string A basic model of the linear transverse motion of a string of Copyright: © 2019 Silvin Willemsen et al. This is an open-access article distributed circular cross section may be described in terms of several under the terms of the Creative Commons Attribution 3.0 Unported License, which parameters: the total length L (in m), the material density ρ permits unrestricted use, distribution, and reproduction in any medium, provided (in kg·m−3), string radius r (in m), Young’s modulus E (in the original author and source are credited. Pa), tension T (in N), and two loss parameters σ0 and σ1. The PDE for a damped stiff string may be written as [12] The stiffness parameter κ, with dimensions of s−1, is de- q 2 2 3 2 2 2 fined by κ = D/ρHLxLy where D = EH =12 1 − ν . utt = γ uxx − κ uxxxx − 2σ0ut + 2σ1utxx: (1) As in the case of the stiff string, we chose to use clamped In this representation, spatial scaling has been employed boundary conditions: using a length L, so the solution u = u(x; t) is defined for t ≥ 0 and for dimensionless coordinate x 2 [0; 1]. Further- u = n · ru = 0 (8) more, parameters γ = pT/ρπr2L2 and κ = pEr2=4ρL4 over any plate edge with outward normal direction n and and have units s−1. where ru is the gradient of u. In this work, the string is assumed clamped at both ends, so that 2.3 Connections u = ux = 0 where x = f0; 1g: (2) Adding connections between different physical models, fur- A model of a bowed string [12] may be incorporated into ther referred to as elements, adds another term to Equation (1) as (3a), (5) or (6). Assuming that element α is a stiff string utt = ::: − δ(x − xB)FBφ(vrel); with (3a) and β is a plate, the following terms are added to the afore- mentioned equations: vrel = utj(x=xB) − vB; (3b) 2 utt = ::: + Ec,αFα; (9a) where FB = fB=Ms is the excitation function (in m/s ) with externally-supplied bowing force fB = fB(t) (in N) utt = ::: + Ec,βFβ; (9b) 2 and total string mass Ms = ρπr L (in kg). The relative ve- with force-functions Fα = Fα(t) and Fβ = Fβ(t) (in locity vrel is defined as the difference between the velocity 2 of the string at bowing point x and the externally-supplied m/s ) and distribution functions Ec,α and Ec,β which have B chosen to be highly localised in our application and reduce bowing velocity vB = vB(t) (in m/s) and φ is a dimension- less friction characteristic, chosen here as [12] to δ(x − xc,α) and δ(x − xc,β; y − yc,β) respectively, but p can be extended to be connection areas [13]. We use the −av2 +1=2 φ(vrel) = 2avrele rel : (4) implementation as presented in [13] where the connection between two elements is a non-linear spring. The forces it Furthermore, δ(x − xB) is a spatial Dirac delta function imposes on the elements it connects are defined as selecting the bowing location x = xB. The single bowing 2 4 3 point can be extended to a bowing area [12]. More detailed Fα = −!0η − !1η − 2σ×η;_ (10a) models of string dynamics, again in a bowed string context, Fβ = −MFα; (10b) have been proposed by Desvages [18]. −1 Another, and more simple way to excite the string is by where !0 and !1 are the linear (in s ) and non-linear (in −1=2 extending Equation (1) to (m·s) ) frequencies of oscillation respectively, σ× is a damping factor (in s−1), M is the mass ratio between the utt = ::: + EeFe (5) two elements and η is the relative displacement between the connected elements at the point of connection (in m). using an externally-supplied distribution function E = e Lastly, the dot above η denotes a derivative with respect to E (x) and excitation function F = F (t).
Recommended publications
  • Institut Für Musikinformatik Und Musikwissenschaft
    Institut für Musikinformatik und Musikwissenschaft Leitung: Prof. Dr. Christoph Seibert Veranstaltungsverzeichnis für das Sommersemester 2021 Stand 9.04.2021 Vorbemerkung: Im Sommersemester 2021 werden Lehrveranstaltungen als Präsenzveranstaltungen, online oder in hybrider Form (Präsenzveranstaltung mit der Möglichkeit auch online teilzunehmen) durchgeführt. Die konkrete Durchführung der Lehrveranstaltung hängt ab von der jeweils aktuellen Corona-Verordnung Studienbetrieb. Darüber hinaus ausschlaggebend sind die Anzahl der Teilnehmerinnen und Teilnehmer, die maximal zulässige Personenzahl im zugewiesenen Raum und inhaltliche Erwägungen. Die vorliegenden Angaben hierzu entsprechen dem aktuellen Planungsstand. Für die weitere Planung ist es notwendig, dass alle, die an einer Lehrveranstaltung teilnehmen möchten, sich bis Mittwoch, 07.04. bei der jeweiligen Dozentin / dem jeweiligen Dozenten per E-Mail anmelden. Geben Sie bitte auch an, wenn Sie aufgrund der Pandemie-Situation nicht an Präsenzveranstaltungen teilnehmen können oder möchten, etwa bei Zugehörigkeit zu einer Risikogruppe. Diese Seite wird in regelmäßigen Abständen aktualisiert, um die Angaben den aktuellen Gegebenheiten anzupassen. Änderungen gegenüber früheren Fassungen werden markiert. Musikinformatik Prof. Dr. Marc Bangert ([email protected]) Prof. Dr. Paulo Ferreira-Lopes ([email protected]) Prof. Dr. Eckhard Kahle ([email protected]) Prof. Dr. Christian Langen ([email protected]) Prof. Dr. Damon T. Lee ([email protected]) Prof. Dr. Marlon Schumacher ([email protected]) Prof. Dr. Christoph Seibert ([email protected]) Prof. Dr. Heiko Wandler ([email protected]) Tobias Bachmann ([email protected]) Patrick Borgeat ([email protected]) Anna Czepiel ([email protected]) Dirk Handreke ([email protected]) Daniel Höpfner ([email protected]) Daniel Fütterer ([email protected]) Rainer Lorenz ([email protected]) Nils Lemke ([email protected]) Alexander Lunt ([email protected]) Luís A.
    [Show full text]
  • Graphical Design of Physical Models for Real-Time Sound Synthesis
    peter vasil GRAPHICALDESIGNOFPHYSICALMODELSFOR REAL-TIMESOUNDSYNTHESIS Masterarbeit Audiokommunikation und -technologie GRAPHICALDESIGNOFPHYSICALMODELS FORREAL-TIMESOUNDSYNTHESIS Implementation of a Graphical User Interface for the Synth-A-Modeler compiler vorgelegt von peter vasil Matr.-Nr.: 328493 Technische Universität Berlin Fakultät 1: Fachgebiet Audiokommunikation Abgabe: 25. Juli 2013 Peter Vasil: Graphical Design of Physical Models for Real-Time Sound Synthesis, Implementation of a Graphical User Interface for the Synth- A-Modeler compiler, © July 2013 supervisors: Prof. Dr. Stefan Weinzierl Dr. Edgar Berdahl ABSTRACT The goal of this Master of Science thesis in Audio Communication and Technology at Technical University Berlin, is to develop a Graph- ical User Interface (GUI) for the Synth-A-Modeler compiler, a text-based tool for converting physical model specification files into DSP exter- nal modules. The GUI should enable composers, artists and students to use physical modeling intuitively, without having to employ com- plex mathematical equations normally necessary for physical model- ing. The GUI that will be developed in the course of this thesis allows the creation of physical models with graphical objects for physical masses, links, resonators, waveguides, terminations, and audioout objects. In addition, this tool will be used to create a model for an Arabic oud to demonstrate its functionality. ZUSAMMENFASSUNG Das Ziel dieser Master Arbeit am Fachgebiet Audiokommunikation der TU Berlin, ist die Entwicklung einer graphischen Umgebung für die textbasierte Software, Synth-A-Modeler compiler, welche es erlaubt, ein speziell dafür entwickeltes Datei Format für physikalische Mod- elle, in externe DSP Module umzuwandeln. Die Software macht es Komponisten, Künstlern und Studenten möglich, physikalische Modellierung intuitiv zu anzuwenden, ohne die komplexen mathe- matischen Formeln, welche normalerweise für physikalische Model- lierung nötig sind, anwenden zu müssen.
    [Show full text]
  • Audio Software Developer (F/M/X)
    Impulse Audio Lab is an audio company based in the heart of Munich. We are an interdisciplinary team of experts in interactive sound design and audio software development, working on innovative and pioneering projects focused on sound. We are looking for a Software Developer (f/m/x) for innovative audio projects You are passionate about audio and DSP algorithms and want to work on new products and solutions. The combination of audio processing and e-mobility sounds exciting to you. You want to solve complex problems through state-of-the-art software solutions and apply your knowledge and expertise to all aspects of the software development lifecycle. What are you waiting for? These could be your future responsibilities: • Handling complex audio software projects, from conception and architecture to implementation • Working on both client-oriented projects as well as our own growing product portfolio • Development, implementation and optimization of new algorithms for processing and generating audio • Sharing your experiences and knowledge with your colleagues This should be you: • You are educated to degree level or have equivalent experience in relevant fields such as Electrical Engineering, Media Technology or Computer Science • You have multiple years of experience programming audio software in C/C++, using frameworks such as Qt or JUCE and Audio Plug-in APIs • You are a team player and are also comfortable taking responsibility for your own projects • You are able to work collaboratively, from requirements to acceptance and in the corresponding tool landscape (Git, unit testing, build systems, automation, debugging, etc.) This could be a plus: • You have programming experience on embedded architectures (e.g.
    [Show full text]
  • Cross-Platform 1 Cross-Platform
    Cross-platform 1 Cross-platform In computing, cross-platform, or multi-platform, is an attribute conferred to computer software or computing methods and concepts that are implemented and inter-operate on multiple computer platforms.[1] [2] Cross-platform software may be divided into two types; one requires individual building or compilation for each platform that it supports, and the other one can be directly run on any platform without special preparation, e.g., software written in an interpreted language or pre-compiled portable bytecode for which the interpreters or run-time packages are common or standard components of all platforms. For example, a cross-platform application may run on Microsoft Windows on the x86 architecture, Linux on the x86 architecture and Mac OS X on either the PowerPC or x86 based Apple Macintosh systems. A cross-platform application may run on as many as all existing platforms, or on as few as two platforms. Platforms A platform is a combination of hardware and software used to run software applications. A platform can be described simply as an operating system or computer architecture, or it could be the combination of both. Probably the most familiar platform is Microsoft Windows running on the x86 architecture. Other well-known desktop computer platforms include Linux/Unix and Mac OS X (both of which are themselves cross-platform). There are, however, many devices such as cellular telephones that are also effectively computer platforms but less commonly thought about in that way. Application software can be written to depend on the features of a particular platform—either the hardware, operating system, or virtual machine it runs on.
    [Show full text]
  • Grierson, Mick and Fiebrink, Rebecca. 2018. User-Centred Design Actions for Lightweight Evaluation of an Interactive Machine Learning Toolkit
    Bernardo, Francisco; Grierson, Mick and Fiebrink, Rebecca. 2018. User-Centred Design Actions for Lightweight Evaluation of an Interactive Machine Learning Toolkit. Journal of Science and Technology of the Arts (CITARJ), 10(2), ISSN 1646-9798 [Article] (In Press) http://research.gold.ac.uk/23667/ The version presented here may differ from the published, performed or presented work. Please go to the persistent GRO record above for more information. If you believe that any material held in the repository infringes copyright law, please contact the Repository Team at Goldsmiths, University of London via the following email address: [email protected]. The item will be removed from the repository while any claim is being investigated. For more information, please contact the GRO team: [email protected] Journal of Science and Technology of the Arts, Volume 10, No. 2 – Special Issue eNTERFACE’17 User-Centred Design Actions for Lightweight Evaluation of an Interactive Machine Learning Toolkit Francisco Bernardo Mick Grierson Rebecca Fiebrink Department of Computing Department of Computing Department of Computing Goldsmiths, University of London Goldsmiths, University of London Goldsmiths, University of London London SE14 6NW London SE14 6NW London SE14 6NW ----- ----- ----- [email protected] [email protected] [email protected] ----- ----- ----- ABSTRACT KEYWORDS Machine learning offers great potential to developers User-centred Design; Action Research; Interactive and end users in the creative industries. For Machine Learning; Application Programming example, it can support new sensor-based Interfaces; Toolkits; Creative Technology. interactions, procedural content generation and end- user product customisation. However, designing ARTICLE INFO machine learning toolkits for adoption by creative Received: 03 April 2018 developers is still a nascent effort.
    [Show full text]
  • Structural Equation Modeling Analysis of Etiological Factors in Social Anxiety
    Louisiana State University LSU Digital Commons LSU Historical Dissertations and Theses Graduate School 1997 Structural Equation Modeling Analysis of Etiological Factors in Social Anxiety. Michele E. Mccarthy Louisiana State University and Agricultural & Mechanical College Follow this and additional works at: https://digitalcommons.lsu.edu/gradschool_disstheses Recommended Citation Mccarthy, Michele E., "Structural Equation Modeling Analysis of Etiological Factors in Social Anxiety." (1997). LSU Historical Dissertations and Theses. 6505. https://digitalcommons.lsu.edu/gradschool_disstheses/6505 This Dissertation is brought to you for free and open access by the Graduate School at LSU Digital Commons. It has been accepted for inclusion in LSU Historical Dissertations and Theses by an authorized administrator of LSU Digital Commons. For more information, please contact [email protected]. INFORMATION TO USERS This manuscript has been reproduced from the microfilm master. UMI films the text direct^ from the original or copy submitted. Thus, some thesis and dissotation copies are in ^pewriter fiice; while others may be from aty type o f computer printer. The qnalltyr o f this rqirodnction is dependent npon the quality of the copy submitted. Broken or indistinct print, colored or poor quality illustrations and photogrtqihs, print bleedthrough, substandard margins, and improper alignment can adversely aflfect rq>roduction. In the unlikely event that the author did not send UMI a complete manuscript and there are missing pages, these will be noted. Also, if unauthorized copyright material had to be removed, a note will indicate the deletioiL Oversize materials (e g., maps, drawings, charts) are reproduced by sectioning the original, b%inning at the upper left-hand comer and continuing from left to right in equal sections with small overiaps.
    [Show full text]
  • A Standard Audio API for C++: Motivation, Scope, and Basic Design
    A Standard Audio API for C++: Motivation, Scope, and Basic Design Guy Somberg ([email protected]) ​ Guy Davidson ([email protected]) ​ Timur Doumler ([email protected]) ​ Document #: P1386R2 Date: 2019-06-17 Project: Programming Language C++ Audience: SG13, LEWG “C++ is there to deal with hardware at a low level, and to abstract away from it with zero overhead.” – Bjarne Stroustrup, Cpp.chat Episode #441 Abstract This paper proposes to add a low-level audio API to the C++ standard library. It allows a C++ program to interact with the machine’s sound card, and provides basic data structures for processing audio data. We argue why such an API is important to have in the standard, why existing solutions are insufficient, and the scope and target audience we envision for it. We provide a brief introduction into the basics of digitally representing and processing audio data, and introduce essential concepts such as audio devices, channels, frames, buffers, and samples. We then describe our proposed design for such an API, as well as examples how to use it. An implementation of the API is available online. Finally, we mention some open questions that will need to be resolved, and discuss additional features that are not yet part of the API as presented but will be added in future papers. 1 See [CppChat]. The relevant quote is at approximately 55:20 in the video. 1 Contents 1 Motivation 3 1.1 Why Does C++ Need Audio? 3 1.2 Audio as a Part of Human Computer Interaction 4 1.3 Why What We Have Today is Insufficient 5 1.4 Why not Boost.Audio?
    [Show full text]
  • Программирование На C++ С JUCE 4.2.X: Создание Кроссплатформенных Мультимедийных Приложений С Использованием Библиотеки JUCE На Простых Примерах
    Программирование на C++ с JUCE 4.2.x: Создание кроссплатформенных мультимедийных приложений с использованием библиотеки JUCE на простых примерах Андрей Николаевич Кузнецов Linmedsoft 2016 2 Информация о книге Кузнецов А. Н. Программирование на C++ с JUCE 4.2.x: Создание кроссплатформенных мультимедийных приложений с использованием библиотеки JUCE на простых примерах. − Алматы: Linmedsoft, 2016. − 384 с.: илл. © А. Н. Кузнецов, 2016 Книга посвящена разработке приложений для Linux, Windows, Mac OS X и iOS на языке C++ с использованием кроссплатформенной библиотеки JUCE версии 4.2.x. Подробно рассмотрены возможности, предоставляемые этой библиотекой, а также практическое применение классов, входящих в её состав, на большом количестве простых, подробно прокомментированных примеров. Книга содержит пошаговую исчерпывающую информацию по созданию приложений JUCE различной степени сложности от простейших до мультимедийных. Все права защищены. Вся книга, а также любая её часть не может быть воспроизведена каким-либо способом без предварительного письменного разрешения автора, за исключением кратких цитат, размещённых в учебных пособиях или журналах. Первая публикация: 2011, издательство «Интуит» Linmedsoft, Алматы E-mail: [email protected] 3 Предисловие Со времени публикации моего онлайн курса «Разработка кроссплатформенных приложений с использованием JUCE», где рассматривались версии 1.5 и 2.0 библиотеки, было внесено значительное число изменений как в код её классов и методов, так и в инструменты, используемые для создания проектов. Автор JUCE, Julian Storer, наконец осуществил своё намерение объединить Introjucer и Jucer в единую среду разработки с возможностью визуального проектирования интерфейса. К сожалению, это привело к тому, что код, написанный для второй версии JUCE, не всегда может компилироваться с третьей версией библиотеки. В этой связи в этой книге были переписаны примеры, использованные в курсе-предшественнике, и добавлено описание работы с обновлённой средой Introjucer / Projucer.
    [Show full text]
  • Laboratoire Sciences Et Technologies De La Musique Et Du Son (STMS) UMR 9912 Le Mot De La Direction
    Laboratoire Sciences et technologies de la musique et du son (STMS) UMR 9912 Le mot de la direction Les activités de recherche accueillies à l’Ircam s’inscrivent dans le cadre de l’unité mixte de recherche (UMR 9912) Sciences et techno- logies de la musique et du son (STMS), associant aux côtés de l’Ircam le CNRS, Sorbonne Université et le ministère de la Culture. Le nouveau contrat quinquennal 2019-2023 vise à répondre à plu- sieurs défis : l’intégration de la recherche artistique dans les struc- tures universitaires et la montée en puissance des thématiques art-science (avec, par exemple, la création des doctorats en arts) ; la restructuration du paysage parisien de la recherche ; la lisibilité et l’accroissement de l’attractivité de l’unité ; l’évolution de l’éco- système d’innovation français et le renouvellement apporté par les nouvelles méthodes de l’intelligence artificielle. L’activité de recherche à STMS est portée par sept équipes et se dis- tribue sur trois axes structurants : l’atelier du son, le corps musicien et les dynamiques créatives. L’UMR s’appuie pour les aspects contractuels et d’innovation sur le département IMR de l’Ircam (Innovation et Moyens de la recherche, sous la responsabilité d’Hugues Vinet) avec en particulier la création par l’Ircam d’un nouvel instrument de valorisation, la filiale Ircam Amplify, qui permettra une diffusion plus large des technologies issues du laboratoire. Enfin, j’ai le plaisir de souligner que depuis le début du contrat quin- quennal, STMS a accueilli 4 nouvelles ERC, ainsi que 4 nouveaux projets ANR, un résultat remarquable qui témoigne de la grande dynamique du laboratoire.
    [Show full text]
  • Ultimate++ Forum
    Subject: JUCE (widgets and library) GNU Public Licence Posted by fudadmin on Sat, 10 Dec 2005 16:41:11 GMT View Forum Message <> Reply to Message http://www.rawmaterialsoftware.com/juce/ Subject: Re: JUCE (widgets and library) GNU Public Licence Posted by captainc on Tue, 26 Dec 2006 15:54:02 GMT View Forum Message <> Reply to Message Has anyone had the change to use JUCE? How is it? Any advantages/disadvantages from U++? Subject: Re: JUCE (widgets and library) GNU Public Licence Posted by forlano on Tue, 26 Dec 2006 18:30:02 GMT View Forum Message <> Reply to Message captainc wrote on Tue, 26 December 2006 16:54Has anyone had the change to use JUCE? How is it? Any advantages/disadvantages from U++? Hello, just one disadvantage that I consider very big: if you do not intend to share your source code you need to pay a license. In U++ does not exist such limitation. Luigi Subject: Re: JUCE (widgets and library) GNU Public Licence Posted by gprentice on Tue, 26 Dec 2006 22:40:47 GMT View Forum Message <> Reply to Message Four pages of review here http://www.regdeveloper.com/2006/12/18/juce_cross_platform/ I just tried the demo. Juce doesn't provide native look and feel which I think is a big disadvantage. Juce source code probably has a few more comments in it than U++ though that doesn't seem to bother people here. I bet it doesn't have assist++ though, which is a classy tool. There's probably other important differences like U++ being database oriented and Juce being audio oriented.
    [Show full text]
  • Immediate Mode Graphical User Interfaces in C++
    Immediate Mode Graphical User Interfaces in C++ Stefano Cristiano R&D Director - Recognition Robotics C++ Day 2017 C++ Day 20172 – Dicembre,Un evento dell’Italian Modena C++ Community ImmediateTitle Text Mode? C++ Day 2017 – Un evento dell’Italian C++ Community RetainedTitle Text Mode C++ Day 2017 – Un evento dell’Italian C++ Community Retained Mode • Inheritance or Composition Hierarchy • Object Oriented • Stateful • Handle input using callbacks • Redraw only changed C++ Day 2017 – Un evento dell’Italian C++ Community Retained Mode Hierarchy juce::MouseListener juce::TooltipClient juce::Component juce::SettableToolTipClient juce::ListBox juce::FileListComponent juce::TableListBox C++ Day 2017 – Un evento dell’Italian C++ Community Retained Mode Hierarchy Object QWidget … QAbstractButton QFrame QProgressBar QAbstractScrollArea QLabel QCheckBox QRadioButton … QPushButton C++ Day 2017 – Un evento dell’Italian C++ Community Retained Mode Object Orientation View TextBox Instance X : … Y: … // During window opening TextBox* textBox = new TextBox(); window->addControl(textBox); // ... // During window closing delete textBox; C++ Day 2017 – Un evento dell’Italian C++ Community Retained Mode Statefulness View Model TextBox Instance Model Instance X : … Y: … //... Text: “12345” Text: “12345” textBox->setName(“Text”); textBox->setText(model->text); //... C++ Day 2017 – Un evento dell’Italian C++ Community Retained Mode Toolkits Prefer Inheritance: Prefer Composition: • Qt Widgets • HTML5 DOM • JUCE • Qt Quick (QML) • Windows Forms • WPF • iOS /
    [Show full text]
  • Juce Tutorial
    Juce Programming Tutorial by haydxn Juce Programming Tutorial Table of Contents Introduction...................................................................................................................................... 3 Chapter 1 - The Starting Point................................................................................ 5 Chapter 2 –Component Basics................................................................................ 7 What is a Component?.......................................................................................................... 7 How can I actually ‘do stuff’ with a Component?.....................................7 How do I add a Component?......................................................................................... 8 Chapter 3 – Listening for Messages............................................................ 14 What are these message classes?.........................................................................14 Where does the Listener go?...................................................................................... 15 What about the other message types?............................................................ 20 Chapter 4 – Painting and Decorating........................................................ 23 Where do I paint my Component?........................................................................23 What is a ‘Graphics’?............................................................................................................24 How big is my Component?..........................................................................................24
    [Show full text]