Developing Csound Plugins with Cabbage
|
|
|
- Elwin Brooks
- 10 years ago
- Views:
Transcription
1 CSOUND CONFERENCE 2011 Developing Csound Plugins with Cabbage Rory Walsh rorywalsh AT ear.ie Introduction In an industry dominated by commercial and closed-source software, audio plugins represent a rare opportunity for developers to extend the functionality of their favourite digital audio workstations, regardless of licensing restrictions. Developers of plugins can concentrate solely on signal processing tasks rather than low-level audio and MIDI communication. The latest version of Cabbage seeks to provide for the first time a truly cross-platform, multi-format Csound-based plugin solution. Cabbage allows users to generate plugins under three major frameworks: the Linux Native VST[1], Virtual Studio Technology (VST) [2], and Apple's Audio Units [3]. Plugins for the three systems can be created using the same code, interchangeably. Cabbage also provides a useful array of GUI widgets so that developers can create their own unique plugin interfaces. When combined with the latest version of WinXound[4] computer musicians have a powerful, fully integrated IDE for audio software development using the Csound programming language. The Csound API The main component of the framework presented here is the Csound 5 library[5], accessed through its API. This is used to start any number of Csound instances through a series of different calling functions. The API provides several mechanisms for two-way communication with an instance of Csound through the use of 'named software' buses. Cabbage accesses the named software bus on the host side through a set of channel functions, notably Csound::setChannel() and Csound::getChannel(). Csound instruments can then read and write data on a named bus using the chnget/chnset opcodes. In general, the host API allows software to control Csound in a very flexible way, without it the system described in this paper would not have been possible. 1. Background Info The ability to run open source audio software in tandem with commercial DAWs is not something new to computer musicians. Systems such as Pluggo[6], PdVST[7] and CsoundVST[8] all provide users with a way to develop audio plugins using open source audio languages. CsoundVST is still available
2 for download but it's anything but a lightweight plugin system. Pluggo and PdVst have been discontinued or are no longer under development. The software presented in this paper may well have been inspired by the systems mentioned above but is in fact an amalgamation of 3 projects that have been rewritten and redesigned in order to take full advantage of today's emerging plugin frameworks. Before looking at Cabbage in its present state it is worth taking a look at the two main projects it is derived from. csladspa / csvst csladspa[9] and csvst[10] are two lightweight audio plugin systems that make use of the Csound API. Both toolkits were developed so that musicians and composers could harness the power of Csound within a host of different DAWs. The concept behind these toolkits is very simple and although each makes use of a different SDK, they were both implemented in the very same way. A basic model of how the plugins work is shown below in fig.1. Figure 1. Architecture of a Csound plugin The host application loads the csladspa or csvst plugin. When the user processes audio the plugin routes the selected audio to an instance of Csound. Csound will then process this audio and return it to the plugin which will then route that audio to the host application. The main drawback to these systems is that they do not provide any tools for developing user interfaces. Both csladspa and csvst use whatever native interface is provided by the host to display plugin parameters. Cabbage (2008) Cabbage was first presented to the audio community at the Linux Audio Conference in 2008[11]. The framework provided Csound programmers with no low-level programming experience with a simple, albeit powerful toolkit for the development of standalone cross-platform audio software. The main goal of Cabbage at that time was to provide composers and musicians with a means of easily building and distributing high-end audio applications. Users could design their own graphical interfaces using an easy to read syntax that slots into a unified Csound text file(.csd). This version of Cabbage had no support for plugin development. 2. Cabbage (2011) The latest version of Cabbage consolidates the aforementioned projects into one user-friendly crossplatform interface for developing audio plugins. Combining the GUI capabilities of earlier versions of Cabbage with the lightweight csladspa and csvst systems, means users can now develop customised high-end audio plugins armed with nothing more than a rudimentary knowledge of Csound
3 and basic programming. Early versions of Cabbage were written using the wxwidgets C++ GUI library.[12] Whilst wxwidgets provides a more than adequate array of GUI controls and other useful classes it quickly became clear that creating plugins with wxwidgets was going to be more trouble than it was worth due to a series of threading issues. After looking at several other well documented GUI toolkits a decision was made to use the JUCE Class library[13]. Not only does JUCE provide an extensive set of classes for developing GUIs, it also provides a relatively foolproof framework for developing audio plugins for a host of plugin formats. On top of that it provides a robust set of audio and MIDI input/output classes. By using these audio and MIDI IO classes Cabbage bypasses Csound's native IO devices completely. Therefore users no longer need to hack Csound command line flags each time they want to change audio or MIDI devices. The architecture of Cabbage has also undergone some dramatic changes since Originally Cabbage produced standalone applications which embedded the instrument's.csd into a binary executable that could then be distributed as a single application. Today Cabbage is structured differently. Instead of creating a new standalone application for each instrument Cabbage is now a dedicated plugin system in itself. 2.1 The Cabbage Native Host The Cabbage native host loads and performs Cabbage plugins from disk. The only difference between the Cabbage host and a regular host is that Cabbage can load.csd files directly as plugins. To load Cabbage plugins in other hosts users must first export the Cabbage patch as some form of shared library, dependant on the OS. The Cabbage host provides access to all the audio/midi devices available to the user and also allows changes to be made to the sampling rate and buffer sizes. The function of the Cabbage host is twofold. First it provides a standalone player for running GUI based Csound instruments. In this context it functions similarly to the Max/MSP runtime player[6]. Secondly it provides a platform for developing and testing audio plugins. Any instrument that runs in the Cabbage native host can be exported as a plugin. 2.2 Cabbage Syntax The syntax used to create GUI controls is quite straightforward and should be provided within special xml-style tags <Cabbage> and </Cabbage> which can appear either above or below Csound's own <CsoundSynthesizer> tags. Each line of Cabbage specific code relates to one GUI control only. The attributes of each control is set using different identifiers such as colour(), channel(), size() etc. Cabbage code is case sensitive. 2.3 Cabbage Widgets Each and every Cabbage widget has 4 common parameters: position on screen(x, y) and size(width, height). Apart from position and size all other parameters are optional and if left out default values will be assigned. As x/y, width and height are so common there is a special identifier named bounds(x, y, width, height) which lets you pass the four values in one go. Below is a list of the different GUI widgets currently available in Cabbage. A quick reference table is available with the Cabbage documentation which illustrates which identifiers are supported by which controls. form caption("title"), pos(x,y), size(width, height), colour( colour )
4 Form creates the main plugin window. X, Y, Width and Height are all integer values. The default values for size are 400x600. Forms do not communicate with an instance of Csound. Only interactive widgets can communicate with an instance of Csound, therefore no channel identifier is needed. The colour identifier will set the background colour. Any HTML and CSS supported colour can be used. slider chan( channame ), pos(x,y), size(width, height), min(float), max(float), value(float), caption( caption ), colour( colour ) There are three types of slider available in Cabbage. A horizontal slider(hslider), a vertical slider(vslider) and a rotary slider(rslider). Sliders can be used to send data to Csound on the channel specified through the channame string. The channame string doubles up as the parameter name when running a Cabbage plugin. For example, if you choose Frequency as the channel name it will also appear as the identifier given to the parameter in a plugin host. Each slider that is added to a Cabbage patch corresponds with a plugin parameter on the host side. Min and Max determine the slider range while value initialises the slider to a particular value. If you wish to set Min, Max and Value in one go you can use the range(min, max, value) identifier instead. All sliders come with a number box which displays the current value of the slider. By default there is no caption but if users add one Cabbage will automatically place the slider within a captioned groupbox. This is useful for giving labels to sliders. button chan( channame ) pos(x,y), size(width,height), items( OnCaption, OffCaption ) Button creates a on-screen button that sends an alternating value of 0 or 1 when pressed. The channel string identifies the channel on which the host will communicate with Csound. OnCaption and OffCaption determine the strings that will appear on the button as users toggle between two states, i.e., 0 and 1. By default these captions are set to On and Off but users can specify any strings they wish. If users wish they can provide the same string to both the 'on' and 'off' caption. A trigger button for example won't need to have its captions changed when pressed. checkbox chan( channame ), pos(x,y), size(width, height), value(val), caption( Caption ), colour( Colour ) Checkboxes function like buttons. The main difference being that the associated caption will not change when the user checks it. As with all controls capable of sending data to an instance of Csound the channame string is the channel on which the control will communicate with Csound. The value attribute defaults to 0. combobox chan( channame ), caption( caption ), pos(x,y), size(width, height), value(val), items( item1, item2,...) Combobox creates a drop-down list of items which users can choose from. Once the user selects an item, the index of their selection will be sent to Csound on a channel named by the string channame. The default value is 1 and three items named item1, item2 and item3 fill the list by default. groupbox caption( Caption ), pos(x,y), size(width, height), colour( Colour ) Groupbox creates a container for other GUI controls. It does not communicate with Csound but is useful for organising the layout of widgets. image pos(x, y), size(width, height), file("file name"), shape( type ), colour( colour ),
5 outline( colour ), line(thickness) Image draws a shape or picture. The file name passed to file() should be a valid pixmap. If you don't use the file() identifier image will draw a shape. Three type of shapes are supported: rounded: a rectangle rounded corners (default) sharp: a rectangle with sharp corners ellipse: an elliptical shape. keyboard pos(x,y), size(width, height) Keyboard creates a virtual MIDI keyboard widget that can be used to test MIDI driven instruments. This is useful for quickly developing and prototyping MIDI based instruments. In order to use the keyboard component to drive Csound instruments you must use the MIDI interop command line flags to pipe the MIDI data to Csound. 2.4 MIDI Control In order to control your Cabbage instruments with MIDI CC messages you can use the midictrl(chan, ctrl) identifier. midictrl() accepts two integer values, a controller channel and a controller number. As is the case with the MIDI keyboard widget mentioned above Cabbage handles all it's own MIDI IO. The following code will attach a MIDI hardware slider to a Cabbage slider widget: slider chan( oscfreq ), bounds(10, 10, 100, 50), range(0, 1000, 0), midictrl(1, 1) By turning on MIDI debugging in the Cabbage host users can see the channel and controller numbers for the corresponding MIDI hardware sliders. Using midictrl() means that you can have full MIDI control over your Cabbage instruments while running in the standalone host. This feature is not included with Cabbage plugins as the host is expected to take control over the plugin parameters itself. 2.5 Native Plugin Parameters Most plugin hosts implement a native interface for displaying plugin parameters. This usually consists of a number of native sliders that corresponds to the number of plugin parameters as can been seen in the following screen-shot. While slider widgets can be mapped directly to the plugin host GUI, other widgets must be mapped differently. Toggling buttons for example will cause a native slider to jump between maximum and
6 minimum position. In the case of widgets such as comboboxes native slider ranges will be split into several segments to reflect the number of choices available to users. If for example a user creates a combobox with 5 elements, the corresponding native slider will jump a fifth each time the user increments the current selection. The upshot of this is that each native slider can be quickly and easily linked with MIDI hardware using the now ubiquitous 'MIDI-learn' function that ships with almost all of today's top DAWs. Because care has being taken to map each Cabbage control with the corresponding native slider, users can quickly set up Cabbage plugins to be controlled with MIDI hardware or through host automation as in illustrated in the screen shot below. Cabbage Plants Cabbage plants are GUI abstractions that contain one or more widgets. A simple plant might look like this: An ADSR is a component that you may want to use over and over again. If so you can group all the child components together to form an abstraction. These abstractions, or plants, are used as anchors to the child widgets contained within. All widgets contained within a plant have top and left positions which are relative the the top left position of the parent. While all widgets can be children of an abstraction, only groupboxes and images can be used as plants. Adding the identifier plant( plantname ) to an image or groupbox widget definition will cause them to act as plants. Here is the code for a simple LFO example:
7 image plant("osc1"), bounds(10, 10, 100, 120), colour("black"), outline("orange"), line(4) { rslider channel("sigfreq1"), bounds(10, 5, 80, 80), caption("osc 1") colour("white") combobox channel("sigwave1"), bounds(10, 90, 80, 20), items("sin", "Tri", "Sqr Bi"), colour("black"), textcolour("white") } Fig 6. The code above represents the LFO on the far left. The plant() identifier takes a string that denotes the name of the plant. This is important because all the widgets that are contained between the pair of curly brackets are now bound to the plant in terms of their position. The big advantage to building abstractions is that you can easily move them around without needing to move all the child components too. Once a plant has been created any widget can link to it by overloading the pos() identifier so that it takes a third parameter, the name of the plant as in pos(0, 0, LFO ). Apart from moving plants around you can also resize them, which in turn automatically resizes its children. To resize a plant we use the scale(newwidth, newheight) identifier. It takes new width and height values that overwrite the previous ones causing the plant and all its children to resize. Plants are designed to be reused across instruments so you don't have to keep rebuilding them from scratch. They can also be used to give your applications a unique look and feel. As they can so easily be moved and resized they can be placed into almost any instrument.
8 III. Examples The easiest way to start developing Cabbage instruments and plugins is with WinXound. WinXound is an open-source editor for Csound and is available on all major platforms. Communication between Cabbage and WinXound is made possible through interprocess communication. Once a named pipe has been established users can use WinXound to take complete control of the Cabbage host meaning they can update and export plugins from the Cabbage host without having to leave the WinXound editor. When writing Cabbage plugin users need to add -n and -d to the CsOptions section of their.csd file. -n causes Csound to bypass writing of sound to disk. Writing to disk is solely the responsibility of the host application(including the Cabbage native host). If the user wishes to create an instrument plugin in the form of a MIDI synthesiser they should use the MIDI-interop command line flags to pipe MIDI data from the host to the Csound instrument. Note that all Cabbage plugins are stereo. Therefore one must ensure to set nchnls to 2 in the header section of the csd file. Failure to do so will results in extraneous noise being added to the output signal. The first plugin presented below is a simple effect plugin. It makes use of the PVS family of opcodes. These opcodes provide users with a means of manipulating spectral components of a signal in realtime. In the following example the opcodes pvsanal, pvsblur and pvsynth are used to manipulate the spectrum of an incoming audio stream. The plugin averages the amp/freq time functions of each analysis channel for a specified time. The output is then spatialised using a jitter-spline generator. <Cabbage> form caption("pvs Blur") size(450, 80) hslider bounds(1, 1, 430, 50), channel("blur"),min(0),max(1), caption("blur time") </Cabbage> <CsoundSynthesizer> <CsOptions> -d -n -+rtmidi=null -M0 -b1024 </CsOptions> <CsInstruments> sr = ksmps = 32 nchnls = 2 instr 1 kblurtime chnget "blur" asig inch 1 fsig pvsanal asig, 1024, 256, 1024, 1 ftps pvsblur fsig, kblurtime, 2 atps pvsynth ftps apan jspline 1, 1, 3 outs atps*apan, atps*(1-apan) endin </CsInstruments> <CsScore> f i </CsScore> </CsoundSynthesizer>
9 Fig. A simple spectral blurring audio effect The second plugin is a MIDI-driven plugin instrument. You will see how this instrument uses the MIDI-interop command line parameters in CsOptions to pipe MIDI data from the host into Csound. This plugin also makes use of the virtual MIDI keyboard. The virtual MIDI keyboard is an invaluable tool when it comes to prototyping instruments as it sends MIDI data to the plugin just as a regular host would. <Cabbage> form caption("subtractive Synth") size(474, 270), colour("black")\ groupbox caption(""), pos(10, 1), size(430, 130) rslider pos(30, 20), size(90, 90), channel("cf"), min(0), max(20000), \ caption("centre Frequency"), colour("white") rslider pos(130, 20), size(90, 90) channel("res"), size(350, 50), min(0), max(1),\ caption("resonance"), colour("white") rslider pos(230, 20), size(90, 90) channel("lfo_rate"), size(350, 50), min(0), \ max(10), caption("lfo Rate"), colour("white") rslider pos(330, 20), size(90, 90) channel("lfo_depth"), size(350, 50), min(0), \ max(10000), caption("lfo Depth"), colour("white") keyboard pos(1, 140), size(450, 100) </Cabbage> <CsoundSynthesizer> <CsOptions> -d -n -+rtmidi=null -M0 -b midi-key-cps=4 --midi-velocity-amp=5 </CsOptions> <CsInstruments> ; Initialize the global variables. sr = ksmps = 32 nchnls = 2 massign 0, 1 instr 1 kcf chnget "cf" kres chnget "res" klforate chnget "lfo_rate" klfodepth chnget "lfo_depth" aenv linenr 1, 0.1, 1, 0.01 asig vco p5, p4, 1 klfo lfo klfodepth, klforate, 5 aflt moogladder asig, kcf+klfo, kres outs aflt*aenv, aflt*aenv endin </CsInstruments> <CsScore> f f </CsScore>
10 </CsoundSynthesizer> Fig. A simple plugin instrument. 4. Conclusion The system has been shown to work quite well in a vast number of hosts across all platforms. It is currently being tested on undergraduate and postgraduate music technology modules in the Dundalk Institute of Technology and the feedback among users has been very positive. The latest alpha version of Cabbage, including a version of WinXound with support for Cabbage can be found at A full beta version is expected to be released very soon. Acknowledgements I'd like to express my sincere thanks to everyone on the Csound, Renoise and Juce mailing lists. Without their help and assistance this project would not have been possible. I'd also like to thank the author of WinXound, Stefano Bonetti for his kind help and assistance over the past few months. References [1] Linux VST Homepage [2] Steinberg Website [3] Apple Audio units Developer Homepage [4] WinXound Homepage [5] ffitch, J. On The Design of Csound5. Proceeedings of Linux Audio Developers Conferencence. ZKM, Karlsruhe, Germany [6] Cycling 74 Homepage [7] PdVst Homepage [8] CsoundVST [9] Lazzarini, Walsh Developing LADSPA plugins with Csound Proceedings of the Linux Audio
11 Developers Conference TU Berlin, Germany [10] Walsh, Lazzarni, Brogan. Csound-based cross-platform plugin toolkits'. Proceedings of the Internation Computer Music Conference, Belfast, NI [11] Walsh, R. Cabbage, a new GUI framework for Csound. Proceedings of the Linux Audio Conference KHM Cologne, Germany [12] WxWidgets Homepage [13] Juce website
Controllable Space Phaser. User Manual
Controllable Space Phaser User Manual Overview Overview Fazortan is a phasing effect unit with two controlling LFOs. 1 Fazortan graphical interface We can distinguish two sections there: Configuration
JavaFX Session Agenda
JavaFX Session Agenda 1 Introduction RIA, JavaFX and why JavaFX 2 JavaFX Architecture and Framework 3 Getting Started with JavaFX 4 Examples for Layout, Control, FXML etc Current day users expect web user
Abstract. For notes detailing the changes in each release, see the MySQL for Excel Release Notes. For legal information, see the Legal Notices.
MySQL for Excel Abstract This is the MySQL for Excel Reference Manual. It documents MySQL for Excel 1.3 through 1.3.6. Much of the documentation also applies to the previous 1.2 series. For notes detailing
>print "hello" [a command in the Python programming language]
What Is Programming? Programming is the process of writing the code of computer programs. A program is just a sequence of instructions that a computer is able to read and execute, to make something happen.
TakeMySelfie ios App Documentation
TakeMySelfie ios App Documentation What is TakeMySelfie ios App? TakeMySelfie App allows a user to take his own picture from front camera. User can apply various photo effects to the front camera. Programmers
Andrew Cavan Fyans, PhD
Andrew Cavan Fyans, PhD 27 Ballymacash Road, Phone: +44 7887507803 Lisburn Email: [email protected] BT28 3DX www.cfyans.com U.K. Education Ph.D. Sonic Arts - Spectator Understanding of Performative Interaction:
Document authored by: Gustav Santo Tomas Software version: 1.0 (09/2014)
Setup Guide Disclaimer The information in this document is subject to change without notice and does not represent a commitment on the part of Native Instruments GmbH. The software described by this document
Lecture 1 Introduction to Android
These slides are by Dr. Jaerock Kwon at. The original URL is http://kettering.jrkwon.com/sites/default/files/2011-2/ce-491/lecture/alecture-01.pdf so please use that instead of pointing to this local copy
Editor / Plug-In Editor Manual
Editor / Plug-In Editor Manual E 3 Table of Contents Introduction................................................. Main features...................................................................... Please
WP Popup Magic User Guide
WP Popup Magic User Guide Plugin version 2.6+ Prepared by Scott Bernadot WP Popup Magic User Guide Page 1 Introduction Thank you so much for your purchase! We're excited to present you with the most magical
How To Install Tripleplay On A Fishman 3.5 (Powerbook) On A Computer Or Ipad Or Ipa (Powerstation) With A Microsoft Powerbook) With An Ipa 3.4 (Powerboard) Or Power
www.fishman.com TRIPLEPLAY SOFTWARE BUNDLE INSTALLATION GUIDE FOR WINDOWS Read Me First Locate the software download card on your TriplePlay packaging as well as the serial number. You will need these
Introduction to Android
Introduction to Android Android Smartphone Programming Matthias Keil Institute for Computer Science Faculty of Engineering October 19, 2015 Outline 1 What is Android? 2 Development on Android 3 Applications:
What is An Introduction
What is? An Introduction GenICam_Introduction.doc Page 1 of 14 Table of Contents 1 SCOPE OF THIS DOCUMENT... 4 2 GENICAM'S KEY IDEA... 4 3 GENICAM USE CASES... 5 3.1 CONFIGURING THE CAMERA... 5 3.2 GRABBING
Keystation Pro 88 Advanced Guide. Contents: 1 Getting Started. 2 Terminology. 3 Performance Operations of the Keystation Pro 88
Keystation Pro 88 Advanced Guide Contents: 1 Getting Started 2 Terminology 3 Performance Operations of the Keystation Pro 88 Sending Program Changes During Performance Sending Bank Changes During Performance
NATIVE INSTRUMENTS GmbH Schlesische Str. 29-30 D-10997 Berlin Germany www.native-instruments.de
GETTING STARTED Disclaimer The information in this document is subject to change without notice and does not represent a commitment on the part of Native Instruments GmbH. The software described by this
Adobe Flash Catalyst CS5.5
Adobe Flash Catalyst CS5.5 Create expressive interfaces and interactive content without writing code Use a new efficient workflow to collaborate intelligently and roundtrip files with developers who use
UltraNova Editor and Librarian User Guide
UltraNova Editor and Librarian User Guide FA0535-01 Trade marks Novation is a registered trade marks of Focusrite Audio Engineering Limited. UltraNova is a trade mark of Focusrite Audio Engineering Limited.
Audacity 1.2.4 Sound Editing Software
Audacity 1.2.4 Sound Editing Software Developed by Paul Waite Davis School District This is not an official training handout of the Educational Technology Center, Davis School District Possibilities...
Digital Audio Workstations
Digital Audio Workstations As personal computers evolved, their ability to perform the necessary amount of data storage and transfer to allow real-time data acquisition made them an attractive platform
10 STEPS TO YOUR FIRST QNX PROGRAM. QUICKSTART GUIDE Second Edition
10 STEPS TO YOUR FIRST QNX PROGRAM QUICKSTART GUIDE Second Edition QNX QUICKSTART GUIDE A guide to help you install and configure the QNX Momentics tools and the QNX Neutrino operating system, so you can
Wakanda Studio Features
Wakanda Studio Features Discover the many features in Wakanda Studio. The main features each have their own chapters and other features are documented elsewhere: Wakanda Server Administration Data Browser
Using Microsoft Visual Studio 2010. API Reference
2010 API Reference Published: 2014-02-19 SWD-20140219103929387 Contents 1... 4 Key features of the Visual Studio plug-in... 4 Get started...5 Request a vendor account... 5 Get code signing and debug token
Game Programming with DXFramework
Game Programming with DXFramework Jonathan Voigt [email protected] University of Michigan Fall 2006 The Big Picture DirectX is a general hardware interface API Goal: Unified interface for different hardware
Inear Display Oxymore Version 1.0. http://www.ineardisplay.com
Inear Display Oxymore Version 1.0 http://www.ineardisplay.com Thank you for using Oxymore. This guide will give you an overview of all the functions. HOW TO AUTHORIZE THE PLUGIN Enter the key you have
Camtasia Recording Settings
Camtasia Recording Settings To Capture Video Step 1: Resolution and Recording Area In the select area section, you can choose either to record the full screen or a custom screen size. Select the dropdown
SAPO Codebits 2008. Qtractor. An Audio/MIDI multi-track sequencer. Rui Nuno Capela rncbc.org. http://qtractor.sourceforge.net.
SAPO Codebits 2008 Qtractor An Audio/MIDI multi-track sequencer Rui Nuno Capela rncbc.org http://qtractor.sourceforge.net November 2008 What is Qtractor? (1) Yet another Audio / MIDI sequencer? Multi-track
Voxengo SPAN User Guide
Version 2.10 http://www.voxengo.com/product/span/ Contents Introduction 3 Features 3 Compatibility 3 User Interface Elements 4 Spectrum 4 Statistics 4 Correlation Meter 5 Credits 6 Copyright 2004-2016
Android Development. Lecture AD 0 Android SDK & Development Environment. Università degli Studi di Parma. Mobile Application Development
Android Development Lecture AD 0 Android SDK & Development Environment 2013/2014 Parma Università degli Studi di Parma Lecture Summary Android Module Overview The Android Platform Android Environment Setup
GETTING STARTED WITH STUDIO ONE ARTIST
GETTING STARTED WITH STUDIO ONE ARTIST 2009, PreSonus Audio Electronics, Inc. All Rights Reserved. TABLE OF CONTENTS Studio One Artist Features...3 System Requirements...4 Installation and Authorization...5
DS-5 ARM. Using the Debugger. Version 5.7. Copyright 2010, 2011 ARM. All rights reserved. ARM DUI 0446G (ID092311)
ARM DS-5 Version 5.7 Using the Debugger Copyright 2010, 2011 ARM. All rights reserved. ARM DUI 0446G () ARM DS-5 Using the Debugger Copyright 2010, 2011 ARM. All rights reserved. Release Information The
Website Builder Essential/Complete Manual
Fasthosts Customer Support Website Builder Essential/Complete Manual This is a designed as a definitive guide to all the features and tools available within Website Builder Essential/Complete. Contents
Building Applications Using Micro Focus COBOL
Building Applications Using Micro Focus COBOL Abstract If you look through the Micro Focus COBOL documentation, you will see many different executable file types referenced: int, gnt, exe, dll and others.
Expedite for Windows Software Development Kit Programming Guide
GXS EDI Services Expedite for Windows Software Development Kit Programming Guide Version 6 Release 2 GC34-3285-02 Fifth Edition (November 2005) This edition replaces the Version 6.1 edition. Copyright
Access 2007 Creating Forms Table of Contents
Access 2007 Creating Forms Table of Contents CREATING FORMS IN ACCESS 2007... 3 UNDERSTAND LAYOUT VIEW AND DESIGN VIEW... 3 LAYOUT VIEW... 3 DESIGN VIEW... 3 UNDERSTAND CONTROLS... 4 BOUND CONTROL... 4
Applicable to Panorama P1, P4 & P6. www.nektartech.com. Using Panorama with Logic
Using Panorama with Logic Applicable to Panorama P1, P4 & P6 www.nektartech.com www.nektartech.com Using Panorama with Logic Logic Integration Setup and Configuration The Panorama Logic Integration is
Università Degli Studi di Parma. Distributed Systems Group. Android Development. Lecture 1 Android SDK & Development Environment. Marco Picone - 2012
Android Development Lecture 1 Android SDK & Development Environment Università Degli Studi di Parma Lecture Summary - 2 The Android Platform Android Environment Setup SDK Eclipse & ADT SDK Manager Android
4D Plugin SDK v11. Another minor change, real values on 10 bytes is no longer supported.
4D Plugin SDK v11 4D Plugin API 4D Plugin API v11 is a major upgrade of 4D Plugin API. The two major modifications are that it is now fully Unicode compliant, and that it gives support to the new 4D pictures.
Document authored by: Native Instruments GmbH Hardware version: Traktor Kontrol X1 MK2 (01/2013)
Setup Guide Disclaimer The information in this document is subject to change without notice and does not represent a commitment on the part of Native Instruments GmbH. The software described by this document
Bome's Mouse Keyboard USER MANUAL
Bome's Mouse Keyboard USER MANUAL 1 Overview 1 Overview This program simulates a music keyboard which you can play with the mouse or the computer keyboard. You can control your MIDI devices without having
FileMaker Pro and Microsoft Office Integration
FileMaker Pro and Microsoft Office Integration page Table of Contents Executive Summary...3 Introduction...3 Top Reasons to Read This Guide...3 Before You Get Started...4 Downloading the FileMaker Trial
MANCHESTER MIDI SCHOOL MUSIC PRODUCTION AND AUDIO ENGINEERING DIPLOMA COURSE INFORMATION PACK 15 MONTHS MIDISCHOOL.COM
DIPLOMA 15 MONTHS MIDISCHOOL.COM INTRODUCTION Course Name: Duration: Incorporates: Music Production and Audio Engineering Diploma 15 Months 5 modules JUMP STRAIGHT TO: About the course tutor What you will
CS 3530 Operating Systems. L02 OS Intro Part 1 Dr. Ken Hoganson
CS 3530 Operating Systems L02 OS Intro Part 1 Dr. Ken Hoganson Chapter 1 Basic Concepts of Operating Systems Computer Systems A computer system consists of two basic types of components: Hardware components,
How To Adjust Your Levels On A Pd Farm On A Guitar Or Guitar
Recording Setup Guide Using Line 6 Hardware & POD Farm with Popular Recording Applications Table of Contents Getting Started...1 1 Installing Line 6 Audio Drivers and POD Farm Software... 1 1 About POD
touchable 3 brings easy plug and play USB connectivity and 42 new templates for Live s Instruments and FX.
touchable 3 brings easy plug and play USB connectivity and 42 new templates for Live s Instruments and FX. -------------------------------------------------------------------------------------------- touchable
Stage 5 Information and Software Technology
Stage 5 Information and Software Technology Year: Year 9 Teacher: Topic: Option 8: Software Development and Programming Time: This option involves students undertaking a range of activities that will lead
All About Android WHAT IS ANDROID?
All About Android WHAT IS ANDROID? Android specifically refers to a mobile operating system (based on Linux) that is developed by Google. It is open-source software, meaning that anyone can download the
Guitarists or other musicians transcribing a solo into tablature or music notation.
SLOWGOLD 8 QUICK START Greetings, musician. We have attempted to make SlowGold as easy to set up, understand and use as is humanly possible, but we feel that a few minutes spent scanning this document
iridium for Weinzierl KNX IP BAOS
iridium for Weinzierl KNX IP BAOS Fast Start: Connection Setting Manual for KNX/EIB bus through IP Interfaces of Weinzierl KNX IP BAOS Review of iridium Software Package for KNX/EIB: iridium turns your
BF Survey Plus User Guide
BF Survey Plus User Guide August 2011 v1.0 1 of 23 www.tamlyncreative.com.au/software/ Contents Introduction... 3 Support... 3 Documentation... 3 Installation New Install... 3 Setting up categories...
ECWM511 MOBILE APPLICATION DEVELOPMENT Lecture 1: Introduction to Android
Why Android? ECWM511 MOBILE APPLICATION DEVELOPMENT Lecture 1: Introduction to Android Dr Dimitris C. Dracopoulos A truly open, free development platform based on Linux and open source A component-based
Generate Android App
Generate Android App This paper describes how someone with no programming experience can generate an Android application in minutes without writing any code. The application, also called an APK file can
Mobility Introduction Android. Duration 16 Working days Start Date 1 st Oct 2013
Mobility Introduction Android Duration 16 Working days Start Date 1 st Oct 2013 Day 1 1. Introduction to Mobility 1.1. Mobility Paradigm 1.2. Desktop to Mobile 1.3. Evolution of the Mobile 1.4. Smart phone
Hotspot Image Connector Page Guide
Contents Differences between Xerte and Xerte Online Toolkits usage...2 Connector pages...2 The Hotspot Image Connector page...2 Properties of the Hotspot Image Connector Page...3 Hotspot Properties...3
Microsoft Outlook 2010 The Essentials
2010 The Essentials Training User Guide Sue Pejic Training Coordinator Information Technology Services Email : [email protected] Mobile : 0419 891 113 Table of Contents What is Outlook?... 4 The Ribbon...
Getting Started with a blank desk...3. Understanding the Rear Panel and Top Connectors...3. Understanding the Front Panel...5
2nd Edition Table of contents Getting Started with a blank desk...3 Understanding the Rear Panel and Top Connectors...3 Understanding the Front Panel...5 Controlling Channel Faders...6 Changing INPUT PATCH...7
Grandstream XML Application Guide Three XML Applications
Grandstream XML Application Guide Three XML Applications PART A Application Explanations PART B XML Syntax, Technical Detail, File Examples Grandstream XML Application Guide - PART A Three XML Applications
RSW. Responsive Fullscreen WordPress Theme
RSW Responsive Fullscreen WordPress Theme Thank you for purchasing this theme. This document covers the installation and Setting up of the theme. Please read through this Help Guide if you experience any
INTRODUCTION TO ANDROID CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 11 02/15/2011
INTRODUCTION TO ANDROID CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 11 02/15/2011 1 Goals of the Lecture Present an introduction to the Android Framework Coverage of the framework will be
Nios II Software Developer s Handbook
Nios II Software Developer s Handbook Nios II Software Developer s Handbook 101 Innovation Drive San Jose, CA 95134 www.altera.com NII5V2-13.1 2014 Altera Corporation. All rights reserved. ALTERA, ARRIA,
Portal Connector Fields and Widgets Technical Documentation
Portal Connector Fields and Widgets Technical Documentation 1 Form Fields 1.1 Content 1.1.1 CRM Form Configuration The CRM Form Configuration manages all the fields on the form and defines how the fields
5.1 Features 1.877.204.6679. [email protected] Denver CO 80202
1.877.204.6679 www.fourwindsinteractive.com 3012 Huron Street [email protected] Denver CO 80202 5.1 Features Copyright 2014 Four Winds Interactive LLC. All rights reserved. All documentation
ios App for Mobile Website! Documentation!
ios App for Mobile Website Documentation What is IOS App for Mobile Website? IOS App for Mobile Website allows you to run any website inside it and if that website is responsive or mobile compatible, you
Microsoft Access 2010 Overview of Basics
Opening Screen Access 2010 launches with a window allowing you to: create a new database from a template; create a new template from scratch; or open an existing database. Open existing Templates Create
Making Content Editable. Create re-usable email templates with total control over the sections you can (and more importantly can't) change.
Making Content Editable Create re-usable email templates with total control over the sections you can (and more importantly can't) change. Single Line Outputs a string you can modify in the
Syllabus for CS 134 Java Programming
- Java Programming Syllabus Page 1 Syllabus for CS 134 Java Programming Computer Science Course Catalog 2000-2001: This course is an introduction to objectoriented programming using the Java language.
Cristina Bachmann, Heiko Bischoff, Christina Kaboth, Insa Mingers, Sabine Pfeifer, Kevin Quarshie, Benjamin Schütte This PDF provides improved access
English Cristina Bachmann, Heiko Bischoff, Christina Kaboth, Insa Mingers, Sabine Pfeifer, Kevin Quarshie, Benjamin Schütte This PDF provides improved access for vision-impaired users. Please note that
The MaXX Desktop. Workstation Environment. Revised Road Map Version 0.7. for Graphics Professionals
The MaXX Desktop Workstation Environment for Graphics Professionals Revised Road Map Version 0.7 Document History Author Date Version Comments Eric Masson 01/11/2007 0.5 First Draft Eric Masson 18/11/2007
MadCap Software. Import Guide. Flare 11
MadCap Software Import Guide Flare 11 Copyright 2015 MadCap Software. All rights reserved. Information in this document is subject to change without notice. The software described in this document is furnished
Android Operating System
Prajakta S.Adsule Student-M.B.A.[I.T.] BharatiVidyapeeth Deemed University,Pune(india) [email protected] Mob. No. 9850685985 Android Operating System Abstract- Android operating system is one
www.tracktion.com Tracktion 4 Quick Start Guide
QUICK START GUIDE www.tracktion.com Part No. 900201 Rev. A 01/2013 2013 Tracktion Software Corporation. All Rights Reserved. All brand names mentioned are trademarks or registered trademarks of their respective
USB-MIDI Setup Guide. Operating requirements
About the software The most recent versions of the applications contained on the accessory disc can be downloaded from the Korg website (http://www.korg.com). -MIDI Setup Guide Please note before use Copyright
Technical Data Sheet SCADE R17 Solutions for ARINC 661 Compliant Systems Design Environment for Aircraft Manufacturers, CDS and UA Suppliers
661 Solutions for ARINC 661 Compliant Systems SCADE R17 Solutions for ARINC 661 Compliant Systems Design Environment for Aircraft Manufacturers, CDS and UA Suppliers SCADE Solutions for ARINC 661 Compliant
jquery Tutorial for Beginners: Nothing But the Goods
jquery Tutorial for Beginners: Nothing But the Goods Not too long ago I wrote an article for Six Revisions called Getting Started with jquery that covered some important things (concept-wise) that beginning
Issues of Hybrid Mobile Application Development with PhoneGap: a Case Study of Insurance Mobile Application
DATABASES AND INFORMATION SYSTEMS H.-M. Haav, A. Kalja and T. Robal (Eds.) Proc. of the 11th International Baltic Conference, Baltic DB&IS 2014 TUT Press, 2014 215 Issues of Hybrid Mobile Application Development
Logic Pro 9. TDM Guide
Logic Pro 9 TDM Guide Copyright 2009 Apple Inc. All rights reserved. Your rights to the software are governed by the accompanying software license agreement. The owner or authorized user of a valid copy
Learning Remote Control Framework ADD-ON for LabVIEW
Learning Remote Control Framework ADD-ON for LabVIEW TOOLS for SMART MINDS Abstract This document introduces the RCF (Remote Control Framework) ADD-ON for LabVIEW. Purpose of this article and the documents
Amplify Service Integration Developer Productivity with Oracle SOA Suite 12c
Amplify Service Integration Developer Productivity with Oracle SOA Suite 12c CON7598 Rajesh Kalra, Sr. Principal Product Manager Robert Wunderlich, Sr. Principal Product Manager Service Integration Product
Site Configuration SETUP GUIDE. Windows Hosts Single Workstation Installation. May08. May 08
Site Configuration SETUP GUIDE Windows Hosts Single Workstation Installation May08 May 08 Copyright 2008 Wind River Systems, Inc. All rights reserved. No part of this publication may be reproduced or transmitted
DNNCentric Custom Form Creator. User Manual
DNNCentric Custom Form Creator User Manual Table of contents Introduction of the module... 3 Prerequisites... 3 Configure SMTP Server... 3 Installation procedure... 3 Creating Your First form... 4 Adding
Installing Your Software
1 Installing Your Software This booklet is designed to get you up and running as quickly as possible with Logic Studio. The following is covered: Â About the Logic Studio Box on page 2. Â About Onscreen
IE Class Web Design Curriculum
Course Outline Web Technologies 130.279 IE Class Web Design Curriculum Unit 1: Foundations s The Foundation lessons will provide students with a general understanding of computers, how the internet works,
Any Software Any Language Instantly!
Any Software Any Language Instantly! What is Linguify No change required in source code or database Application need not be i18n ready Translates all screens, reports prints and files No prerequisites
CLASSROOM WEB DESIGNING COURSE
About Web Trainings Academy CLASSROOM WEB DESIGNING COURSE Web Trainings Academy is the Top institutes in Hyderabad for Web Technologies established in 2007 and managed by ITinfo Group (Our Registered
ERIKA Enterprise pre-built Virtual Machine
ERIKA Enterprise pre-built Virtual Machine with support for Arduino, STM32, and others Version: 1.0 July 2, 2014 About Evidence S.r.l. Evidence is a company operating in the field of software for embedded
SketchUp Instructions
SketchUp Instructions Every architect needs to know how to use SketchUp! SketchUp is free from Google just Google it and download to your computer. You can do just about anything with it, but it is especially
Using the US-122 with GigaStudio and Cubasis
Using the US-122 with GigaStudio and Cubasis To use the US-122 with the supplied GigaStudio 24 and Cubasis applications together on Windows, you will need to carry out the following steps after installing
SOLO NETWORK (11) 4062-6971 (21) 4062-6971 (31) 4062-6971 (41) 4062-6971 (48) 4062-6971 (51) 4062-6971 (61) 4062-6971. version Adobe PageMaker 7.
(11) 4062-6971 (21) 4062-6971 (31) 4062-6971 (41) 4062-6971 (48) 4062-6971 (51) 4062-6971 (61) 4062-6971 Macintosh OS /Windows 98/2000/NT/Windows ME version Adobe PageMaker 7.0 Overview T his overview
Scatter Chart. Segmented Bar Chart. Overlay Chart
Data Visualization Using Java and VRML Lingxiao Li, Art Barnes, SAS Institute Inc., Cary, NC ABSTRACT Java and VRML (Virtual Reality Modeling Language) are tools with tremendous potential for creating
CS 377: Operating Systems. Outline. A review of what you ve learned, and how it applies to a real operating system. Lecture 25 - Linux Case Study
CS 377: Operating Systems Lecture 25 - Linux Case Study Guest Lecturer: Tim Wood Outline Linux History Design Principles System Overview Process Scheduling Memory Management File Systems A review of what
Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives
Introduction to Programming and Algorithms Module 1 CS 146 Sam Houston State University Dr. Tim McGuire Module Objectives To understand: the necessity of programming, differences between hardware and software,
Using MCC GPIB Products with LabVIEW
Using Products with LabVIEW * This application note applies to PCI-GPIB-1M, PCI-GPIB-300K, PCM-GPIB, as well as to ISA- and PC104- boards How NI Compatibility Works National Instruments (NI) provides the
Mobile Operating Systems. Week I
Mobile Operating Systems Week I Overview Introduction Mobile Operating System Structure Mobile Operating System Platforms Java ME Platform Palm OS Symbian OS Linux OS Windows Mobile OS BlackBerry OS iphone
Programming with the Dev C++ IDE
Programming with the Dev C++ IDE 1 Introduction to the IDE Dev-C++ is a full-featured Integrated Development Environment (IDE) for the C/C++ programming language. As similar IDEs, it offers to the programmer
Table of Contents Getting Started... Recording...11 Playing Back...14
USER GUIDE Table of Contents Getting Started...4 Main Window Essentials...5 Operation Modes...7 Setup...8 Recording...11 Tracks... 11 > Track Names... 11 > Adding Tracks... 11 > Master Bus... 11 > Track
NVIDIA CUDA GETTING STARTED GUIDE FOR MAC OS X
NVIDIA CUDA GETTING STARTED GUIDE FOR MAC OS X DU-05348-001_v5.5 July 2013 Installation and Verification on Mac OS X TABLE OF CONTENTS Chapter 1. Introduction...1 1.1. System Requirements... 1 1.2. About
Android Basics. Xin Yang 2016-05-06
Android Basics Xin Yang 2016-05-06 1 Outline of Lectures Lecture 1 (45mins) Android Basics Programming environment Components of an Android app Activity, lifecycle, intent Android anatomy Lecture 2 (45mins)
