NewtonScriptProgramLanguage - Manuels - Apple
NewtonScriptProgramLanguage - Manuels - Apple
Apple sur FNAC.COM
TELECHARGER LE PDF :
http://manuals.info.apple.com/MANUALS/1000/MA1508/en_US/NewtonScriptProgramLanguage.PDF
Voir également d'autres Guides APPLE :
Apple-iPhone-User-Guide-For-iOS-6-Software
Apple-iPhone-Manual-del-usuario-Para-el-software-iOS-5-1
Apple-iPhone-Benutzerhandbuch-Fur-iOS-5-1-Software
Apple-Enterprise_Deployment_Guide_CH
Apple-iphone_manuali_i_perdoruesit
Apple-iphone_user_guide_bg
Apple-iphone_manual_do_usuario
Apple-iPhone_Anvandarhandbok
Apple-iphone_user_guide_ta
Apple-iphone_4s_il_mondo_tra_le_dita
Apple-iPhone-OS-Enterprise-Deployment-Guide-Second-Edition-for-Version-3-2-or-later
Apple-iPhone_Bluetooth_Headset_Manual_del_usuario
Apple-iPhone_3G_Important_Product_Information_Guide_en_US
Apple-iphone_4s_informations_importantes_sur_le_produit
Apple-Case-Design-Guidelines
Apple-ipad_brugerhandbog
Apple-ipod_touch_user_guide_ta
Apple-macbook_air-13-inch_mid-2012-qs_br
Apple-iphone_4s_podstawy
Apple-ipad_user_guide_ch
Apple-ipod_touch_user_guide_cn
Apple-Manuel_de_l'utilisateur_de_Final_Cut_Server
Apple-iMac_G5_de_lutilisateur
Apple-Cinema_Tools_4.0_User_Manual_F
Apple-Personal-LaserWriter300-User-s-Guide
Apple-QuickTake-100-User-s-Guide-for-Macintosh
Apple-User-s-Guide-Macintosh-LC-630-DOS-Compatible
Apple-iPhone_iOS3.1_User_Guide
Apple-iphone_4s_important_product_information_guide
Apple-iPod_shuffle_Features_Guide_F
Liste-documentation-apple
Apple-Premiers_contacts_avec_iMovie_08
Apple-macbook_pro-retina-mid-2012-important_product_info_br
Apple-macbook_pro-13-inch-mid-2012-important_product_info
Apple-macbook_air-11-inch_mid-2012-qs_br
Apple-Manuel_de_l_utilisateur_de_MainStage
Apple-Compressor_3_User_Manual_F
Apple-Color_1.0_User_Manual_F
Apple-guide_de_configuration_airport_express_4.2
Apple-TimeCapsule_SetupGuide
Apple-Instruments_et_effets_Logic_Express_8
Apple-Manuel_de_l_utilisateur_de_WaveBurner
Apple-Macmini_Guide_de_l'utilisateur
Apple-PowerMacG5_UserGuide
Disque dur, ATA parallèle Instructions de remplacement
Apple-final_cut_pro_x_logic_effects_ref_f
Apple-Leopard_Installationshandbok
Manuale Utente PowerBookG4
Apple-thunderbolt_display_getting_started_1e
Apple-Compressor-4-Benutzerhandbuch
Apple-macbook_air_11inch_mid2011_ug
Apple-macbook_air-mid-2012-important_product_info_j
Apple-iPod-nano-Guide-des-fonctionnalites
Apple-iPod-nano-Guide-des-fonctionnalites
Apple-iPod-nano-Guide-de-l-utilisateur-4eme-generation
Apple-iPod-nano-Guide-de-l-utilisateur-4eme-generation
Apple-Manuel_de_l_utilisateur_d_Utilitaire_de_reponse_d_impulsion
Apple-Aperture_2_Raccourcis_clavier
AppleTV_Setup-Guide
Apple-livetype_2_user_manual_f
Apple-imacG5_17inch_harddrive
Apple-macbook_air_guide_de_l_utilisateur
Apple-MacBook_Early_2008_Guide_de_l_utilisateur
Apple-Keynote-2-Guide-de-l-utilisateur
Apple-PowerBook-User-s-Guide-for-PowerBook-computers
Apple-Macintosh-Performa-User-s-Guide-5200CD-and-5300CD
Apple-Macintosh-Performa-User-s-Guide
Apple-Workgroup-Server-Guide
Apple-iPod-nano-Guide-des-fonctionnalites
Apple-iPad-User-Guide-For-iOS-5-1-Software
Apple-Boot-Camp-Guide-d-installation-et-de-configuration
Apple-iPod-nano-Guide-de-l-utilisateur-4eme-generation
Power Mac G5 Guide de l’utilisateur APPLE
Guide de l'utilisateur PAGE '08 APPLE
Guide de l'utilisateur KEYNOTE '09 APPLE
Guide de l'Utilisateur KEYNOTE '3 APPLE
Guide de l'Utilisateur UTILITAIRE RAID
Guide de l'Utilisateur Logic Studio
Power Mac G5 Guide de l’utilisateur APPLE
Guide de l'utilisateur PAGE '08 APPLE
Guide de l'utilisateur KEYNOTE '09 APPLE
Guide de l'Utilisateur KEYNOTE '3 APPLE
Guide de l'Utilisateur UTILITAIRE RAID
Guide de l'Utilisateur Logic Studio
Guide de l’utilisateur ipad Pour le logiciel iOS 5.1
PowerBook G4 Premiers Contacts APPLE
Guide de l'Utilisateur iphone pour le logiciel ios 5.1 APPLE
Guide de l’utilisateur ipad Pour le logiciel iOS 4,3
Guide de l’utilisateur iPod nano 5ème génération
Guide de l'utilisateur iPod Touch 2.2 APPLE
Guide de l’utilisateur QuickTime 7 Mac OS X 10.3.9 et ultérieur Windows XP et Windows 2000
Guide de l'utilisateur MacBook 13 pouces Mi 2010
Guide de l’utilisateur iPhone (Pour les logiciels iOS 4.2 et 4.3)
Guide-de-l-utilisateur-iPod-touch-pour-le-logiciel-ios-4-3-APPLE
Guide-de-l-utilisateur-iPad-2-pour-le-logiciel-ios-4-3-APPLE
Guide de déploiement en entreprise iPhone OS
Guide-de-l-administrateur-Apple-Remote-Desktop-3-1
Guide-de-l-utilisateur-Apple-Xserve-Diagnostics-Version-3X103
Guide-de-configuration-AirPort-Extreme-802.11n-5e-Generation
Guide-de-configuration-AirPort-Extreme-802-11n-5e-Generation
Guide-de-l-utilisateur-Capteur-Nike-iPod
Guide-de-l-utilisateur-iMac-21-5-pouces-et-27-pouces-mi-2011-APPLE
Guide-de-l-utilisateur-Apple-Qadministrator-4
Guide-d-installation-Apple-TV-3-eme-generation
User-Guide-iPad-For-ios-5-1-Software
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-mac_mini_mid20..> 28-Feb-2014 15:10 2.9M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Premiers_conta..> 28-Feb-2014 15:10 3.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Pages09_Guide_..> 28-Feb-2014 15:09 4.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-apple_tv_3rd_g..> 28-Feb-2014 15:09 3.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-ipod_touch_use..> 28-Feb-2014 15:08 4.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPod_classic_1..> 28-Feb-2014 15:08 4.3M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-AirPort-Time-C..> 28-Feb-2014 15:06 4.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-AirPort-Extrem..> 28-Feb-2014 15:06 4.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-macbook_air-mi..> 28-Feb-2014 15:05 4.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-boot_camp_inst..> 28-Feb-2014 15:05 4.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPod-touch-Gui..> 28-Feb-2014 15:03 5.1M
Apple-MacBook-Pro-Gu..> 28-Feb-2014 15:03 4.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Power-Macintos..> 28-Feb-2014 10:25 1.3M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-MacBook_13inch..> 28-Feb-2014 10:25 1.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPad-Anvandarh..> 28-Feb-2014 10:25 1.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-AirPort-Extrem..> 28-Feb-2014 10:25 1.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Mac_Pro_Early2..> 28-Feb-2014 10:24 1.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-AirPort-Time-C..> 28-Feb-2014 10:24 1.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPod_nano_4th_..> 28-Feb-2014 10:23 2.0M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPod_nano_5th_..> 28-Feb-2014 10:23 2.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-premiers_conta..> 28-Feb-2014 10:23 2.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-ipad_gebruiker..> 28-Feb-2014 10:23 2.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Formulas_and_F..> 28-Feb-2014 10:22 3.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Manual_del_usu..> 28-Feb-2014 10:22 2.9M
Apple-nikeipod_guide..> 27-Feb-2014 10:13 3.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Logic-Express-..> 27-Feb-2014 10:11 3.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iMac-G5-Manual..> 27-Feb-2014 10:11 1.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-DVD-Studio-Pro..> 27-Feb-2014 10:10 1.9M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Loops-Utility-..> 27-Feb-2014 10:10 2.0M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Final-Cut-Pro-..> 27-Feb-2014 10:09 3.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Final-Cut-Stud..> 27-Feb-2014 10:09 2.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPod-mini-User..> 27-Feb-2014 10:08 3.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Xserve -Apple-..> 27-Feb-2014 10:08 3.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Logic-Pro-7.2 ..> 27-Feb-2014 10:07 4.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Soundtrack-Pro..> 27-Feb-2014 10:07 4.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Time-Capsule-I..> 27-Feb-2014 10:06 4.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-MacBook-Pro-Ma..> 27-Feb-2014 10:06 4.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPhone-OS-Ente..> 05-Dec-2013 07:30 2.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Mac_OSX_Server..> 05-Dec-2013 07:29 2.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Compressor-4-ã..> 05-Dec-2013 07:23 2.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Remote-Desktop..> 27-Jun-2013 08:59 2.3M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-MacBook_Pro_17..> 27-Jun-2013 08:51 3.0M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Compressor-Man..> 06-Jun-2013 14:35 2.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Soundtrack_Pro..> 06-Jun-2013 14:35 3.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-LiveType_2_Use..> 06-Jun-2013 14:35 2.3M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Motion_3_User_..> 06-Jun-2013 14:34 5.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-MacBook_13inch..> 06-Jun-2013 14:34 6.0M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-MainStage-Manu..> 06-Jun-2013 14:32 6.0M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-PowerMacG5_Use..> 06-Jun-2013 14:32 6.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-MacBook-Air-Ma..> 06-Jun-2013 14:30 6.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iMac_G5_de_lut..> 06-Jun-2013 14:30 6.3M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-final_cut_pro_..> 06-Jun-2013 14:28 7.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Xcode_User_Gui..> 06-Jun-2013 14:28 6.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-macbook_pro_17..> 06-May-2013 17:01 3.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Cocoa-Bindings..> 09-Nov-2012 10:25 1.9M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Stream-Program..> 09-Nov-2012 09:19 3.0M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-View-Programmi..> 09-Nov-2012 09:19 3.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-OpenGL-Program..> 09-Nov-2012 09:18 3.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Preferences-an..> 09-Nov-2012 09:18 3.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-AV-Foundation-..> 09-Nov-2012 09:17 3.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Windows-Guide-..> 09-Nov-2012 09:16 3.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Date-and-Time-..> 09-Nov-2012 09:15 1.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Event-Driven-X..> 09-Nov-2012 09:15 1.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-OpenCL-Program..> 09-Nov-2012 09:15 1.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Core-Text-Prog..> 09-Nov-2012 09:15 1.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Document-Based..> 09-Nov-2012 09:14 1.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-URL-Loading-Sy..> 09-Nov-2012 09:14 3.0M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-livetype_2_use..> 09-Nov-2012 08:07 2.0M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPod_nano_4th_..> 09-Nov-2012 08:07 1.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPhone_4_Deux_..> 09-Nov-2012 08:06 2.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-airportextreme..> 09-Nov-2012 08:06 2.0M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Object-Oriente..> 09-Nov-2012 08:05 2.3M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-TableView_iPho..> 09-Nov-2012 08:05 2.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Universal-Bina..> 09-Nov-2012 08:05 2.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Objective-C-Ru..> 09-Nov-2012 08:05 2.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Local-and-Push..> 09-Nov-2012 08:04 2.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Mac-App-Progra..> 09-Nov-2012 08:04 2.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-CocoaEncyclope..> 09-Nov-2012 08:03 2.9M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Blocks-Program..> 09-Nov-2012 08:03 2.9M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-External-Acces..> 09-Nov-2012 08:02 3.0M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-multimediaprog..> 09-Nov-2012 08:02 2.9M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iphone_3gs_fin..> 08-Nov-2012 10:12 2.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-SafariWebConte..> 08-Nov-2012 10:12 1.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-ARD3_AdminGuid..> 08-Nov-2012 10:12 2.9M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iTunes_Videoan..> 08-Nov-2012 10:11 2.0M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-ipod_nano_3rd_..> 08-Nov-2012 10:11 2.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Event-Handling..> 08-Nov-2012 10:10 2.3M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-QuickTime7_Use..> 08-Nov-2012 10:10 2.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-drawingprintin..> 08-Nov-2012 10:10 2.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-SharkUserGuide..> 08-Nov-2012 10:09 2.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Location-Aware..> 08-Nov-2012 10:09 2.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Key-Value-Obse..> 08-Nov-2012 10:08 2.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-CocoaTextArchi..> 08-Nov-2012 10:08 1.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Text-System-Us..> 08-Nov-2012 10:07 1.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iTunes_Extrasa..> 08-Nov-2012 10:07 1.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Archives-and-S..> 08-Nov-2012 10:07 1.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-TV_2nd_gen_Set..> 08-Nov-2012 09:11 2.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-WorkingWithUSB..> 08-Nov-2012 07:57 2.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
AppleSafariVisualEff..> 08-Nov-2012 07:29 2.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Resource-Progr..> 08-Nov-2012 07:28 2.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Cryptographic-..> 08-Nov-2012 07:28 1.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-CocoaDrawingGu..> 08-Nov-2012 07:27 2.0M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-macbook_pro-13..> 08-Nov-2012 07:27 2.0M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Xsan_2_Admin_G..> 08-Nov-2012 07:27 2.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-ipad_wifi_info..> 08-Nov-2012 07:26 2.3M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-ipad_uzivatels..> 08-Nov-2012 07:26 2.9M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-ipad_manual_de..> 08-Nov-2012 07:26 2.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Nike_Plus_iPod..> 08-Nov-2012 07:25 3.0M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iphone_user_gu..> 08-Nov-2012 07:25 3.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-ipad_user_guid..> 08-Nov-2012 07:24 4.3M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-ipad_user_guid..> 08-Nov-2012 07:24 4.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-macbook_pro_re..> 08-Nov-2012 07:22 2.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-AppStoreMarket..> 08-Nov-2012 07:22 2.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-macbook_air-13..> 08-Nov-2012 07:22 2.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-macbook_air_us..> 08-Nov-2012 07:21 2.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Logic-Pro-9-TD..> 08-Nov-2012 07:21 2.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-InstrumentsUse..> 08-Nov-2012 07:20 1.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Core-Data-Mode..> 07-Nov-2012 21:59 2.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-App-Sandbox-De..> 07-Nov-2012 21:24 2.0M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iTunes-Connect..> 07-Nov-2012 21:24 1.9M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Transitioning-..> 07-Nov-2012 21:23 2.0M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-RED_Workflows_..> 07-Nov-2012 21:23 2.0M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-KernelProgramm..> 07-Nov-2012 21:23 2.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPod_shuffle_4..> 07-Nov-2012 19:37 2.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Mac-Pro-2008-P..> 07-Nov-2012 19:31 2.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iOS_Security_M..> 07-Nov-2012 19:31 2.3M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-macbook_pro-re..> 07-Nov-2012 19:31 2.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-PackageMaker_U..> 07-Nov-2012 19:30 2.3M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Apple_Server_D..> 07-Nov-2012 19:30 2.3M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-OS-X-Server-Pr..> 07-Nov-2012 19:29 2.3M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-OS-X-Mountain-..> 07-Nov-2012 19:29 2.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-mac_mini-late-..> 07-Nov-2012 19:29 2.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-KeyValueObserv..> 07-Nov-2012 19:29 2.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-ViewController..> 07-Nov-2012 19:28 2.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-CodeSigningGui..> 07-Nov-2012 19:28 2.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-TimeCapsule_Se..> 07-Nov-2012 19:27 2.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-TimeCapsule_Se..> 07-Nov-2012 19:27 2.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-time_capsule_4..> 07-Nov-2012 19:26 2.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-TimeCapsule_Se..> 07-Nov-2012 19:26 2.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Apple_AirPort_..> 07-Nov-2012 19:26 2.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Secure-Coding-..> 07-Nov-2012 19:25 1.9M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-String-Program..> 07-Nov-2012 19:25 1.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Apple_Composit..> 01-Nov-2012 13:36 3.9M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Premiers-conta..> 01-Nov-2012 13:36 2.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
AppleiPod_shuffle_4t..> 01-Nov-2012 13:36 2.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-ipod_touch_geb..> 01-Nov-2012 13:35 2.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Instruments_et..> 01-Nov-2012 13:35 3.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-ipad_manual_do..> 01-Nov-2012 13:35 4.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-UsingiTunesPro..> 01-Nov-2012 13:34 4.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-wp_osx_configu..> 01-Nov-2012 13:33 4.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple_ProRes_White_P..> 01-Nov-2012 13:32 4.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-ipod_nano_kayt..> 01-Nov-2012 13:32 4.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Instrumentos_y..> 01-Nov-2012 13:31 3.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-nike_plus_ipod..> 01-Nov-2012 13:31 2.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Pages09_Anvand..> 01-Nov-2012 13:30 2.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-aperture3.4_10..> 01-Nov-2012 13:30 2.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-ipod_nano_benu..> 01-Nov-2012 13:29 3.0M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-airmac_express..> 01-Nov-2012 13:29 3.0M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Aan-de-slag-Ne..> 01-Nov-2012 13:28 1.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iphone_priruck..> 01-Nov-2012 13:28 2.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Apple_TV_Opsti..> 01-Nov-2012 11:14 2.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPod_touch_2.2..> 01-Nov-2012 11:13 3.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-VoiceOver_Gett..> 01-Nov-2012 11:13 2.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPod_classic_1..> 01-Nov-2012 11:12 3.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPod_shuffle_3..> 01-Nov-2012 11:12 3.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Qmaster-4-User..> 01-Nov-2012 11:11 2.3M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPod_touch_2.1..> 01-Nov-2012 11:11 2.9M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Final-Cut-Pro-..> 01-Nov-2012 11:11 3.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-DEiPod_photo_B..> 01-Nov-2012 11:10 3.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-AirPort_Expres..> 01-Nov-2012 11:10 3.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-MacBook_Pro_15..> 01-Nov-2012 11:09 3.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Xserve-RAID-Pr..> 01-Nov-2012 11:09 3.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-MacBook_13inch..> 01-Nov-2012 11:08 3.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-MacBook_Pro_Mi..> 01-Nov-2012 11:07 3.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-AirPort_Networ..> 01-Nov-2012 11:07 3.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Compressor-4-B..> 01-Nov-2012 11:06 3.3M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-ipad_guide_de_..> 01-Nov-2012 11:05 3.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-ResEdit-Refere..> 01-Nov-2012 11:05 3.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-ipod_classic_f..> 28-Oct-2012 20:54 2.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-MacBook_Mid200..> 28-Oct-2012 20:49 2.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-MacBook_13inch..> 28-Oct-2012 20:49 1.9M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iMac_Mid2010_U..> 28-Oct-2012 20:49 2.0M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Guide_de_confi..> 28-Oct-2012 20:48 2.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-videocard.pdf-..> 28-Oct-2012 20:48 2.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-atacable.pdf-M..> 28-Oct-2012 20:47 2.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Pile-Interne-M..> 28-Oct-2012 20:47 2.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Boitier-de-l-o..> 28-Oct-2012 20:47 2.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-battery.cube.p..> 28-Oct-2012 20:47 2.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Couvercle-Manu..> 28-Oct-2012 20:46 2.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPhone_Finger_..> 28-Oct-2012 20:46 2.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Carte-AirPort-..> 28-Oct-2012 20:45 2.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Lecteur-Optiqu..> 28-Oct-2012 20:45 2.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Server_Adminis..> 28-Oct-2012 20:44 2.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Administration..> 28-Oct-2012 10:54 2.3M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Supplement_au_..> 28-Oct-2012 10:53 2.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Aperture_Perfo..> 28-Oct-2012 10:53 2.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Network_Servic..> 28-Oct-2012 10:52 2.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-MacBook_Pro_15..> 28-Oct-2012 10:52 2.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Final_Cut_Expr..> 28-Oct-2012 10:52 2.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-AirPort_Extrem..> 28-Oct-2012 10:51 2.3M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iOS_Business.p..> 28-Oct-2012 10:51 2.3M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPod_nano_5th_..> 28-Oct-2012 10:51 2.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Designing_AirP..> 28-Oct-2012 10:50 1.9M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Opstillingsvej..> 28-Oct-2012 10:50 2.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Administration..> 28-Oct-2012 10:49 2.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Time_Capsule_I..> 28-Oct-2012 10:49 2.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Feuille_de_ope..> 28-Oct-2012 10:48 2.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPod_2ndGen_US..> 28-Oct-2012 10:48 2.9M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Comment_demarr..> 28-Oct-2012 10:47 1.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-MacBook_Pro_17..> 28-Oct-2012 10:47 1.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPod_touch_2.0..> 28-Oct-2012 10:47 1.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Mac_OS_X_Serve..> 28-Oct-2012 10:46 2.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Mac_mini_Late2..> 28-Oct-2012 10:46 2.0M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-MacBookPro_Lat..> 28-Oct-2012 10:46 2.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Mise_a_niveau_..> 28-Oct-2012 10:46 2.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Aperture_Getti..> 23-Oct-2012 16:20 1.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Mac-OS-X-Serve..> 23-Oct-2012 16:19 2.3M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Apple_AirPort_..> 23-Oct-2012 16:19 2.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-MacBook_Pro_17..> 23-Oct-2012 16:18 2.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Administration..> 23-Oct-2012 16:18 2.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPod_touch_Fun..> 23-Oct-2012 16:17 2.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPhone-et-iPad..> 23-Oct-2012 16:17 2.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-F034-2262AXerv..> 22-Oct-2012 17:35 2.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Mac_OS_X_Serve..> 22-Oct-2012 17:00 2.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-F034-2262AXerv..> 22-Oct-2012 16:59 2.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Deploiement-d-..> 22-Oct-2012 16:59 2.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPod_mini_2nd_..> 22-Oct-2012 16:41 2.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-getting_starte..> 22-Oct-2012 16:41 2.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Aperture_Getti..> 22-Oct-2012 16:37 2.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-FUIntroduction..> 22-Oct-2012 16:37 2.3M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Logic_Studio_I..> 22-Oct-2012 16:36 2.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-sur-Fnac.com.htm 22-Oct-2012 16:36 2.3M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-imacg5_17inch_..> 22-Oct-2012 16:35 2.9M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Mac_Pro_Early2..> 22-Oct-2012 16:35 2.9M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Mac_mini_Mid20..> 22-Oct-2012 16:34 3.0M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-XsanGettingSta..> 22-Oct-2012 16:27 2.3M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iBook-G4-Getti..> 22-Oct-2012 16:26 2.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPod_nano_4th_..> 22-Oct-2012 16:26 3.0M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-imacg5_17inch_..> 22-Oct-2012 16:25 2.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Administration..> 22-Oct-2012 16:25 2.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-MacBook_Late20..> 22-Oct-2012 16:24 2.3M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Guide_de_confi..> 22-Oct-2012 16:24 2.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Guide_des_fonc..> 22-Oct-2012 16:24 2.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Mac_mini_UG-Ea..> 22-Oct-2012 16:23 2.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iphone_bluetoo..> 22-Oct-2012 16:23 2.0M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-FRLogic_Pro_7_..> 22-Oct-2012 16:14 275K
![[ ]](http://www.audentia-gestion.fr/icons/unknown.gif)
telecharger.php 17-Oct-2012 14:20 960
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Liste-documentation-..> 17-Oct-2012 10:02 62K
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Installation_d..> 17-Oct-2012 09:43 208K
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-MacBook_Pro_15..> 17-Oct-2012 09:43 420K
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-MacBook_Pro_13..> 17-Oct-2012 09:43 347K
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Pages-Guide-de..> 17-Oct-2012 09:43 580K
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Installation_d..> 17-Oct-2012 09:43 443K
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-PowerBookG3Use..> 17-Oct-2012 09:42 701K
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iBookG3_DualUS..> 17-Oct-2012 09:42 730K
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iMacG3_2002Mul..> 17-Oct-2012 09:42 761K
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-MainStage-2-Us..> 17-Oct-2012 09:42 1.0M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Concurrency-Pr..> 17-Oct-2012 09:42 1.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iOS-App-Progra..> 17-Oct-2012 09:42 1.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Advanced-Memor..> 17-Oct-2012 09:42 1.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Wireless_Might..> 17-Oct-2012 09:41 1.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-ipod_touch_fea..> 17-Oct-2012 09:41 1.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPod_nano_5th_..> 17-Oct-2012 09:41 1.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPod_classic_1..> 17-Oct-2012 09:40 2.0M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPod_shuffle_3..> 17-Oct-2012 09:40 2.0M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Applairportextreme_8..> 17-Oct-2012 09:40 2.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Color-User-Man..> 17-Oct-2012 09:40 2.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-ipod_shuffle_f..> 17-Oct-2012 09:39 2.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-aluminumAppleK..> 17-Oct-2012 09:39 2.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Shake_4_User_M..> 17-Oct-2012 09:38 3.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Aperture_Quick..> 17-Oct-2012 09:37 3.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-prise_en_charg..> 17-Oct-2012 09:37 2.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-FCP6_Formats_d..> 17-Oct-2012 09:36 2.9M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-imacg5_20inch_..> 17-Oct-2012 09:36 3.0M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iMac_Guide_de_..> 17-Oct-2012 09:35 3.0M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Installation_d..> 17-Oct-2012 09:35 3.0M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Guide_de_l_uti..> 17-Oct-2012 09:34 3.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-imacG5_20inch_..> 17-Oct-2012 09:34 3.0M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-imacg5_20inch_..> 17-Oct-2012 09:33 2.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-eMac_2005UserG..> 17-Oct-2012 09:33 2.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-premiers_conta..> 17-Oct-2012 09:33 2.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-premiers_conta..> 17-Oct-2012 09:33 2.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Nouvelles-fonc..> 17-Oct-2012 09:32 2.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-MacBook_Pro_Ea..> 17-Oct-2012 09:32 2.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iSightUserGuid..> 17-Oct-2012 09:31 2.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
ApplePowerMacG5_(Ear..> 17-Oct-2012 09:31 2.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-MacBook_Late20..> 17-Oct-2012 09:30 2.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-MacBook_Air_Su..> 17-Oct-2012 09:30 2.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Migration_10.4..> 17-Oct-2012 09:29 2.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-XsanAdminGuide..> 14-Oct-2012 21:10 2.0M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Xserve_Intel_D..> 14-Oct-2012 20:58 1.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Xsan_Migration..> 14-Oct-2012 20:58 1.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-PowerBookG4_UG..> 14-Oct-2012 20:58 1.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Welcome_to_Tig..> 14-Oct-2012 20:57 1.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Keynote2_UserG..> 14-Oct-2012 20:57 2.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-MacBook_UsersG..> 14-Oct-2012 18:40 1.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-MacBook_Air_Us..> 14-Oct-2012 18:40 1.3M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPod_shuffle_F..> 14-Oct-2012 18:39 1.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iMacG5_17inch_..> 14-Oct-2012 18:39 1.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Aperture_Perfo..> 14-Oct-2012 18:39 1.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iMacG5_iSight_..> 14-Oct-2012 18:39 1.9M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-QuickTime71_Us..> 14-Oct-2012 18:38 1.3M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-nikeipod_users..> 14-Oct-2012 18:22 1.3M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Aperture_Photo..> 14-Oct-2012 18:21 1.3M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPod_nano_6thg..> 14-Oct-2012 17:31 1.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-MacPro_HardDri..> 14-Oct-2012 17:30 1.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-MacBook_Pro_15..> 14-Oct-2012 17:22 2.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iWork09_formle..> 14-Oct-2012 17:22 3.0M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-PowerBook G4 K..> 14-Oct-2012 17:21 3.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Logic_Pro_8_Ge..> 14-Oct-2012 17:21 2.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iMacG5_Battery..> 14-Oct-2012 17:21 2.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Xserve_Intel_D..> 14-Oct-2012 17:20 1.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-StoreKitGuide...> 14-Oct-2012 17:20 1.9M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPod_classic_1..> 14-Oct-2012 17:03 2.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Apple_AirPort_..> 14-Oct-2012 17:02 2.3M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPad_iOS4_Bruk..> 14-Oct-2012 16:55 2.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-MacBook_13inch..> 14-Oct-2012 16:53 2.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPhone_3G_Vikt..> 14-Oct-2012 16:53 2.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-MacBook_13inch..> 14-Oct-2012 16:52 2.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iMac_Mid2010_U..> 14-Oct-2012 16:52 2.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-MacBook_Air_11..> 14-Oct-2012 16:51 2.9M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iDVD_08_Komme_..> 14-Oct-2012 16:51 2.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-imac_mid2011_u..> 14-Oct-2012 16:50 2.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-MacBook_Pro_15..> 14-Oct-2012 16:50 2.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-GarageBand_09_..> 14-Oct-2012 16:50 3.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-MacBook_13inch..> 14-Oct-2012 16:49 3.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPod_Fifth_Gen..> 14-Oct-2012 16:49 3.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Wireless_Keybo..> 14-Oct-2012 16:49 3.3M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-MacBook_13inch..> 14-Oct-2012 16:48 2.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPhone_3GS_Vik..> 14-Oct-2012 16:48 2.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-MacBook_13inch..> 14-Oct-2012 16:47 2.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Pages09_Bruker..> 14-Oct-2012 16:47 3.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-MacBook_Air_Br..> 14-Oct-2012 16:46 3.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPhoto_08_Komm..> 14-Oct-2012 16:46 3.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-ipad2_brukerha..> 14-Oct-2012 16:45 2.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Mac_mini_Early..> 14-Oct-2012 16:45 2.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-macbook_air_13..> 14-Oct-2012 16:45 2.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iMacG5_iSight_..> 14-Oct-2012 11:29 1.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Snow_Leopard_I..> 14-Oct-2012 11:29 1.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPhone_3GS_Hur..> 14-Oct-2012 11:29 1.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-TimeCapsule_Kl..> 14-Oct-2012 11:28 1.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Velkommen_til_..> 14-Oct-2012 11:28 1.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-MacBook_Pro_17..> 14-Oct-2012 11:28 1.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-MacBook_Pro_13..> 14-Oct-2012 11:27 1.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-NiPod_photo_Br..> 14-Oct-2012 11:27 1.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Numbers09_Bruk..> 14-Oct-2012 11:27 2.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-MacBook_Pro_15..> 14-Oct-2012 11:27 2.3M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-MacBook_Air_13..> 14-Oct-2012 11:26 2.3M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPod_touch_iOS..> 14-Oct-2012 11:26 2.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPod_nano_6thg..> 14-Oct-2012 11:25 2.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-GE_Money_Bank_..> 14-Oct-2012 11:24 1.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-ipad_brukerhan..> 14-Oct-2012 11:24 1.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPod_Handbok_S..> 14-Oct-2012 11:24 1.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Boot_Camp_Inst..> 14-Oct-2012 11:24 1.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Network-Servic..> 14-Oct-2012 11:23 1.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPod_classic_1..> 14-Oct-2012 11:23 1.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iMovie_08_Komm..> 14-Oct-2012 11:23 1.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Apple_TV_Klarg..> 14-Oct-2012 11:23 1.3M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPhone_4_Vikti..> 14-Oct-2012 11:22 1.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPod_shuffle_3..> 14-Oct-2012 11:22 1.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-MacOSX10.3_Wel..> 14-Oct-2012 11:22 1.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Boot_Camp_Inst..> 14-Oct-2012 11:22 1.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPod_touch_2.1..> 14-Oct-2012 11:21 1.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-PowerMacG5_Use..> 14-Oct-2012 11:21 1.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Welcome_to_Leo..> 14-Oct-2012 11:21 1.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-System_Image_A..> 14-Oct-2012 09:43 2.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Administration..> 14-Oct-2012 09:42 2.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-L-Apple-Multip..> 14-Oct-2012 09:42 2.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-MagSafe_Airlin..> 14-Oct-2012 09:42 1.9M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-AirPort_Expres..> 14-Oct-2012 09:42 1.9M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Mail_Service_v..> 14-Oct-2012 09:41 2.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPod_2ndGen_US..> 14-Oct-2012 09:41 2.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Network_Servic..> 14-Oct-2012 09:40 2.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-User_Managemen..> 14-Oct-2012 09:40 2.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Aperture_Insta..> 14-Oct-2012 09:39 2.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-PCIDualAttache..> 14-Oct-2012 09:39 2.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iOS_Business_M..> 14-Oct-2012 09:39 2.3M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple_Component_AV_C..> 14-Oct-2012 09:38 2.3M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-AppleCare_Prot..> 14-Oct-2012 09:38 2.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Mac_OS_X_Serve..> 14-Oct-2012 09:37 3.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPod_touch_2.2..> 14-Oct-2012 09:37 2.0M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-atadrive_pmg4m..> 14-Oct-2012 09:36 2.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPhone開発ã‚..> 14-Oct-2012 09:36 2.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-AirMac-カーã..> 14-Oct-2012 09:36 2.0M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Power-Mac-G4-M..> 14-Oct-2012 09:36 1.3M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPhone_3GS_Fin..> 14-Oct-2012 09:35 1.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iMac_Intel-bas..> 14-Oct-2012 09:35 1.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Print_Service...> 13-Oct-2012 10:09 2.0M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-MacOSX10.3_Wel..> 13-Oct-2012 09:45 1.9M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-g4mdd-fw800-lo..> 13-Oct-2012 09:44 1.9M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Motion_3_New_F..> 13-Oct-2012 09:44 1.9M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Windows_Servic..> 13-Oct-2012 09:44 1.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-DVD_Studio_Pro..> 13-Oct-2012 09:43 3.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iBookG3_14inch..> 13-Oct-2012 09:43 1.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-boot_camp_inst..> 13-Oct-2012 09:43 3.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Mac-OS-X-Serve..> 13-Oct-2012 09:42 3.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Administration..> 13-Oct-2012 09:41 4.0M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-guide_des_fonc..> 13-Oct-2012 09:41 4.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Installation_d..> 13-Oct-2012 09:40 4.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iMac_Intel-bas..> 13-Oct-2012 09:40 4.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-PowerBookG4_17..> 13-Oct-2012 09:39 3.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Xserve_Setup_G..> 13-Oct-2012 09:39 3.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Decouverte_d_A..> 13-Oct-2012 09:38 3.3M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-guide_de_l_uti..> 13-Oct-2012 09:38 3.9M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Mac_Pro_Early2..> 13-Oct-2012 09:37 3.9M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Web_Technologi..> 13-Oct-2012 09:36 4.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-QT_Streaming_S..> 13-Oct-2012 09:35 4.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Nouvellesfonct..> 13-Oct-2012 09:35 2.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-macbook_air_11..> 12-Oct-2012 21:01 3.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iphone_guide_d..> 12-Oct-2012 21:01 3.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-imac_mid2011_u..> 12-Oct-2012 21:01 3.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Motion_Supplem..> 12-Oct-2012 21:00 3.9M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-mac_pro_server..> 12-Oct-2012 20:59 3.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-RemoteSupportJ..> 12-Oct-2012 20:42 3.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPod_nano_6thg..> 12-Oct-2012 20:42 3.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-World_Travel_A..> 12-Oct-2012 20:42 3.3M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Recycle_Contra..> 12-Oct-2012 20:41 3.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-081811_APP_iPh..> 12-Oct-2012 20:41 3.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-ARA_Japan.pdf.htm 12-Oct-2012 20:40 3.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPod_shuffle_4..> 12-Oct-2012 20:40 3.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-mac_integratio..> 12-Oct-2012 20:38 3.0M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Guide_de_confi..> 12-Oct-2012 20:38 2.9M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-AppleCare-prot..> 12-Oct-2012 13:41 4.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
PowerBook-G4-15-pouc..> 12-Oct-2012 13:19 3.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-PowerBook-G4-1..> 12-Oct-2012 13:18 2.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Remote-Desktop..> 12-Oct-2012 13:18 3.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Manuel-de-l-ad..> 12-Oct-2012 13:18 3.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-CUPS−Manuel-..> 12-Oct-2012 13:17 3.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-The-gnu-Binary..> 12-Oct-2012 13:16 3.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Motion-5-Manue..> 12-Oct-2012 13:16 3.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Mac_mini_Intel..> 12-Oct-2012 13:15 2.9M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Compressor_3_B..> 12-Oct-2012 13:14 3.0M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Mac_mini_Early..> 12-Oct-2012 13:14 3.0M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-emac-memory.pd..> 12-Oct-2012 13:13 3.0M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-aperture_photo..> 12-Oct-2012 13:13 3.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Logic9-examen-..> 12-Oct-2012 13:12 3.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Final-Cut-Pro-..> 12-Oct-2012 13:12 3.3M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-mac_integratio..> 12-Oct-2012 13:11 2.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Prise_en_charg..> 12-Oct-2012 13:11 2.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Mac_mini_Intel..> 12-Oct-2012 13:11 2.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Premiers__cont..> 12-Oct-2012 13:11 2.3M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-ard_admin_guid..> 12-Oct-2012 13:10 2.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Nike_+_iPod_Us..> 12-Oct-2012 13:10 2.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Open_Directory..> 12-Oct-2012 13:09 1.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Final-Cut-Pro-..> 12-Oct-2012 13:09 1.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Tiger_Guide_In..> 12-Oct-2012 13:08 1.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-premiers_conta..> 12-Oct-2012 13:08 1.9M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Guide_de_l_adm..> 12-Oct-2012 13:08 2.3M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Apple-Installa..> 12-Oct-2012 13:08 2.0M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Apple-iPad-Man..> 10-Oct-2012 16:03 2.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple_Universal_Dock..> 10-Oct-2012 16:02 2.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-MacBook_Pro_15..> 10-Oct-2012 16:02 2.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-MainStag- 2-ut..> 10-Oct-2012 16:01 2.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Xserve_Guide_d..> 10-Oct-2012 16:01 2.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Logic-Pro-9-Pr..> 10-Oct-2012 16:01 3.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Impulse-Respon..> 10-Oct-2012 16:00 2.9M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPod-shuffle-B..> 10-Oct-2012 15:59 3.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPod-shuffle-B..> 10-Oct-2012 15:59 3.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-boot_camp_inst..> 10-Oct-2012 15:58 3.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Manual_de_func..> 10-Oct-2012 15:58 3.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Xserve_TO_J070..> 10-Oct-2012 08:01 4.0M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Logic-Pro-9-Ef..> 10-Oct-2012 07:58 3.0M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Guide_de_l_uti..> 10-Oct-2012 07:57 2.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPhone_Bluetoo..> 10-Oct-2012 07:57 2.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-services_de_co..> 10-Oct-2012 07:56 2.9M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-premiers_conta..> 10-Oct-2012 07:56 2.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iMacG5_iSight_..> 10-Oct-2012 07:55 3.0M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Mac_Pro_User_G..> 10-Oct-2012 07:55 3.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-systemoverview..> 10-Oct-2012 07:54 3.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-MainStage-User..> 10-Oct-2012 07:24 5.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Compressor-4-U..> 10-Oct-2012 07:23 5.9M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Administration..> 10-Oct-2012 07:22 3.0M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iBookG4Getting..> 10-Oct-2012 07:21 3.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPod_classic_1..> 10-Oct-2012 07:21 3.3M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPod_shuffle_3..> 10-Oct-2012 07:20 3.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-PowerBookG4_15..> 09-Oct-2012 18:51 4.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple_iPod_touch_Use..> 09-Oct-2012 18:40 3.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-guide_des_fonc..> 09-Oct-2012 18:40 3.9M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iDVD5_Getting_..> 09-Oct-2012 18:38 4.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iphone_user_gu..> 09-Oct-2012 18:38 4.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iMac_Late2009_..> 09-Oct-2012 18:37 4.3M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iMac_Mid2010_U..> 09-Oct-2012 18:37 4.3M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-macbook_pro_13..> 09-Oct-2012 18:36 4.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-MacBook_Pro_15..> 09-Oct-2012 18:36 4.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-LED_Cinema_Dis..> 09-Oct-2012 18:34 4.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-MacBook_Pro_15..> 09-Oct-2012 18:34 4.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Logic_Pro_8.0_..> 09-Oct-2012 18:33 4.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple_ipad_user_guid..> 01-Oct-2012 09:56 3.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple_iphone_upute_z..> 01-Oct-2012 09:53 3.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple_iphone_4s_fing..> 01-Oct-2012 09:50 2.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple_Time_Capsule_E..> 01-Oct-2012 09:48 2.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple_Guide_de_l_uti..> 01-Oct-2012 09:46 2.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple_macbook_pro_13..> 01-Oct-2012 09:44 2.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple_macbook_pro_re..> 01-Oct-2012 09:37 2.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple_iphone_4s_fing..> 01-Oct-2012 09:35 2.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple_ipod_touch_man..> 01-Oct-2012 09:30 2.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple_TV_2nd_gen_Set..> 01-Oct-2012 09:28 2.3M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple_ipod_touch_use..> 01-Oct-2012 09:26 2.3M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
apple_Macintosh-User..> 01-Oct-2012 09:24 2.0M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
apple_macbook_pro-re..> 01-Oct-2012 09:21 3.3M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
apple_apple_tv_3rd_g..> 01-Oct-2012 09:19 3.3M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
apple_iphone_brukerh..> 01-Oct-2012 09:17 3.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
apple_iphone_5_info.htm 01-Oct-2012 09:15 2.9M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
apple_iphone_gebruik..> 01-Oct-2012 09:13 2.9M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
apple_earpods_user_g..> 01-Oct-2012 09:11 2.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
apple_tv_3rd_gen_imp..> 22-Sep-2012 18:53 2.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple_TV_2e_gen_Guid..> 22-Sep-2012 18:51 2.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-MacBook_Pro_13..> 22-Sep-2012 18:49 3.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-MacBook_13inch..> 22-Sep-2012 18:48 3.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-MacBook_Air_Gu..> 22-Sep-2012 18:41 3.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple_Xserve_Diagnos..> 22-Sep-2012 18:39 3.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-MacBook_Pro_17..> 22-Sep-2012 18:35 3.3M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Apple_Wireless..> 22-Sep-2012 18:31 3.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-NVIDIA_GeForce..> 22-Sep-2012 18:30 3.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-CinemaDisplays..> 22-Sep-2012 18:26 3.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPhone_Finger_..> 22-Sep-2012 18:22 3.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Boot_Camp_Guid..> 22-Sep-2012 12:03 3.1M
![[ ]](http://www.audentia-gestion.fr/icons/layout.gif)
Apple-iphone_5_guide..> 22-Sep-2012 12:01 14M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPhone-5-Guide..> 22-Sep-2012 12:00 3.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iphone_ios5_gu..> 22-Sep-2012 11:59 2.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-mac_pro_mid201..> 22-Sep-2012 11:58 2.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPod_nano_6thg..> 22-Sep-2012 11:58 3.0M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-thunderbolt_di..> 22-Sep-2012 11:57 2.9M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Numbers09_guid..> 22-Sep-2012 11:56 2.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-boot_camp_inst..> 22-Sep-2012 11:56 2.9M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-imacdebut2006g..> 22-Sep-2012 11:55 2.9M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-MacBook_Pro_Us..> 22-Sep-2012 11:55 2.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iBook.htm 22-Sep-2012 11:54 2.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Apple_Qmaster_..> 22-Sep-2012 11:54 2.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPhone_3G_Guid..> 22-Sep-2012 11:53 2.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Wireless_Might..> 22-Sep-2012 11:53 2.3M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Logic_Studio_0..> 22-Sep-2012 11:52 2.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Xserve_2008_Gu..> 22-Sep-2012 11:52 2.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iMac_24inch_Ve..> 22-Sep-2012 11:51 2.9M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Mac-OS-X-Serve..> 22-Sep-2012 11:51 2.9M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Decouverte_d_A..> 22-Sep-2012 11:50 2.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-PowerBookG4_12..> 22-Sep-2012 11:13 2.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-ipad_petunjuk_..> 21-Sep-2012 16:40 2.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
apple-airmac_express..> 21-Sep-2012 16:36 2.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-QuickTake-150.htm 21-Sep-2012 16:32 2.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Apple_TV_2nd_g..> 21-Sep-2012 16:28 2.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Macintosh-Perf..> 21-Sep-2012 16:25 2.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-MacBook_Pro_15..> 21-Sep-2012 15:03 2.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-macbook_air-11..> 21-Sep-2012 14:59 2.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iphone_brugerh..> 21-Sep-2012 14:57 2.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPod_shuffle_4..> 21-Sep-2012 14:54 2.9M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-compressor_4_u..> 21-Sep-2012 14:51 3.3M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-share_monitor_..> 21-Sep-2012 14:49 2.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-macbook_air-13..> 21-Sep-2012 14:47 3.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-macbook_pro-15..> 21-Sep-2012 14:45 3.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Guide_de_l_uti..> 21-Sep-2012 14:31 3.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPodshuffledel..> 21-Sep-2012 14:28 3.3M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-MacBook_13inch..> 21-Sep-2012 14:25 3.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPhone_Deux_do..> 21-Sep-2012 14:20 3.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-ipad_2_manual_..> 21-Sep-2012 14:18 3.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-macbook_air-11..> 21-Sep-2012 14:15 3.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Power-Macintos..> 21-Sep-2012 14:08 2.9M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Enterprise_Dep..> 21-Sep-2012 10:42 2.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPhone-Benutze..> 21-Sep-2012 10:39 4.0M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPhone-Manual-..> 21-Sep-2012 10:36 3.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPhone-User-Gu..> 21-Sep-2012 10:32 3.3M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iphone_4s_il_m..> 21-Sep-2012 10:17 3.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iphone_user_gu..> 21-Sep-2012 10:12 3.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPhone_Anvanda..> 21-Sep-2012 10:09 3.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iphone_manual_..> 21-Sep-2012 10:06 3.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iphone_user_gu..> 21-Sep-2012 10:03 4.0M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iphone_manuali..> 21-Sep-2012 10:00 3.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-ipod_touch_use..> 21-Sep-2012 09:57 3.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-ipad_user_guid..> 21-Sep-2012 09:52 3.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iphone_4s_pods..> 21-Sep-2012 09:50 3.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-macbook_air-13..> 21-Sep-2012 09:46 3.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-ipod_touch_use..> 21-Sep-2012 09:44 3.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-ipad_brugerhan..> 21-Sep-2012 09:41 3.0M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Case-Design-Gu..> 21-Sep-2012 09:36 2.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Accessibility-..> 21-Sep-2012 09:33 2.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iphone_4s_info..> 21-Sep-2012 09:28 2.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPhone_3G_Impo..> 21-Sep-2012 09:25 2.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPhone_Bluetoo..> 21-Sep-2012 09:24 2.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Premiers_conta..> 18-Sep-2012 10:55 2.3M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPod_shuffle_F..> 18-Sep-2012 10:51 2.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iphone_4s_impo..> 18-Sep-2012 10:49 3.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPhone_iOS3.1_..> 18-Sep-2012 10:47 3.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-User-s-Guide-M..> 18-Sep-2012 10:46 3.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-QuickTake-100-..> 18-Sep-2012 10:42 2.9M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Personal-Laser..> 18-Sep-2012 10:39 2.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Cinema_Tools_4..> 18-Sep-2012 10:36 2.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iMac_G5_de_lut..> 18-Sep-2012 10:34 2.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Manuel_de_l'ut..> 18-Sep-2012 10:32 2.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-TimeCapsule_Se..> 18-Sep-2012 09:45 1.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-guide_de_confi..> 18-Sep-2012 09:40 3.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Color_1.0_User..> 18-Sep-2012 09:37 4.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Compressor_3_U..> 18-Sep-2012 09:35 4.0M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Manuel_de_l_ut..> 18-Sep-2012 09:32 3.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-macbook_air-11..> 18-Sep-2012 09:29 3.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-macbook_pro-13..> 18-Sep-2012 09:27 3.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-macbook_pro-re..> 18-Sep-2012 09:25 3.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-macbook_air-mi..> 18-Sep-2012 09:18 3.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-macbook_air_11..> 18-Sep-2012 09:14 3.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Compressor-4-B..> 18-Sep-2012 09:12 4.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-thunderbolt_di..> 18-Sep-2012 09:09 3.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Manuale-Utente..> 18-Sep-2012 09:07 3.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Leopard_Instal..> 18-Sep-2012 09:03 3.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-final_cut_pro_..> 18-Sep-2012 09:01 3.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-imacg5_HD17_DI..> 18-Sep-2012 08:58 3.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-PowerMacG5_Use..> 18-Sep-2012 08:55 3.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Macmini_Guide_..> 18-Sep-2012 08:53 3.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Manuel_de_l_ut..> 18-Sep-2012 08:50 3.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Instruments_et..> 18-Sep-2012 08:48 4.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Nouvelles_fonc..> 18-Sep-2012 07:58 3.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Workgroup-Serv..> 18-Sep-2012 07:41 3.9M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Macintosh-Perf..> 18-Sep-2012 07:41 4.0M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Macintosh-Perf..> 18-Sep-2012 07:40 4.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-PowerBook-User..> 18-Sep-2012 07:40 4.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Keynote-2-Guid..> 18-Sep-2012 07:39 4.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-MacBook_Early_..> 18-Sep-2012 07:38 4.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-macbook_air_gu..> 18-Sep-2012 07:37 4.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-imacG5_17inch_..> 18-Sep-2012 07:37 4.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-livetype_2_use..> 18-Sep-2012 07:36 4.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
AppleTV_SetupGuide.htm 18-Sep-2012 07:35 3.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Aperture_2_Rac..> 18-Sep-2012 07:34 3.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Manuel_de_l_ut..> 18-Sep-2012 07:34 3.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPod-nano-Guid..> 17-Sep-2012 17:31 3.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPod-nano-Guid..> 17-Sep-2012 17:30 3.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPod-nano-Guid..> 17-Sep-2012 17:20 3.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-Boot-Camp-Guid..> 17-Sep-2012 17:18 3.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Apple-iPad-User-Guid..> 17-Sep-2012 17:15 3.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
APPLEmanuelutilisate..> 05-Sep-2012 07:20 7.0M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
User-Guide-iPad-For-..> 05-Sep-2012 07:16 2.9M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Guide-d-installation..> 05-Sep-2012 07:03 2.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Guide-de-l-utilisate..> 05-Sep-2012 06:57 2.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Guide-de-l-utilisate..> 05-Sep-2012 06:54 2.6M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Guide-de-l-utilisate..> 05-Sep-2012 06:50 3.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Guide-de-l-utilisate..> 05-Sep-2012 06:41 3.9M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Guide-de-configurati..> 04-Sep-2012 16:49 3.9M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Guide-de-configurati..> 04-Sep-2012 16:45 3.9M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Guide-de-l-utilisate..> 04-Sep-2012 16:41 3.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Guide-de-l-administr..> 04-Sep-2012 16:36 3.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Guide-de-deploiement..> 04-Sep-2012 16:32 3.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Guide-de-l-utilisate..> 04-Sep-2012 16:21 3.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Guide-de-l-utilisate..> 04-Sep-2012 16:19 2.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Guide-de-l-utilisate..> 04-Sep-2012 16:15 2.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Guide-de-l-Utilisate..> 04-Sep-2012 16:11 2.3M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Guide-de-l-Utilisate..> 04-Sep-2012 16:01 2.2M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Guide-de-l-Utilisate..> 04-Sep-2012 15:57 2.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Guide-de-l-Utilisate..> 04-Sep-2012 15:53 1.9M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Guide-de-l-Utilisate..> 04-Sep-2012 15:48 1.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Guide-de-l-Utilisate..> 04-Sep-2012 12:49 1.3M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Guide-de-l-Utilisate..> 04-Sep-2012 12:30 4.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Guide-de-l-Utilisate..> 04-Sep-2012 12:23 4.3M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Guide-de-l-Utilisate..> 04-Sep-2012 12:16 4.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Guide-de-l-Utilisate..> 04-Sep-2012 12:05 4.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Guide-de-l-Utilisate..> 04-Sep-2012 12:00 4.3M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Guide-de-l-utilisate..> 04-Sep-2012 12:00 5.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Guide-de-l-Utilisate..> 04-Sep-2012 11:52 4.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
PowerBook-G4-15-pouc..> 04-Sep-2012 11:21 3.7M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
iPad-Guide-de-l-util..> 04-Sep-2012 11:08 5.1M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Guide-de-l-utilisate..> 04-Sep-2012 10:51 3.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Guide-de-l-utilisate..> 04-Sep-2012 10:37 3.4M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Guide-de-l-utilisate..> 04-Sep-2012 10:32 2.8M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Guide-de-l-utilisate..> 04-Sep-2012 10:26 2.5M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
Power-Mac-G5-Guide-d..> 04-Sep-2012 10:20 2.0M
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
iPod_nano_6thgen_Gui..> 30-Aug-2012 10:53 142K
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
iphone_guide_de_l_ut..> 30-Aug-2012 10:36 377K
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
iPod_nano_6thgen_Use..> 29-Jan-2012 11:37 119K
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
iPadguideutilisateur..> 29-Jan-2012 10:59 379K
![[ ]](http://www.audentia-gestion.fr/icons/layout.gif)
PowerMacG5_UserGuide..> 24-Jan-2012 09:55 9.2M
![[ ]](http://www.audentia-gestion.fr/icons/layout.gif)
TimeCapsule_SetupGui..> 24-Jan-2012 09:55 843K
![[ ]](http://www.audentia-gestion.fr/icons/layout.gif)
quicktime_guide_de_l..> 24-Jan-2012 09:54 617K
![[ ]](http://www.audentia-gestion.fr/icons/layout.gif)
premiers_contacts_av..> 24-Jan-2012 09:54 1.1M
![[ ]](http://www.audentia-gestion.fr/icons/layout.gif)
PowerBookG4_12inch1...> 24-Jan-2012 09:54 2.3M
![[ ]](http://www.audentia-gestion.fr/icons/layout.gif)
PB_G4_15inch1.33-1.5..> 24-Jan-2012 09:53 2.2M
![[ ]](http://www.audentia-gestion.fr/icons/layout.gif)
MacBookPro_17inch_Us..> 24-Jan-2012 09:53 3.2M
![[ ]](http://www.audentia-gestion.fr/icons/layout.gif)
macbookpro_15and17-i..> 24-Jan-2012 09:52 1.8M
![[ ]](http://www.audentia-gestion.fr/icons/layout.gif)
MacBook_Early_2008_G..> 24-Jan-2012 09:52 2.4M
![[ ]](http://www.audentia-gestion.fr/icons/layout.gif)
macbook_air_guide_de..> 24-Jan-2012 09:52 2.0M
![[ ]](http://www.audentia-gestion.fr/icons/layout.gif)
Instruments_et_effet..> 24-Jan-2012 09:51 11M
![[ ]](http://www.audentia-gestion.fr/icons/layout.gif)
livetype_2_user_manu..> 24-Jan-2012 09:51 3.9M
![[ ]](http://www.audentia-gestion.fr/icons/layout.gif)
iSightUserGuide.pdf 24-Jan-2012 09:50 882K
![[ ]](http://www.audentia-gestion.fr/icons/layout.gif)
ipodhifi2006guide.pdf 24-Jan-2012 09:50 5.1M
![[ ]](http://www.audentia-gestion.fr/icons/layout.gif)
guide_des_fonctionna..> 24-Jan-2012 09:48 6.6M
![[ ]](http://www.audentia-gestion.fr/icons/layout.gif)
iMac_G5_de_lutilisat..> 24-Jan-2012 09:48 3.0M
![[ ]](http://www.audentia-gestion.fr/icons/layout.gif)
iMac_Early2008_Guide..> 24-Jan-2012 09:47 2.5M
![[ ]](http://www.audentia-gestion.fr/icons/layout.gif)
Guide_de_lutilisateu..> 24-Jan-2012 09:46 548K
![[ ]](http://www.audentia-gestion.fr/icons/layout.gif)
Guide_de_l_utilisate..> 24-Jan-2012 09:46 727K
![[ ]](http://www.audentia-gestion.fr/icons/layout.gif)
Guide_de_l_utilisate..> 24-Jan-2012 09:46 4.7M
![[ ]](http://www.audentia-gestion.fr/icons/layout.gif)
guide_de_l_utilisate..> 24-Jan-2012 09:46 4.1M
![[ ]](http://www.audentia-gestion.fr/icons/layout.gif)
guide_de_l_utilisate..> 24-Jan-2012 09:44 3.2M
![[ ]](http://www.audentia-gestion.fr/icons/layout.gif)
Comment_demarrer_Leo..> 24-Jan-2012 09:44 8.1M
![[ ]](http://www.audentia-gestion.fr/icons/layout.gif)
Guide_de_l_utilisate..> 24-Jan-2012 09:43 3.7M
![[ ]](http://www.audentia-gestion.fr/icons/layout.gif)
guide_de_configurati..> 24-Jan-2012 09:42 909K
![[TXT]](http://www.audentia-gestion.fr/icons/text.gif)
AppleMacBookAir14 GH..> 26-Oct-2011 15:54 7.7K
The NewtonScript
Programming Language
Apple Computer, Inc.
© 1996, Apple Computer, Inc.
All rights reserved.
No part of this publication or the
software described in it may be
reproduced, stored in a retrieval
system, or transmitted, in any form
or by any means, mechanical,
electronic, photocopying,
recording, or otherwise, without
prior written permission of Apple
Computer, Inc., except in the normal
use of the software or to make a
backup copy of the software. The
same proprietary and copyright
notices must be affixed to any
permitted copies as were affixed to
the original. This exception does not
allow copies to be made for others,
whether or not sold, but all of the
material purchased (with all
backup copies) may be sold, given,
or loaned to another person. Under
the law, copying includes
translating into another language or
format. You may use the software on
any computer owned by you, but
extra copies cannot be made for this
purpose.
Printed in the United States of
America.
The Apple logo is a registered
trademark of Apple Computer, Inc.
Use of the “keyboard” Apple logo
(Option-Shift-K) for commercial
purposes without the prior written
consent of Apple may constitute
trademark infringement and unfair
competition in violation of federal
and state laws.
No licenses, express or implied, are
granted with respect to any of the
technology described in this book.
Apple retains all intellectual
property rights associated with the
technology described in this book.
This book is intended to assist
application developers to develop
applications only for licensed
Newton platforms.
Apple Computer, Inc.
20525 Mariani Avenue
Cupertino, CA 95014
408-996-1010
Apple, the Apple logo, APDA,
AppleLink, LaserWriter,
Macintosh, and Newton are
trademarks of Apple Computer,
Inc., registered in the United States
and other countries.
The light bulb logo, MessagePad,
NewtonScript, and Newton Toolkit
are trademarks of Apple Computer,
Inc.
Adobe Illustrator and PostScript
are trademarks of Adobe Systems
Incorporated, which may be
registered in certain jurisdictions.
FrameMaker is a registered
trademark of Frame Technology
Corporation.
Helvetica and Palatino are
registered trademarks of Linotype
Company.
ITC Zapf Dingbats is a registered
trademark of International
Typeface Corporation.
Simultaneously published in the
United States and Canada.
LIMITED WARRANTY ON MEDIA
AND REPLACEMENT
If you discover physical defects in the
manual or in the media on which a
software product is distributed, APDA
will replace the media or manual at no
charge to you provided you return the
item to be replaced with proof of
purchase to APDA.
ALL IMPLIED WARRANTIES ON
THIS MANUAL, INCLUDING
IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS
FOR A PARTICULAR PURPOSE, ARE
LIMITED IN DURATION TO NINETY
(90) DAYS FROM THE DATE OF THE
ORIGINAL RETAIL PURCHASE OF
THIS PRODUCT.
Even though Apple has reviewed this
manual, APPLE MAKES NO
WARRANTY OR REPRESENTATION,
EITHER EXPRESS OR IMPLIED,
WITH RESPECT TO THIS MANUAL,
ITS QUALITY, ACCURACY,
MERCHANTABILITY, OR FITNESS
FOR A PARTICULAR PURPOSE. AS A
RESULT, THIS MANUAL IS SOLD
“AS IS,” AND YOU, THE
PURCHASER, ARE ASSUMING THE
ENTIRE RISK AS TO ITS QUALITY
AND ACCURACY.
IN NO EVENT WILL APPLE BE
LIABLE FOR DIRECT, INDIRECT,
SPECIAL, INCIDENTAL, OR
CONSEQUENTIAL DAMAGES
RESULTING FROM ANY DEFECT OR
INACCURACY IN THIS MANUAL,
even if advised of the possibility of
such damages.
THE WARRANTY AND REMEDIES
SET FORTH ABOVE ARE EXCLUSIVE
AND IN LIEU OF ALL OTHERS,
ORAL OR WRITTEN, EXPRESS OR
IMPLIED. No Apple dealer, agent, or
employee is authorized to make any
modification, extension, or addition to
this warranty.
Some states do not allow the exclusion
or limitation of implied warranties or
liability for incidental or consequential
damages, so the above limitation or
exclusion may not apply to you. This
warranty gives you specific legal rights,
and you may also have other rights
which vary from state to state.
11/95
iii
Contents
Figures, Tables, and Listings ix
Preface About This Book xi
About the Audience xi
Related Books xi
Sample Code xii
Conventions Used in This Book xiii
Special Fonts in Text xiii
Syntax Conventions xiv
Developer Products and Support xv
Undocumented System Software Objects xvi
Chapter 1 Overview 1-1
Introduction 1-1
Semantic Overview 1-2
Expressions 1-2
The Object Model 1-2
Data Types and Classes 1-3
Scope 1-4
Extent 1-6
Garbage Collection 1-6
How Is NewtonScript Dynamic? 1-7
Basic Syntax 1-8
Semicolon Separators 1-8
In-Line Object Syntax 1-9
Character Set 1-9
Comments 1-10
A Code Example 1-10
Compatibility 1-11
iv
Chapter 2 Objects, Expressions, and Operators 2-1
Objects and the Class System 2-1
Classes and Subclasses 2-3
Immediate and Reference Values 2-5
The NewtonScript Objects 2-8
Character 2-8
Boolean 2-9
Integer 2-10
Real 2-11
Symbol 2-12
String 2-13
Array 2-15
Array Accessor 2-16
Frame 2-17
Frame Accessor 2-19
Path Expression 2-20
Expressions 2-22
Variables 2-23
Local 2-23
Constants 2-26
Constant 2-26
Quoted Constant 2-28
Operators 2-29
Assignment Operator 2-29
Arithmetic Operators 2-31
Equality and Relational Operators 2-33
Boolean Operators 2-34
Unary Operators 2-35
String Operators 2-36
Exists 2-37
Operator Precedence 2-38
v
Chapter 3 Flow of Control 3-1
Compound Expressions 3-1
If…Then…Else 3-2
Iterators 3-3
For 3-4
Foreach 3-6
Loop 3-10
While 3-11
Repeat 3-12
Break 3-13
Exception Handling 3-13
Working with Exceptions 3-14
Defining Exceptions 3-15
Exception Symbol Parts 3-16
Exception Frames 3-16
The Try Statement 3-18
Throwing Exceptions 3-19
Throwing an Exception to Another Handler 3-20
Catching Exceptions 3-21
Responding to Exceptions 3-24
Chapter 4 Functions and Methods 4-1
About Functions and Methods 4-1
Function Constructor 4-2
Return 4-3
Function Invocations 4-3
Message-Send Operators 4-4
Call With 4-6
Global Function Declaration 4-7
Global Function Invocation 4-8
Passing Parameters 4-8
vi
Function Objects 4-9
Function Context 4-10
The Lexical Environment 4-10
The Message Environment 4-11
An Example Function Object 4-13
Using Function Objects to Implement Abstract Data
Types 4-15
Native Functions 4-16
Chapter 5 Inheritance and Lookup 5-1
Inheritance 5-2
Prototype Inheritance 5-2
Creating Prototype Frames 5-2
Prototype Inheritance Rules 5-3
Parent Inheritance 5-4
Creating Parent Frames 5-4
Parent Inheritance Rules 5-5
Combining Prototype and Parent Inheritance 5-6
Inheritance Rules for Slot and Message Lookup 5-7
Inheritance Rules for Testing for the Existence of a Slot 5-9
Inheritance Rules for Setting Slot Values 5-9
An Object-Oriented Example 5-11
Chapter 6 Built-In Functions 6-1
Compatibility 6-2
New Functions 6-2
New Object System Functions 6-2
New String Functions 6-3
New Array Functions 6-3
New Sorted Array Functions 6-3
New Message Sending Functions 6-4
vii
New Data Stuffing Functions 6-4
New Functions to Get and Set Globals 6-4
New Miscellaneous Functions 6-4
Obsolete Functions 6-5
Object System Functions 6-5
String Functions 6-16
Bitwise Functions 6-23
Array Functions 6-23
Sorted Array Functions 6-36
Integer Math Functions 6-45
Floating Point Math Functions 6-48
Managing the Floating Point Environment 6-65
Financial Function 6-69
Exception Functions 6-71
Message Sending Functions 6-73
Data Extraction Functions 6-77
Data Stuffing Functions 6-81
Getting and Setting Global Variables and Functions 6-86
Miscellaneous Functions 6-89
Summary of Functions and Methods 6-92
Appendix A Reserved Words A-1
Appendix B Special Character Codes B-1
Appendix C Class-Based Programming C-1
What Are Classes Good For? C-1
Classes: A Brief Reminder C-2
Inheritance in NewtonScript C-3
viii
The Basic Idea C-3
Practical Issues C-6
Class Variables C-7
Superclasses C-9
Using Classes to Encapsulate Soup Entries C-10
ROM Instance Prototypes C-10
Leaving Instances Behind C-11
Conclusion C-11
Appendix D NewtonScript Syntax Definition D-1
About the Grammar D-2
Phrasal Grammar D-2
Lexical Grammar D-12
Operator Precedence D-16
Appendix E Quick Reference Card E-1
Glossary GL-1
Index IN-1
ix
Figures, Tables, and Listings
Chapter 1 Overview 1-1
Figure 1-1 A sample data structure 1-4
Listing 1-1 A simple frame 1-3
Listing 1-2 A dynamic example 1-11
Chapter 2 Objects, Expressions, and Operators 2-1
Figure 2-1 NewtonScript built-in classes 2-3
Figure 2-2 NewtonScript code sample 2-6
Figure 2-3 C code sample 2-7
Table 2-1 Characters with special meanings 2-9
Table 2-2 Codes for specifying special characters within
strings 2-14
Table 2-3 Special slot names and their specifications 2-19
Table 2-4 Constant substitution work-arounds 2-27
Table 2-5 Operator precedence and associativity 2-39
Chapter 3 Flow of Control 3-1
Figure 3-1 Data objects and their relationships 3-9
Table 3-1 Result comparison for the iterators foreach and
foreach deeply 3-10
Table 3-2 Exception frame data slot name and contents 3-17
Table 3-3 Exception frame examples 3-17
Listing 3-1 Exception symbols 3-16
Listing 3-2 The Throw function 3-19
Listing 3-3 Several onexception clauses ordered
improperly 3-22
x
Listing 3-4 The onexception clauses properly ordered 3-22
Listing 3-5 Improperly nested try blocks 3-23
Listing 3-6 Nested try block problem fixed using begin and end
(shown in bold) 3-23
Listing 3-7 Handling a soup store exception 3-24
Listing 3-8 An exception handler checking the exception
frame 3-25
Chapter 4 Functions and Methods 4-1
Figure 4-1 The parts of a function object 4-10
Figure 4-2 functionObject1 dissected 4-14
Chapter 5 Inheritance and Lookup 5-1
Figure 5-1 A prototype frame 5-3
Figure 5-2 A prototype chain 5-4
Figure 5-3 Parent-child relationship 5-5
Figure 5-4 Prototype and parent inheritance interaction
order 5-7
Figure 5-5 An inheritance structure 5-12
Chapter 6 Built-In Functions 6-1
Table 6-1 Floating point exceptions 6-65
Table 6-2 Exception frame data slot name and contents 6-72
Appendix B Special Character Codes B-1
Table B-1 Character codes sorted by Macintosh character
code B-1
Table B-2 Character codes sorted by Unicode B-7
P R E F A C E
xi
About This Book
The NewtonScript Programming Language is the definitive reference
for anyone learning the NewtonScript programming language.
If you are planning to begin developing applications for the
Newton platform, you should read this book first. After you
are familiar with the NewtonScript language you should read the
Newton Programmer’s Guide for implementation details and the
Newton Toolkit User’s Guide to learn how to install and use Newton
Toolkit, which is the development environment for writing
NewtonScript programs for the Newton platform.
About the Audience
This book is for programmers who have experience with high
level programming languages, like C or Pascal, and who already
understand object-oriented programming concepts.
If you are not familiar with the concepts of object-oriented
programming there are many books available on the subject
available at your local computer bookstore.
Related Books
This book is one in a set of books included with Newton Toolkit,
the Newton development environment. You’ll also need to refer to
these other books in the set:
■ Newton Programmer’s Guide: System Software. This set of books is
the definitive guide and reference for Newton programming
topics other than communications.
P R E F A C E
xii
■ Newton Programmer’s Guide: Communications. This book is the
definitive guide and reference for Newton communications
programming.
■ Newton Toolkit User’s Guide. This book introduces the Newton
development environment and shows how to develop Newton
applications using Newton Toolkit. You should read this book
first if you are a new Newton application developer.
■ Newton Book Maker User’s Guide. This book describes how to use
Newton Book Maker and Newton Toolkit to make Newton
digital books and to add online help to Newton applications.
You have this book only if you purchased the Newton Toolkit
package that includes Book Maker.
■ Newton 2.0 User Interface Guidelines. This book contains
guidelines to help you design Newton applications that
optimize the interaction between people and Newton devices.
Sample Code
The Newton Toolkit product includes many sample code projects.
You can examine these samples, learn from them, experiment with
them, and use them as a starting point for your own applications.
These sample code projects illustrate most of the topics covered in
this book. They are an invaluable resource for understanding the
topics discussed in this book and for making your journey into the
world of Newton programming an easier one.
The Newton Developer Technical Support team continually
revises the existing samples and creates new sample code. You can
find the latest collection of sample code in the Newton developer
area on eWorld. You can gain access to the sample code by
P R E F A C E
xiii
participating in the Newton developer support program. For
information about how to contact Apple regarding the Newton
developer support program, see the section “Developer Products
and Support,” on page xv.
Conventions Used in This Book
This book uses various conventions to present information.
Special Fonts in Text
The following special fonts are used:
■ Boldface. Key terms and concepts appear in boldface on first
use. These terms are also defined in the Glossary.
■ Courier typeface. Code listings, code snippets, and special
identifiers in the text such as predefined system frame names,
slot names, function names, method names, symbols, and
constants are shown in the Courier typeface to distinguish
them from regular body text. If you are programming, items
that appear in Courier should be typed exactly as shown.
■ Italic typeface. Italic typeface is used in code to indicate
replaceable items, such as the names of function parameters,
which you must replace with your own names. The names of
other books are also shown in italic type, and rarely, this style is
used for emphasis.
P R E F A C E
xiv
Syntax Conventions
In this manual, syntax is presented in two formats, as an extended
BNF, and as bubble diagrams defined as follows:
Bubble
Diagram Extended BNF Description
terminal Oval boxes / courier text indicates a
word or character that must appear
exactly as shown. Ambiguous terminal
characters are enclosed in single quotes
(‘’).
nonterminal Rectangular boxes / italics indicate a
word that is defined further.
[] Dashed lines / brackets indicate that
the enclosed item is optional.
{choose|one} Forked arrows / a group of words,
separated by vertical bars (|) and
grouped with curly brackets, indicates
an either/or choice.
[]* A dashed box with a repeating arrow /
an asterik (*) indicates that the
preceding item(s), which is enclosed in
square brackets, can be repeated zero
or more times.
[]+ A solid box with a repeating arrow / a
plus sign (+) indicates that the
preceding item(s), which is enclosed in
square brackets, can be repeated one or
more times.
terminal
non-terminal
optional optional
option 1
choice
option 2
repeat/optional
repeat
P R E F A C E
xv
Developer Products and Support
APDA is Apple’s worldwide source for hundreds of development
tools, technical resources, training products, and information for
anyone interested in developing applications for Apple computer
platforms. Customers receive the Apple Developer Catalog featuring
all current versions of Apple and the most popular third-party
development tools. APDA offers convenient payment and
shipping options, including site licensing.
To order product or to request a complimentary copy of the Apple
Developer Catalog:
APDA
Apple Computer, Inc.
P.O. Box 319
Buffalo, NY 14207-0319
If you provide commercial products and services, call
408-974-4897 for information on the developer support
programs available from Apple.
Telephone 1-800-282-2732 (United States)
1-800-637-0029 (Canada)
716-871-6555 (International)
Fax 716-871-6511
AppleLink APDA
America Online APDAorder
CompuServe 76666,2405
Internet APDA@applelink.apple.com
P R E F A C E
xvi
Undocumented System Software Objects
When browsing in the NTK Inspector window, you may see
functions, methods, and data objects that are not documented in
this book. Undocumented functions, methods, and data objects
are not supported, nor are they guaranteed to work in future
Newton devices. Using them may produce undesirable effects on
current and future Newton devices.
Introduction 1-1
C H A P T E R 1
Overview 1
NewtonScript is a state-of-the-art, dynamic, object-oriented programming
language, developed for the Newton platform.
Introduction 1
The goal of NewtonScript is to enable developers to create fast, smart
applications easily. This calls for a language that is
■ expressive, flexible, and straightforward to use
■ consistent enough to allow reuse of concepts and structures
■ portable enough to permit exploration of different architectures, and
■ sufficiently compact to work with limited RAM
The constraints of the Newton system require a language capable of producing
reusable code libraries, which uses memory efficiently, and collects garbage
automatically.
NewtonScript is based on principles first used in Smalltalk and LISP, and
was also influenced by Self, a language developed at Stanford University.
Figure 1-0
Listing 1-0
Table 1-0
C H A P T E R 1
Overview
1-2 Semantic Overview
Semantic Overview 1
This section briefly introduces some special features of the NewtonScript
language.
Expressions 1
NewtonScript is an expression-based language, rather than statement-based,
as many other programming languages are. Almost everything
in NewtonScript returns a value. Therefore, we talk about expressions
rather than statements or commands in this manual.
The Object Model 1
NewtonScript is built on an object model. All data is stored as objects,
or typed pieces of data. This differs from other object-oriented languages
like C++ or Object Pascal, where data is a hybrid of objects and regular
data types.
NewtonScript also differs from Smalltalk, although, like Smalltalk, it
represents all data as objects. Only one kind of NewtonScript object, the
frame, can receive messages.
The Newton object model structures data by using two kinds of 32-bit values
to represent objects. These values are
■ immediates—in which the 32 bits contain immutable data
■ references—in which the 32 bits refer indirectly to an object
This is explained in greater detail in the section “Immediate and Reference
Values” beginning on page 2-5 of Chapter 2, “Objects, Expressions, and
Operators.”
C H A P T E R 1
Overview
Semantic Overview 1-3
Data Types and Classes 1
NewtonScript uses a class as a semantic type as opposed to a typical data
type. The Newton platform uses classes to let parts of the system, like the
Intelligent Assistant (which is described in the Newton Programmer’s Guide)
determine properties of the object at run time. Thus it can treat particular
types of objects in interesting and different ways.
For instance, you can set up a data object containing personal data as shown
in Listing 1-1. Note that the curly braces surrounding Listing 1-1 denote a
frame object, that contains places, or slots, for objects that have the identifiers
name, company, and phones.
Listing 1-1 A simple frame
{ name: "Walter Smith",
company: "Apple Computer",
phones: ["408-996-1010", "408-555-1234"] }
In the Newton system, objects can be typed. For instance, the values of name
and company are plain strings. However, you can further define phones as
being of type workPhone and faxPhone. These user-defined objects can
then be manipulated by the Newton system in different ways. For instance,
when the person using your application uses a fax phone number, a set of
actions different from those for a work phone number is initiated.
The data object constructed in Listing 1-1 is shown in Figure 1-1.
The facility that lets the system know about an object’s type is known
as latent typing. Types are associated with objects. This means that a
variable can hold any kind of object and can hold different types of objects at
different times.
The class system is explained in further detail in “Objects and the Class
System” beginning on page 2-1.
C H A P T E R 1
Overview
1-4 Semantic Overview
Figure 1-1 A sample data structure
Note
Smalltalk enthusiasts should keep in mind that
NewtonScript classes have nothing in common with those
used in class-based programming in a language such as
Smalltalk. You can, however, use class-based programming
concepts to organize parts of your NewtonScript application.
For more information about this see Appendix C,
“Class-Based Programming.” ◆
Scope 1
The part of a program within which a variable can be used is called the scope
of the variable. Normally a variable is available within the function where it
is defined, although slots that are used like variables can also be inherited
from proto and parent frames. See the section “Frame” beginning on
page 2-17, and Chapter 5, “Inheritance and Lookup,” for more information
about frames and inheritance, respectively.
When looking up the value of a variable, NewtonScript first searches local
variables, then global variables, and finally inherited variables, through the
proto and parent chains.
Frame
Full Name
"Walter
Smith"
Corp Name
"Apple"
Array
Work phone
FAX phone
0
1
Work Phone
408-996-1010
FAX Phone
408-555-1234
Name:
Company:
Phones:
"Walter Smith"
"Apple"
["408-966-1010",
"408-555-1234"]
Name
Company
Phones
C H A P T E R 1
Overview
Semantic Overview 1-5
Consider, for example, the following code segment:
aFrame:= {foo: 10,
bar: func(x)
begin
if foo then Print ("hello");
if x > 0 then
begin
local foo; //local variable to function
foo:= 42;
end
return foo;
end;
}
Here the local variable foo is restricted in scope to the function definition
bar. Even though foo is declared within a begin … end code segment, its
scope is not confined by that construct. When foo is used in the expression,
if foo then Print ("hello");
before it is declared as a local variable, it is already defined by the compiler
as an implicit local and is initialized to the value of nil.
If the slot variable, foo, with the value of 10, is to be used as the value for
foo, that is stated explicitly as
if self.foo then Print ("hello");
Otherwise, the search for the value of the variable goes by the rules, first to
local variables, (the local variable foo was initialized to nil), then to global
variables named foo, and then to inherited slot variables named foo.
In this example, the compiler creates a local variable foo, which is local to
the method bar and is not initialized until the if expression that assigns it
the value 42 executes. Therefore, nothing is ever printed.
C H A P T E R 1
Overview
1-6 Semantic Overview
When you send the message, bar, with a parameter value of ten, to the
aFrame object, in the expression
aFrame:bar(10)
a value of 42 is returned. The same message with a parameter value of
negative five
aFrame:bar(-5)
returns nil. See the section “Function Invocations” in Chapter 4 to learn
more about message sending.
Extent 1
The extent of a variable refers to the period of time in which it may be used.
In many languages, the scope of a variable is the same thing as its extent.
However, in NewtonScript a variable has data storage space allocated for it
while it is referenced anywhere in executing code.
Automatic garbage collection occurs only after an object is no longer
referenced anywhere. Therefore, storage allocated for data structures is
available until no references to the structure exist.
Make sure not to leave any references to large data structures you’ve
allocated after you’re finished using them. If you do, NewtonScript will not
reclaim the associated memory.
An example of where you might think about this on the Newton platform is
when you close an application, you can set slots to nil in the application’s
base frame to conserve memory.
Garbage Collection 1
In NewtonScript, garbage collection—that is, reclaiming the storage of
objects that are no longer used—is carried out automatically by the system.
Thus, the programmer does not need to worry about memory management.
C H A P T E R 1
Overview
Semantic Overview 1-7
In fact, in NewtonScript it’s impossible to have “dangling pointers,” which
often cause the most insidious and hard to find bugs in an application.
If you’ve had to do garbage disposal manually in another language you can
relax; the Newton system reclaims memory for you sometime after the last
reference to an object goes away. Setting the value of all slots and variables
referring to an object to nil allows the Newton garbage collector to reclaim
the memory used by the object.
Automatic garbage collection is triggered every time the system runs out of
memory. There’s not really any reason to invoke garbage collection manually.
However, if you must do so, you can call the global function GC. For more
information on this function, see the chapter “Debugging” in The Newton
Toolkit User’s Guide.
How Is NewtonScript Dynamic? 1
In general, the term “dynamic” refers to the ability of the language to change
properties of objects at run time. Therefore, the NewtonScript dynamic
model is useful when you want to change an object at run time. For instance,
it’s possible to change an object to another kind of object in response to a
user’s actions while the application is running, if needed.
You can also add new data to objects while an application is in use. For
instance, you can write NewtonScript code that dynamically adds a new
variable to an executing object at run time and uses it, then adds a method to
the same object and uses it, and finally changes the inheritance structure of
the object by adding a special reference to another object. (This “special
reference” is what is denoted as _parent in Listing 1-2 on page 1-11). The
object can now use a method it inherits from the parent frame.
All of these operations are impossible in a static language, and they require a
great deal of thought and discipline in dynamic languages. Though this
powerful feature enables you to interactively program in a way that is
impossible in static languages, it should be used sparingly and with caution.
C H A P T E R 1
Overview
1-8 Basic Syntax
Basic Syntax 1
Rather than invent an entirely new syntax, NewtonScript was designed with
Pascal in mind. Wherever possible, its syntax is modeled closely on Pascal’s.
Semicolon Separators 1
The semicolon (;) is used to separate lines, not to terminate them. Though
semicolons are not required at the end of a line, you may spread one
expression over several lines or enter multiple expressions on a single line
by using the semicolon.
Expressions can be entered in a free-form manner, but we recommend that
standard indentation be used for enhanced readability, as in this example:
if expression then
expression
else
another_expression;
NewtonScript syntax allows you to use as much white space as you wish; it
is ignored.
Note
If you forget to add an important semicolon at the end of a
NewtonScript expression, the interpreter uses whatever is on
the next line as it tries to interpret a larger statement than
intended, thus causing unusual error reports. ◆
C H A P T E R 1
Overview
Basic Syntax 1-9
In-Line Object Syntax 1
NewtonScript has two syntax features that make it easy to create objects:
object literals and object constructors.
The object literal syntax lets you put a complex object into your program as
easily as an integer. This syntactic mode is entered by writing a single quote,
as shown in this simple example of a frame containing two strings:
x := '{name: "xxx", phone: "yyy"};
The object is constructed at compile time, and a reference to the same object
results each time the object literal is evaluated.
The object constructor syntax makes it easy to construct objects at run time.
The syntax is similar to object literals, but without the quote. In the object
constructor syntax the slot value positions are evaluated expressions rather
than nested literals. Each time the constructor is evaluated, a new object is
created, and its slots are filled in with the results of the slot expressions. An
object constructor is much easier to read than the equivalent operation
written without it, as shown in the following two examples.
First, the example with an object constructor:
x := {name: first && last, tax: wage * taxRate};
Next, the equivalent operation without the object constructor:
x := {};
x.name := first && last;
x.tax := wage * taxRate;
Character Set 1
NewtonScript uses the standard 7-bit ASCII character set rather than the
enhanced ASCII character set used by Macintosh computers. This ensures
that your code will work in any Newton development environment.
C H A P T E R 1
Overview
1-10 A Code Example
Comments 1
NewtonScript uses the same convention for delineating comments as the
C++ programming language. Multiline comment text needs to be
surrounded by an opening right slash, asterisk (/*) and a matching asterisk,
right slash (*/) at the end. For example:
/* This is an example of
a comment. It can be on one line
or as many lines as you need. */
If your comment is short enough to keep to one line, you can use two back
slashes (//) before the text to signal that the rest of the line is a comment and
should be ignored. This is often useful for putting a comment on the same
line as a line of code, as in this example:
x:= 5 ; //This is a single-line comment.
Note that nested multiline comments are not allowed. However, within a
/* ... */ comment block, comments using the // notation are allowed.
A Code Example 1
If you like to try to understand code before reading the manual, continue on
through this section. Otherwise, stop here and go to the next chapter.
Note that in the code the curly brackets ({}) denote a frame object, colonequal
(:=) is the assignment operator, and the colon (:) is the message-send
operator, which sends the message following it to the frame expression that
appears before it.
The code shown in Listing 1-2 is partially described in the section “How Is
NewtonScript Dynamic?” beginning on page 1-7.
C H A P T E R 1
Overview
Compatibility 1-11
Listing 1-2 A dynamic example
y := { YMethod: func () print("Y method"), yVar: 14 };
x := { Demo: func () begin
self.newVar := 37;
print(newVar);
self.NewMethod := func () print("hello");
self:NewMethod();
self._parent := y;
print(yVar);
self:YMethod();
end
};
x:Demo();
37
"hello"
14
"Y method"
#2 NIL
Compatibility 1
There are two main enhancements to the 2.0 version of the NewtonScript
language:
■ new subclassing mechanism
■ native functions
The new subclassing mechanism is described in the section “Classes and
Subclasses” on page 2-3. This new subclassing mechanism allows userdefined
classes to have more precise semantic definitions, while preserving
the logical structure of these categories.
C H A P T E R 1
Overview
1-12 Compatibility
Native functions, described in the section “Native Functions” on page 4-16,
are executed directly by the Newton processor, instead of going through the
interpreter. This can increase the speed of your functions, but can also slow
them down.
In addition, two type identifiers have been added to the language to speed
up processing of native functions: int and array. There are two places
where these type identifiers can be used: in declaring local variables, and in
the argument list of a function declaration. For information on their syntax,
see the section “Local” on page 2-23, and “Function Constructor” on page 4-2.
For a detailed discussion of native functions and the use of type identifiers,
see the chapter “Tuning Performance,” of the Newton Toolkit User’s Guide.
The 2.0 version of the language also includes new built-in functions, for a list
of these see the section “Compatibility” beginning on page 6-2 of Chapter 6,
“Built-In Functions.”
Objects and the Class System 2-1
C H A P T E R 2
Objects, Expressions, and
Operators 2
This chapter discusses objects, expressions, and operators.
Objects and the Class System 2
The semantic type of an object is identified by a class. The Newton object
system has four built-in primitive classes which describe an object’s basic
type. They are:
■ Immediate
■ Binary
■ Array
■ Frame
Figure 2-0
Listing 2-0
Table 2-0
C H A P T E R 2
Objects, Expressions, and Operators
2-2 Objects and the Class System
You can determine the primitive class of an object, obj, by executing the
expression PrimClassOf(obj). Similarly, you can determine the class of
an object, obj, by executing the expression ClassOf(obj). A number of
functions exist to check if an object is of a particular type, which are faster
than ClassOf and PrimClassOf. These are IsArray, IsFrame, IsInteger,
IsSymbol, IsCharacter, IsReal, and IsString. These and the other
Newton built-in functions are documented in Chapter 6, “Built-In Functions.”
The primitive classes are of two categories: immediates and reference objects.
The reference object category is composed of the binary, array, and frame
classes. See “Immediate and Reference Values” beginning on page 2-5 for
a more detailed discussion of the differences between these two categories
of objects.
Objects with Immediate as their primitive class can be further identified as
belonging to a class of Int, Char, or Boolean. System-defined objects with
Binary as their primitive class can also be further identified as belonging to
a class of Symbol, String, or Real. NewtonScript also allows user-defined
classes for reference objects.
The NewtonScript class structure is shown in Figure 2-1
Classes function as semantic types that inform the system about the data in a
reference object. For example, the class 'string indicates a binary object
containing a string and the class 'phoneNumber indicates a string containing
a phone number. With this knowledge, a Newton device could use phone
numbers in ways it would not use other strings (to dial a phone, for instance.)
C H A P T E R 2
Objects, Expressions, and Operators
Objects and the Class System 2-3
Figure 2-1 NewtonScript built-in classes
Classes and Subclasses 2
NewtonScript provides the SetClass(obj, classSymbol) function to assign a
class, classSymbol, to a reference object, obj. Arrays and frames also have
internal mechanisms for setting user-defined classes, but for binary objects
the SetClass function must be used. These mechanisms are described in
“Array” beginning on page 2-15, and “Frame” beginning on page 2-17.
Primitive Classes
Reference
Reference
Reference
Reference
Array
0
1
2
3
Slot1
Slot2
Slot3
Slot4
Frame
Classes
Binary
Reference
Reference
Reference
Reference
String Real
"A string" 3.14159
Int Char Boolean
42 $A true
Symbol
'someSymbol
Immediate
Value
Binary
Data
C H A P T E R 2
Objects, Expressions, and Operators
2-4 Objects and the Class System
Class symbols are arranged in a hierarchy; that is, some classes have
subclasses. This allows objects to have more precise semantic definitions,
while preserving the logical structure of these definitions.
To create a subclass add a period (.) and a symbol to the class name. For
example, '|rectangle.square| is a subclass of 'rectangle. Thus, a
class symbol X is a subclass of a class symbol Y if either X is the same as Y, or
Y is a prefix of X at a period (.) boundary. Everything is a subclass of the
empty symbol ||.
The symbol added after the period cannot, of course, itself contain a period
(.). And neither symbol can contain a semicolon (;), which is reserved for
future expansion. Furthermore, a class symbol that contains periods (.),
must be surrounded by vertical bars (|), this is required by the syntax of a
symbol which is described in “Symbol” beginning on page 2-12.
You can use the built-in function IsSubclass(x, y) to determine if x is a
subclass of y. You can determine if an object obj is of class x or any subclass
of x by using the function IsInstance(obj, x). Note that this is just
shorthand for IsSubclass(ClassOf(obj), x). For more information
about these functions see Chapter 6, “Built-In Functions.”
Note
The period method of creating subclasses is new to
NewtonScript; it is not supported by the NewtonScript
interpreter on 1.x Newton devices. If your application might
be run on a 1.x machine, do not use this mechanism. ◆
Adding classes to objects increases the complexity of your application. If you
do not need to, do not add a class to your objects.
Note also that the there is no subclass relationship in the sense being
discussed in this section between the built-in primitive classes and those
classes that are derived from them. String, for example, is not a subclass
of Binary.
The only class whose subclasses are important to the NewtonScript builtin
functions is 'string. There are several string-manipulation functions
that require their arguments to have either the class 'string or a subclass
of 'string.
C H A P T E R 2
Objects, Expressions, and Operators
Objects and the Class System 2-5
A number of class symbols are automatically understood by the Newton
system to be subclasses of 'string. These are: 'company, 'address,
'title, 'name, 'phone, 'homePhone, 'workPhone, 'faxPhone,
'otherPhone, 'carPhone, 'beeperPhone, and 'mobilePhone.
To create other subclasses of 'string, e.g. 'firstName, define the class
explicitly as '|string.firstName|.
Immediate and Reference Values 2
In NewtonScript, values are stored in 32 bits, two of which are used for class
information. Immediate objects (integers, characters, and Booleans) contain
their values within the remaining 30 bits. Reference objects, (binaries, arrays,
and frames) on the other hand, contain a reference to the area of memory
where their data resides.
This is an important distinction to keep in mind when assigning values to a
variable. When a variable is assigned an immediate object, that object is
copied directly into the variable. When a variable is assigned a reference
object, on the other hand, only a reference to the object is copied in.
The behavior caused by this can be somewhat confusing. Consider, for
example the following code fragment:
local a := {x: 1, y: 3};
local b := a;
a.x := 2;
// at this point b.x = 2
The first line declares a local variable, a, and assigns to it a frame with two
slots – named x and y – whose values are 1 and 3, respectively.
The second line creates another local variable, b, and assigns to it the value
of a, which is a reference to the frame object created in the first line. Thus
both local variables a and b now refer to the same are of memory.
The third line (a.x := 2;) changes the value of the x slot. Since both
variables a and b refer to the same frame, the value of b.x now also equals
C H A P T E R 2
Objects, Expressions, and Operators
2-6 Objects and the Class System
2, though it was not explicitly assigned. You can see these results in
Figure 2-2.
Figure 2-2 NewtonScript code sample
Consider now the C code:
struct foo {
int x,y;
};
foo a;
foo b;
a.x = 1;
a.y = 3;
b = a;
a.x = 2;
// at this point b.x = 1
a.x : = 2;
reference
local a : = {x:1, y:3}; a
reference
a
reference
b
reference
a
reference
b
x 2
y 3
x 1
y 3
x 1
y 3
local b : = a;
C H A P T E R 2
Objects, Expressions, and Operators
Objects and the Class System 2-7
In this example there are two separate struct objects, a and b, residing in
separate areas of memory. Each struct contains two integers, x and y. The
integer a.x is assigned the value 1. The value of struct a is saved in
struct b and a.x then is set to 2. As you would expect, the value of b.x is
unchanged at this point (it is still 1.) The results of this code example are
shown in Figure 2-3.
Figure 2-3 C code sample
Note that assignments of references in NewtonScript are handled in the same
manner as assignments of arrays and strings in C, since arrays and strings in
C are pointers. Thus NewtonScript does not fundamentally differ from C in
this respect.
a.x = 2;
x 1
y 3
a
a
x 1
y 3
b
x 1
y 3
a
x 2
y 3
b
x 1
y 3
a.x = 1;
a.y = 3;
b = a;
C H A P T E R 2
Objects, Expressions, and Operators
2-8 The NewtonScript Objects
The NewtonScript Objects 2
This section individually discusses the objects listed in “NewtonScript
built-in classes” on page 2-3: characters, Booleans, integers, reals, symbols,
strings, arrays, and frames.
Character 2
$ { nonEscapeCharacter |\ { \ | n | t |hexDigit hexDigit |
u hexDigit hexDigit hexDigit hexDigit } }
Characters in the standard character set are specified in your code by the
dollar sign ($) and
■ a backslash escape character (\) followed by a special character
specification such as, \, n, and t, or by 2 hexadecimal digits
■ a backslash escape character (\) followed by u (for Unicode) and four
hexadecimal digits
■ a non-escape character
The character set in Newton is stored as Unicode, in two bytes, to facilitate
international conversions. By design, the first 128 characters match the ASCII
character set. You must use Unicode character codes to specify special
characters other than the ASCII character set.
$
non-escape-character
hex-digit
hex-digit
\
t
u
n
\
hex-digit
hex-digit hex-digit hex-digit
C H A P T E R 2
Objects, Expressions, and Operators
The NewtonScript Objects 2-9
Characters are immediate objects. (For more information about immediate
objects see “Immediate and Reference Values” beginning on page 2-5.)
nonEscapeCharacter Consists of any ASCII character with code 32–127 except
the back slash (\).
hexDigit Consists of: {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9| a |
b| c | d | e | f | A | B | C | D | E | F}
For example, $a or $7 represent the characters “a” and “7”, respectively.
Special characters like “π” must be specified as Unicode (16-bit) characters
by using the four-digit hex character code preceded by $\u. For example, the
Unicode equivalent of “π” is: $\u03C0.
You specify a new line by imbedding the code $\n in a string. Special
character codes are summarized in Table 2-1.
See Appendix B, “Special Character Codes,” for a list of the special
characters and their Unicode equivalents.
Boolean 2
NewtonScript defines only one Boolean constant, true. Functions and
control structures use nil as false and anything else as true. When you don't
have anything else to use as true, use the special immediate true.
Table 2-1 Characters with special meanings
Character code Meaning
$\n newline character
$\t tab character
$\\ backslash character
$\ hexDigit hexDigit hexadecimal
$\u hexDigit hexDigit hexDigit hexDigit Unicode
C H A P T E R 2
Objects, Expressions, and Operators
2-10 The NewtonScript Objects
Integer 2
[ - ] {[ digit ]+ | 0x [hexDigit ]+}
All integers in NewtonScript can be written in either decimal or hexadecimal.
When a digit is prefixed with zero and the letter x (0x) it signifies a
hexadecimal value. The optional minus sign (-) before a digit signifies a
negative integer. Here are some examples of integers:
13475 -86 0x56a
Integers range from 536870911 through -536870912. When that limit is
exceeded behavior is undefined.
Integers are immediate objects. (For more information about immediate
objects see “Immediate and Reference Values” beginning on page 2-5.)
digit Consists of: {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9}
hexDigit Consists of: {digit | a | b| c | d | e | f | A | B | C | D
| E | F}
Note
The integer -536870912 can’t be specified as
a literal but it can be computed. ◆
-
x hex-digit
digit
0
C H A P T E R 2
Objects, Expressions, and Operators
The NewtonScript Objects 2-11
Real 2
[-] [digit ]+.[ digit ]* [ { e | E } [ - ] [ digit ]+
A real number consists of one or more digits followed by a decimal point
with zero or more additional digits. The optional minus (-) at the start
indicates a negative number. You can specify scientific notation by placing
the letter e (upper or lower case) directly after the last digit and following
it with a negative or positive digit in the range of -308 to +308.
digit Consists of: {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9}
NewtonScript floating point real numbers are represented internally in
double precision; 64 bits. They have approximately 15 decimal digits of
precision. Some examples of real numbers include:
-0.587 123.9 3.141592653589
Here are some examples of exponential notation used to represent
real numbers:
763.112e4 87.3789E-45 -34.2e6 69.e-5
Real numbers are stored as binary objects and have the class Real.
-
e
E
digit . digit - digit
C H A P T E R 2
Objects, Expressions, and Operators
2-12 The NewtonScript Objects
Symbol 2
{ { alpha | _ } [ { alpha | digit | _ } ]* |
'|' [ { symbolChar| \ { '|' | \ } ]* '|'}
A symbol is an object used as an identifier. NewtonScript uses symbols to
name variables, classes, messages, and frame slots. You can also use symbols
as simple identifying values, as you would use enumerated types in other
languages.
Symbol names may be up to 254 characters long and may include any
printable ASCII character; for instance, |Weird%Symbol!| is valid. A
symbol can be written by itself, without being enclosed in vertical bars, if it
begins with an alphabetic character or an underscore and contains only
alphabetic characters, underscores, and digits. NewtonScript is case
insensitive, though it preserves case.
alpha Consists of: {A–Z and a–z}.
digit Consists of: {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9}.
symbolChar Consists of any ASCII character with code 32–127
except | or \.
One place where the Newton system requires symbols is in exception
handling. An example of an exception symbol is: |evt.ex.fr.intrp|
Note that vertical bars are required because of the dots in the symbol. You
can read more about them in “Defining Exceptions” beginning on page 3-15.
_
alpha alpha
_ digit
|
|
\
|
symbolChar
\
C H A P T E R 2
Objects, Expressions, and Operators
The NewtonScript Objects 2-13
Symbols appearing in expressions are normally evaluated as variable
references. You can prevent this by preceding the symbol with a single quote
('). The quoted symbol evaluates to the symbol itself. See also “Quoted
Constant” beginning on page 2-28.
String 2
" [ { stringChar | escSeq } ]* [ truncEscape ] ] "
A string constant is written as a sequence of characters enclosed in
double-quotation marks.
stringChar Consists of a tab character or any ASCII character with
code 32–127 except the double quote (") or backslash (\).
escSeq Consists of either a special character specification
sequence or a unicode specification sequence.The
special character specification sequence is: backslash (\)
followed by a quote ("), backslash (\), the letter n or
the letter t. The escape sequence for specifying
Unicode begins with backslash-u (\u), is followed by
any number of groups of four hexDigits, and ends
with backslash-u (\u).
truncEscape Consists of the shortened unicode specification
sequence. It is: backslash-u (\u), is followed by
any number of groups of four hexDigits.
Here are some simple examples of strings:
"pqr" "Now is the time" ""
Within strings you can include Unicode characters that are not in the
standard character set by inserting the escape code, \u, to toggle on the
Unicode hex mode. Follow the \u with any number of groups of four-
" truncEscape "
escSeq
stringChar
C H A P T E R 2
Objects, Expressions, and Operators
2-14 The NewtonScript Objects
number codes specifying the special character. You can add another \u to
toggle the Unicode hex mode off and return to the regular character set,
though, you are not required to toggle the hex mode off. (See Appendix B,
“Special Character Codes,” for a list of these characters.)
For example, you could specify the French phrase, “Garçon, l’addition, s’il
vous plaît!”, by embedding Unicode in the string to specify the special
characters as follows:
"Gar\u00e7\uon, l’addition, s’il vous pla\u00ee\ut!"
Other codes you use within strings to specify special characters are
summarized in Table 2-2.
You can also use array accessor syntax to refer to a character in a string. See
“Array Accessor” beginning on page 2-16 for more information. For
example, you can define a string
aString := "ABCDE";
and then refer to the B by using an array accessor
aLetter := aString[1];
Note that the index to aString is one, because array indices are numbered
beginning with zero.
Table 2-2 Codes for specifying special characters within strings
Character code Meaning
\n newline character
\t tab character
\u toggles Unicode on and off
\\ backslash character
\" double quote character
C H A P T E R 2
Objects, Expressions, and Operators
The NewtonScript Objects 2-15
Array 2
‘[’ [ symbol : ] [ object [ , object]* [ , ] ] ‘]’
An array is a collection of zero or more objects enclosed in square brackets
([]) and separated by commas. The user-defined class for the array may
optionally be specified by beginning the array with a symbol followed by
a colon (:).
symbol Consists of an identifier that is syntactically a symbol. If
present, sets a user-specified class for the array. See the
section “Symbol” beginning on page 2-12, for more
information about their syntax.
object May consist of any NewtonScript object. NewtonScript
numbers the elements in an array by beginning with
zero for the first element. Objects are separated by
commas if there are more than one in the array.
Note
The syntax [symbol: object (…)] is ambiguous; the first
symbol could be either a class for an array, or a variable to be
used as the receiver for a message send. NewtonScript uses
the first interpretation. (Message sends are described
inChapter 4, “Functions and Methods.”) ◆
Semantically, the array is an ordered collection of objects which are indexed
numerically, beginning with zero. As with frames, the array can hold any
type of object, including methods, frames, and arrays. Like other nonimmediate
objects, arrays can have a user-specified class, and can have their
size changed dynamically.
Here is a simple example of an array literal:
[1,2,3]
[ symbol : object , object , ]
C H A P T E R 2
Objects, Expressions, and Operators
2-16 The NewtonScript Objects
You can specify a class name for an array by preceding the first array element
with any arbitrary identifier that specifies a class and a trailing colon, as
shown here:
[RandomData: [1,2,3], 0, "Last element"]
Note that this array, which has the class RandomData, holds a mixture of
objects. It contains another array as its first element, the integer zero as the
second element, and a string as the third element.
Note
NewtonScript allows an optional trailing comma after the
last array element. The trailing comma can be useful if you
are going to add more elements to the array, or move
elements around within an array, when editing source code.
The presence or absence of this comma, does not affect
the program. ◆
Array Accessor 2
arrayExpression ‘[’ indexEpression ‘]’
Array elements are accessed with an expression, that evaluates to an array,
and an index expression, that evaluates to an integer and is enclosed in
square brackets.
arrayExpression An expression that evaluates to an array.
indexEpression An expression that evaluates to an integer. The
indexExpression corresponds to the element of the array
you wish to access. Note that arrays are indexed starting
with zero.
For example, with the array myArray, which is defined as
myArray := [123, [4,5,6], "Alice's Restaurant"];
arrayExpression [ indexExpression ]
C H A P T E R 2
Objects, Expressions, and Operators
The NewtonScript Objects 2-17
you access the second element in the array by using the expression:
myArray[1];
This expression evaluates to [4,5,6].
You can also access array elements by using a path expression. Read about
these in the section “Path Expression” beginning on page 2-20.
Note that array accessors are actually operators and are included here for
your convenience. The rest of the NewtonScript operators are documented in
“Operators” beginning on page 2-29.
Frame 2
‘{’ [ symbol : value [ , symbol : value ]* [ , ] ] ‘}’
Aframe is a collection of zero or more slots enclosed in curly brackets and
separated by commas. A slot consists of a symbol followed by a colon (:)
and a slot expression. The symbol refers to the value of the slot expression.
symbol A symbol giving the name of the slot. Note that slot
symbols beginning with the underscore character (_) are
reserved for system use; do not begin your slot symbol
with the underscore character.
value Can be any object, including another frame or a method.
A frame is an unordered collection of slots which consist of a name and
value pair. As with arrays, the value of a slot can be any type of object,
including methods and even other frames and arrays.
Frames can be used as repositories for data, like records in Pascal and structs
in C, but can also be used as objects which respond to messages. As such, the
frame is the basic programming unit in NewtonScript.
{ symbol : value , symbol : value , }
C H A P T E R 2
Objects, Expressions, and Operators
2-18 The NewtonScript Objects
A simple record-like frame containing names and phone numbers might
appear as
{name:"Joe Bob", phone:"4-5678", employee:12345}
Here is an example frame that contains integers in the first three slots, and a
method in the fourth slot:
Jupiter := {size:491,
distance:8110,
speed: 34,
position: func(foo) speed*foo/3.1416}
You may specify an optional class name for a frame by using the slot name
class. Inserting the class slot:
class : 'planet
into the Jupiter frame gives it an appropriate class name. Just as for array
classes, the class of a frame gives it a type, not special properties. However, if
you wanted to give all objects of class planet special characteristics and
functionality you could use the NewtonScript inheritance structure to set up
relationships that allow objects to inherit data from other objects. (See
Chapter 5, “Inheritance and Lookup.”)
You specify these relationships to other frames by referencing them from
slots named _proto and _parent. The relationships these slots establish
allow you to take advantage of the NewtonScript double inheritance scheme
to construct object-oriented applications. Chapter 5, “Inheritance and
Lookup,” describes these concepts.
There are several slot names which are recognized by the system and used
for special purposes. All these slots are optional. They are described in
Table 2-3.
C H A P T E R 2
Objects, Expressions, and Operators
The NewtonScript Objects 2-19
Frame Accessor 2
frameExpr. {symbol | ( pathExpr )}
Frame values are accessed with an expression–that evaluates to a frame–and
either a symbol, or an expression enclosed in parentheses, that evaluates to a
path expression.
A frame accessor expression returns the contents of the specified slot, or if
the slot does not exist the expression evaluates to nil.
frameExpr Any expression that evaluates to a frame.
symbol A symbol reference to a slot. See “Symbol” beginning on
page 2-12 for the syntax of symbols.
Table 2-3 Special slot names and their specifications
Slot Name Specification
class: identifier You use the special slot name class to specify a
semantic type for your frame. The class of your
object must be a symbol.
_parent: frame You use the special slot name _parent to designate
another frame as a parent frame to this frame. You can
repeat this process, as necessary with other frames, to
construct a parent inheritance chain. For information
about inheritance see Chapter 5, “Inheritance and
Lookup.”
_proto: frame You use the special slot name _proto to designate
another frame as a prototype frame to this frame.
Repeat this process, as necessary with other frames,
to construct a prototype inheritance chain. For
information about inheritance see Chapter 5,
“Inheritance and Lookup.”
pathExpr
symbol
frameExpr .
( )
C H A P T E R 2
Objects, Expressions, and Operators
2-20 The NewtonScript Objects
pathExpr Any expression that evaluates to a path expression
object. The pathExpr corresponds to the slot of the frame
you wish to access. Note that arrays are indexed starting
with zero. See also “Path Expression” on page 2-20.
Slots in a particular frame can be accessed by using a dot (.) followed by a
symbol. For example, the expression:
myFrame.name;
evaluates to the contents of the name slot from the frame referenced by the
variable myFrame.
If the slot is not found in the specified frame using this syntax, the search for
the slot continues through the inheritance chain. The next place NewtonScript
looks is in the prototype frame and then in any of the prototype frame’s
prototypes until the end of the prototype chain is reached. If the slot is not
found, the search stops; it does not continue up through the parent frames. If
the slot does not exist the expression evaluates to nil.
The built-in functions GetVariable and GetSlot provide similar kinds of
slot access but with different inheritance behavior. For more information see
Chapter 6, “Built-In Functions.”
For more information about the inheritance mechanism see Chapter 5,
“Inheritance and Lookup.”
Note that frame accessors are actually operators; they are included here for
your convenience. The rest of the NewtonScript operators are documented in
“Operators” beginning on page 2-29.
You can also access frame slots by using a path expression. Read about these
in the section “Path Expression.”
Path Expression 2
Apath expression object encapsulates an access path through a set of
objects. These objects are necessarily arrays or frames, since these are the
only objects in NewtonScript that can contain other objects.
C H A P T E R 2
Objects, Expressions, and Operators
The NewtonScript Objects 2-21
A path expression can take one of three forms:
■ an integer
■ a symbol
■ an array of class pathExpr
A path expression which is an integer necessarily refers to an array element,
since frame slot names must be symbols. The following code sample shows
how an integer path expression can be used to refer to an array element.
anArray := ["zero", "one", "two"];
aPathExpression := 1;
anArray.(aPathExpression);
"one"
Similarly, a symbol path expression necessarily refers to a frame slot, as in
this code fragment:
aFrame := {name: "Fred", height: 6.0, weight: 150};
aPathExpression := 'height;
aFrame.(aPathExpression);
6.0
The third kind of path expression can refer to any object, whether it is nested
in arrays, frames, or both. The following code sample shows how a path
expression can encapsulate an access path to an object within both arrays
and frames:
myFrame:={name:"Matt",info:{grade:"B",tests:[87,96,73]}};
myPath:='[pathExpr: info,tests,1];
myFrame.(myPath);
96
C H A P T E R 2
Objects, Expressions, and Operators
2-22 Expressions
If a path expression consists entirely of symbols, then the following syntax
can be used:
symbol[.symbol]+
symbol Any valid NewtonScript symbol.
This syntax will actually create an array of class pathExpr, and a path
expression written in this syntax will be printed out in the Inspector as an
array of class pathExpr. The following code sample illustrates how this
syntax is used.
myFrame := {kind:"Cat",type:{hair:"Long",color:"Black"}};
myPath := 'type.color;
myFrame.(myPath);
"Black"
Note that you can also use path expressions to set the value of a slot. For
instance, to change the color of the cat, use an expression like:
myFrame.(myPath):= "White";
Expressions 2
A simple expression consists of values and an operator, as shown in the code:
12 + 3;
The values (12 and 3) and the infix operator plus (+), that appears in the line
between them, are evaluated to return the value 15.
symbol . symbol
C H A P T E R 2
Objects, Expressions, and Operators
Expressions 2-23
Variables are often used in expressions as named containers in which to store
values. For example, you can use a variable on the left side of an assignment
expression, as in
currentScore := 12;
to store a value. The variable currentScore then becomes the identifier for
the value. For more information about the assignment operator (:=), see the
section “Operators,” in this chapter.
Variables 2
A variable is named by a symbol. You can use this symbol to refer to any
kind of value; from numbers to frames.
When a method is executing and a variable reference is encountered, the
system evaluates the value of the variable. This is done following the
variable lookup rules of NewtonScript’s double inheritance scheme. Variable
lookup is discussed in Chapter 5, “Inheritance and Lookup.”
The next section discusses the use of the local keyword to declare
local variables.
Local 2
local [typeIdentifier]varSymbol1 [:= expression ]
[, varSymbol2 [:= expression] ]*
The local declaration consists of the keyword local, and any number of
initialization clauses – an optional type identifier, a symbol, and optionally
an assignment operator (:=), followed by an expression.
varSymbol1 := expression
, varSymbol2 := expression
local type-specifier
C H A P T E R 2
Objects, Expressions, and Operators
2-24 Expressions
varSymbol Consists of an identifier that is, syntactically, a symbol.
The symbol names a variable that may be initialized
with the optional expression. For more information on
symbols see the section “Symbol” beginning on
page 2-12.
typeIdentifier Either of the keywords int or array. It is important to
include a typeIdentifier when declaring local arrays or
integers in a native function, since this will improve
performance. For more information on native functions,
see “Native Functions” on page 4-16.
expression Consists of any valid NewtonScript expression. If a local
variable is not explicitly initialized, NewtonScript will
initialize it to nil.
Use of the local keyword is optional. If it is omitted the variables are still
declared and initialized—so long as no other variables have these names.
This keyword should never be omitted, however, for the following reasons:
■ Performance is improved; the system has to search globals and the
inheritance structure before declaring the local variable.
■ Possible hard-to-find bugs are avoided. If a global variable or an inherited
slot has this name, that variable will have its value changed; a new
variable will not be declared. When the value of the global variable or
inherited slot is then accessed, unexpected results might occur.
■ Explicitly declaring local variables makes code easier to read and maintain.
■ The native compiler cannot handle undeclared locals.
The scope of a local variable is restricted to the function definition in which it
is declared. You can refer to it only within that function.
C H A P T E R 2
Objects, Expressions, and Operators
Expressions 2-25
You may use the local expression to identify a variable as local without
initializing it as in the example:
myFunc: func (x)
begin
local myVar, counter;
...
end
This example declares the variables myVar and counter as local variables
and initializes them to nil. Then, each time the function definition for
myFunc is executed, new local variables are created that are unique to
that function.
You may optionally use a local expression with one or multiple assignment
clauses to assign a value to a variable or variables, as shown in the
expression:
local x:=3, y:=2+2, z;
This expression creates three local variables, x, y, and z, and initializes them
to the values of 3, 4, and nil, respectively.
The declaration of the local variable is processed at compile time but the
values are assigned at run time, when the expression is encountered. For
example, the expressions
x := 10;
local x, y := 20;
result in a value of 10 for x and a value of 20 for y. This works because
local definitions work anywhere in the function.
By contrast, a run-time error is produced by the following code fragment:
x := y + 10;
local x, y := 20;
C H A P T E R 2
Objects, Expressions, and Operators
2-26 Expressions
This is because at compile time x and y are declared and initialized to nil.
When the assignments are made at run time, y evaluates to nil, and an error
is produced in the computation of nil+10.
Constants 2
There are several ways to get unchangeable objects in NewtonScript. You can
■ use the keyword constant
■ put a single quote character (') before an object literal
■ initialize a variable to a literal value
Constant 2
constant constSymbol1 := expression [, constSymbol2 := expression ]*
The constant declaration consists of the keyword constant and one or
more initialization clauses consisting of a symbol, assignment operator (:=),
and expression.
constSymbol Consists of an identifier that is, syntactically, a symbol.
For more information see the section “Symbol”
beginning on page 2-12.
expression Any expression consisting of operators and constants.
The value of this expression becomes the value of
constSymbol.
When a constants is used as a value, NewtonScript effectively substitutes
literal values for the constant. This means that if you declare a constant, as in
the expression
constant kConst := 32;
constant constSymbol1 := expression , constSymbol2 := expression
C H A P T E R 2
Objects, Expressions, and Operators
Expressions 2-27
then when you use kConst as a value in your code, NewtonScript automatically
substitutes the value 32. If you write
sum := kConst + 10;
it’s exactly as if you had written
sum := 32 + 10;
However, if you use the same identifier as anything other than a value, as in
the expressions:
x:kConst(42);
kConst(42);
x.kConst;
the value you defined is not substituted. This can be a problem if you define
a constant to have a function or method as its value. For these cases there are
built-in functions you can use as work-arounds, as shown in Table 2-4.
You should also note that the constant value you assign does not get
substituted when used in a quoted expressions like:
'{foo: kConst};
'[kConst];
See the next section to learn more about the single quote syntax.
Table 2-4 Constant substitution work-arounds
No Substitution Work-around
x:kConst(42); Perform(x,kConst,[42]);
kConst(42); call kConst with (42);
x.kConst; x.(kConst);
C H A P T E R 2
Objects, Expressions, and Operators
2-28 Expressions
▲ WA R N I N G
You can create local constants by putting the declaration in a
function. Since they are in the same name space of the
compiler as local variables, a local variable with the same
name can override constants and vice versa. ▲
Quoted Constant 2
'object
The single quote character (') begins a kind of expression called a
quoted constant.
You use the quote to create a literal object. The object is constructed at
compile time, and a reference to the same object results each time the object
literal is evaluated.
Here are several examples of literal objects formed with the quoted
constant syntax:
'{name: "Joe Bob", income: yearTotal};
'myFrame.someSlot;
'[foo, 1234, "a string"];
When a quote appears outside of the brackets or braces, it applies to every
element in the array or frame, and symbols within the array or frame do not
need individual quotes. For instance, if you try to create this seemingly
correct frame:
storyFrame := {Bear1: Mama, Bear2: Papa, Bear3: Baby};
you find that an error is caused when the value Mama gets interpreted as
an undefined variable. One way to fix this is to put quotes before each name,
or more simply to put one quote before the whole frame, as shown in
the expression:
storyFrame := '{Bear1: Mama, Bear2: Papa, Bear3:Baby};
' object
C H A P T E R 2
Objects, Expressions, and Operators
Operators 2-29
You can pass a quoted frame literal as a parameter to apply the object
as needed.
Operators 2
The NewtonScript operators are:
■ assignment
■ arithmetic
■ Boolean
■ equality
■ relational
■ unary
■ message-send
■ array and frame accessors
All NewtonScript operators, except the message-send operators and array
and frame accessors are discussed in this section. The message-send operators
are described in Chapter 4, “Functions and Methods.” The access
operators are described in “Frame Accessor” beginning on page 2-19 and
“Array Accessor” beginning on page 2-16.
Assignment Operator 2
lvalue:= expression
In an assignment expression, the symbol, frame accessor, or array accessor
that is the left-hand value for the assignment operator (:=), is assigned the
value of the expression appearing to the right of assignment operator. An
lvalue : = expression
C H A P T E R 2
Objects, Expressions, and Operators
2-30 Operators
assignment expression evaluates to the expression on the right-hand side of
the assignment operator (:=).
lvalue Consists of a symbol, a reference to an array element, or
a reference to a frame slot.
expression Consists of any valid NewtonScript expression.
You use assignment expressions to change the value of variables and slots. A
simple assignment expression looks like this:
a := 10;
However, you can use any NewtonScript expression on the right-hand side
of an assignment expression; when it is evaluated its value is assigned to the
lvalue. For example, the variable x is set to refer to the value of the if
expression in this assignment expression:
x := if a > b then a else b;
Here is an example of the assignment of a frame to a variable:
myFrame := {name: "", phone: "123-4567"}
Now you can assign a value to the name like this:
myFrame.name := "Julia"
Note that the NewtonScript inheritance rules affect the ultimate behavior of
assignment expressions in frames. For more information about inheritance
and setting slot values see “Inheritance Rules for Setting Slot Values,” in
Chapter 5.
You can assign values to array slots in a similar manner. The second line of
this code fragment changes the value 789 to 987.
myArray := [123, 456, 789, "a string"];
myArray [2] := 987;
Note that assignments of reference objects to variables will only copy a
pointer to the object into the variable, see “Immediate and Reference Values”
beginning on page 2-5. The built in functions Clone, DeepClone, and
C H A P T E R 2
Objects, Expressions, and Operators
Operators 2-31
TotalClone allow you to work around this behavior. See Chapter 6,
“Built-In Functions” for an explanation of how these functions work.
An assignment expression, lvalue := expression, evaluates to the value of
expression. Furthermore, the assignment operator associates right-to-left.
Thus, you can write an expression such as:
aVariable := anotherVariable := anExpression;
This will parse as:
aVariable := (anotherVariable := anExpression);
The (anotherVariable := anExpression) part will evaluate to
anExpression, and both aVariable and anotherVariable will be set
to the value of anExpression.
Note
If you accidentally write an equality operator (=) in an
assignment expression as rather than the assignment
operator (:=), your expression becomes a simple relational
expression. For example, the expression x = 5;
evaluates to true or nil and leaves the value of x
unchanged. ◆
Arithmetic Operators 2
{ + | - | * | / | div | mod | << | >> }
NewtonScript provides the standard set of binary arithmetic operators. They
are: the addition (+) and subtraction (-) operators, the multiplication (*) and
+ - * / div mod << >>
C H A P T E R 2
Objects, Expressions, and Operators
2-32 Operators
division (/) operators, the truncating operators div and mod, and the bitwise
shift operators, bitwise left shift (<<) and bitwise right shift (>>).
+ The plus operator adds the two numbers it appears
between.
- The minus operator subtracts the number to its right
from the number to its left. Note that minus can also be
used as a unary operator to negate an expression. See
“Unary Operators” beginning on page 2-35.
* The multiply operator multiplies the two numbers it
appears between.
/ The division operator divides the number to its left by
the number to its right.
div The divide and truncate operator divides the number to
its left by the number to its right and truncates the
remainder so that a whole number is returned.
mod The modulo operator divides the number to its left by
the number to its right and returns only the remainder.
<< The bitwise shift left operator is an infix operator. In
the expression:
x << y ;
x is shifted left by y bits.
>> The bitwise shift right operator is an infix operator. In
the expression:
x >> y ;
x is shifted right by y bits. The most significant bit is
duplicated in the shift operation.
See Table 2-5 on page 2-39 for a summary of operator precedence.
C H A P T E R 2
Objects, Expressions, and Operators
Operators 2-33
Equality and Relational Operators 2
{ = | <> | < | > | <= | >=}
NewtonScript provides the standard set of binary equality and relational
operators. The equality operators are: equal (=) and not equal (<>). The
relational operators are less than (<), greater than (>), less than or equal to
(<=), and greater than or equal to (>=).
= The equal operator tests the value of immediates and
reals, and the identity of references; returning true if
they are equal and nil if they are not equal.
<> The not equal operator tests the value of immediates
and reals, and the identity of references; returning true
if they not equal and nil if they are equal.
< The less than operator compares the values of numbers,
characters, and strings; returning true if the operand
on the left of the operator is less than the operand on its
right and nil otherwise. An error is signalled if you try
to compare arrays or frames.
> The greater than operator compares the values of
numbers, characters, and strings; returning true if the
operand on the left of the operator is greater than the
operand on its right and nil otherwise. An error is
signalled if you try to compare arrays or frames.
<= The less than or equal to operator compares the values
of numbers, characters, and strings; returning true if
the operand on the left of the operator is less than or
equal to the operand on its right and nil otherwise. An
error is signalled if you try to compare arrays or frames.
= <> < > <= >=
C H A P T E R 2
Objects, Expressions, and Operators
2-34 Operators
>= The greater than or equal to operator compares the
values of numbers, characters, and strings; returning
true if the operand on the left of the operator is greater
than or equal to the operand on its right and nil
otherwise. An error is signalled if you try to compare
arrays or frames.
This expression tests the identity of two reference objects:
"abc"<> [1, 2];
It evaluates to true because the two objects are not the same object.
In the same way, the equality operator (=), when applied to two array
objects, compares their identity, as shown when you execute the code:
[1,2] = [1,2];
This expression evaluates to nil even though at first glance it looks as
though it should be true. This is because each time the [1,2] expression is
evaluated a new object is created.
The relational operators work with numbers, characters, and strings. If you
try to use these operators with arguments that are arrays or frames, an error
is signalled.
Boolean Operators 2
{ and | or }
The Boolean operators, and and or, are binary logical operators that
compare two expressions.
and The and operator tests the logical truth of its two
operands; returning true if both expressions are true
and nil otherwise.
and or
C H A P T E R 2
Objects, Expressions, and Operators
Operators 2-35
or The or operator tests the logical truth of its two
operands; returning true if either expression is true
and nil if both expressions are false.
Expressions involving the Boolean operators, and and or, like their
counterparts, && and ||, in the C programming language, short circuit or
stop evaluation as soon as the truth of an expression is determined. For
instance, if
x < length(someArray)
evaluates to nil in a conditional expression like
if x < length(someArray) and someArray[x]
then doSomething
else doSomethingElse;
processing is stopped immediately and goes on to the else clause. If one
part of an and operation is not true, the whole and expression is not true.
Therefore, it is not necessary to evaluate the second half of the and
expression when the first half is not true. When this occurs it is said that
execution is short-circuited. Similarly, if the first part of an or operation
is true, than the whole or expression is true, and the second part is
not evaluated.
The return value of an expression using any of the logical operators is either
nil, which is false, or anything other than nil, which is true.
Unary Operators 2
{ - | not }
The unary prefix operators, minus (-) and not, precede any single expression.
- not
C H A P T E R 2
Objects, Expressions, and Operators
2-36 Operators
- The minus (-) operator returns the additive inverse of
the expression it precedes.
not The not operator is used before an expression to
perform a logical negation of that expression.
Here are some examples of these operators in use:
-x; not x; -(1 + 5);
not(a and -f(12) > 3);
Exists is another NewtonScript unary (but postfix) operator. It is described
in the section“Exists” beginning on page 2-37.
String Operators 2
string1 { & | && } string2
The two string operators, && and &, create a new string from the contents of
two strings you provide. The single & operator creates a new string that has
no spaces between the two objects, while the double && operator adds a
space between the two strings in the new string.
If you use an object that is not a string in an && or & expression, NewtonScript
converts the object to a string and uses it to construct a new string. This works
for symbols, characters, and numbers.
An & and && expression returns a new string.
& An & expression concatenates the string yielded by the
expression on its left to the string yielded by the
expression on its right.
&& An && expression creates a new string by concatenating,
with a space, the string yielded by the expression on its
left to the string yielded by the expression on its right.
& &&
C H A P T E R 2
Objects, Expressions, and Operators
Operators 2-37
The single & operator concatenates the two strings by leaving no space, in the
new string, between what was the second string and the first string. For
instance, the expression:
"foo" & 17
creates the new string:
"foo17"
In contrast, the && operator creates a new string by copying the first string,
adding a space, and then copying the second string, as you can see, in the
following expression and its result:
"happy" && "days"
"happy days"
Exists 2
lValue exists
The exists operator is a special postfix operator that follows a single
variable that can be a symbol, a frame accessor, or a message send.
The exists operator is used to check for the existence of variables, slots, or
methods. When you apply the exists operator to an identifier, such as a
variable, it returns true if the variable is defined in the current context and
nil otherwise. (For more information about the scope of variables see
“Scope” beginning on page 1-4.)
lValue Consists of an expression that evaluates to a symbol,
frame accessor, or a message-send.
All of these are legal forms for an exists expression to take:
x exists;
x.y exists;
lvalue exists
C H A P T E R 2
Objects, Expressions, and Operators
2-38 Operator Precedence
x.(y) exists;
x:m exists;
Here is an example of a simple if…then structure that uses exists:
if myVar exists then myVar else 0;
When you apply exists to a frame accessor, exists returns true if the
slot exists in the frame or in any of its prototype frames, and nil otherwise.
(For more information about prototype frames and inheritance, see
Chapter 5, “Inheritance and Lookup.”) If…then expressions are described
in Chapter 3, “Flow of Control.”
This operator can be useful if you want to check for the existence of a slot
that may or may not be in a proto frame.
if myFrame.aSlot exists then
if not hasSlot(myFrame, 'aSlot) then
print("'aSlot slot is in a prototype of myFrame")
The built-in function HasSlot provides similar functionality to the exists
operator though they differ in the type of inheritance that is used to search
for slots. See also “Inheritance Rules for Testing for the Existence of a Slot,”
in Chapter 5, and Chapter 6, “Built-In Functions.”
Note
The exists operator is not guaranteed
to work for local variables. ◆
Operator Precedence 2
In case it is not inherently apparent in an expression, a set of ratings tells
the compiler which operator to evaluate first (or which operator takes
precedence). Table 2-5 lists the order of precedence of all the NewtonScript
operators in order from top to bottom. Note that operators grouped together
in the table are of equal precedence.
C H A P T E R 2
Objects, Expressions, and Operators
Operator Precedence 2-39
Table 2-5 Operator precedence and associativity
Operator Action Associativity
. slot access left-to-right
:
:?
message send
conditional message send
left-to-right
[] array element left-to-right
- unary minus left-to-right
<<
>>
left shift
right shift
left-to-right
*
/
div
mod
multiply
float division
integer division
remainder
left-to-right
+
-
add
subtract
left-to-right
&
&&
concatenate (string copy
of expression value)
concatenate with 1 space
between
left-to-right
exists variable & slot existence none
<
<=
>
>=
=
<>
less than
less than or equal
greater than
greater than or equal
equal
not equal
left-to-right
not logical not left-to-right
and
or
logical and
logical or
left-to-right
:= assignment right-to-left
Compound Expressions 3-1
C H A P T E R 3
Flow of Control 3
This chapter discusses the syntax and semantics of the standard flow-ofcontrol
mechanisms including compound expressions, conditional
expressions and iterators.
Also included is a discussion of the non-standard flow-of-control mechanism
called exception handling that NewtonScript uses to control exceptional
situations or errors.
Compound Expressions 3
begin
expression1;
expression2;
…
expressionN[;]
end
Figure 3-0
Table 3-0
Listing 3-0
begin expression ; expression ; end
C H A P T E R 3
Flow of Control
3-2 If…Then…Else
In NewtonScript, the keywords begin and end are used to group expressions,
not to create structured blocks that define the scope of variables, as they are
in some languages.
This construct is useful in conditional expressions, in any of the looping
expressions, and in function definitions. In fact, anywhere the syntax
specifies a single expression, you can use a compound expression instead.
The compound expression returns the result of the last expression.
expression Consists of any valid NewtonScript expression; it must
be separated from the next expression by a semicolon,
unless it is the last expression in the compound
expression. In this case, the keyword end separates it
from any following expressions.
If you want to execute more than one expression in a conditional expression,
use the keywords begin and end to group the expressions as shown in
this example:
if x=length(myArray) then
begin
result := self:read(x);
print(result)
end
If…Then…Else 3
if testExpression then expression [;]
[else alternateExpression]
The if…then…else construct allows you to dictate programmatic flow of
control using test conditions.
if testExpression then expression ; else alternateExpression
C H A P T E R 3
Flow of Control
Iterators 3-3
As is standard in other programming languages, you use an if expression to
carry out one set of operations, when the condition you set up in a test
expression is true, and another set of operations when the text expression
evaluates to nil.
The if expression returns the value of its expression or alternateExpression.
clause, unless the test condition is not true and there is no else clause. In
that case, nil is returned.
testExpression Consists of an expression that tests for the truth of a
condition. If the test expression evaluates to anything
other than nil, the expression following it is executed.
expression Consists of any valid NewtonScript expression. A
compound expression may be substituted. (For more
information see the section “Compound Expressions.”)
This expression is executed if the test is true; its value is
returned as the value of the if expression.
alternateExpression Consists of any valid NewtonScript expression. A
compound expression may be substituted. (For more
information see the section “Compound Expressions.”)
The else clause, along with the alternateExpression that
follows it, is executed if the test expression evaluates
to nil.
An else clause binds to the nearest unmatched if-then clause.
Iterators 3
NewtonScript includes these iterators:
■ For
■ Foreach
■ Loop
C H A P T E R 3
Flow of Control
3-4 Iterators
■ While
■ Repeat
■ Break
For 3
for counter := initialValue to finalValue [by incrValue ] do expression
The for loop performs a set of expressions repeatedly, until a loop counter
variable equals or exceeds a specified final value or a Break expression is
reached. A counter variable keeps track of the number of times the loop has
executed. You specify the initial value and final value of the counter variable.
If you choose not to specify the amount to increase (or decrease) the counter
by using the optional keyword by followed with an incremental value, the
counter gets incremented by the default value of 1.
A for loop expression returns nil (or the argument of a break expression, if
one is used to terminate the loop.)
counter This symbol is set to the value of the initialValue
expression when a for loop starts. After each repetition
of the loop, the counter variable is incremented by the
value of incrValue. or by the default value of 1 if an
incremental value is not specified.
The counter symbol is automatically declared as a local
by the NewtonScript compiler.
On loop exit the value of counter is undefined. It is an
error to change its value from within the loop body. If
you do so, loop behavior is undefined.
counter initialValue to finalValue
by incrValue
for : =
do expression
C H A P T E R 3
Flow of Control
Iterators 3-5
initialValue This expression must evaluate to an integer. It is
evaluated once before the loop starts and is used as the
initial value of the counter.
finalValue This expression must evaluate to an integer. It is
evaluated once before the loop starts and is used as the
final value of the counter.
incrValue This expression follows the keyword by. It is evaluated
once before the loop starts and used throughout the
loop execution to increment (or decrement) the counter
variable.
The incremental value expression must evaluate to an
integer (either positive or negative); a value of zero
generates a run-time error. If you do not specify an
incremental expression, after the keyword by, a default
value of 1 is used to increment the counter.
expression Consists of any valid NewtonScript expression. A
compound expression may be substituted. (For more
information see the section “Compound Expressions.”)
Here is an example of a for loop.
for x:=1 to 10 by 2 do print(x);
1
3
5
7
9
C H A P T E R 3
Flow of Control
3-6 Iterators
Foreach 3
foreach [slot,] value [deeply] in {frame | array}
{collect | do} expression
Using the foreach iterator is one way you can access data stored in frames
or arrays. This iterator executes once for each element in an array or frame
allowing you to either iterate an expression over each value stored in an
array or frame, or to collect data during each iteration.
In an array, iteration begins with the first element of the array, element 0. In a
frame the starting point and subsequent order of iteration is unpredictable
since frame slots are not stored in any particular order.
This iterator also has a special option, deeply, for frame iteration over
values in the target frame and in its proto chain of frames as well. For information
on prototype inheritance see Chapter 5, “Inheritance and Lookup.”
Aforeach expression returns nil (or the argument of a break expression,
if one is used to terminate the loop.)
slot This symbol is set to the name or index of the next slot
on each loop iteration over the elements of an array or
frame. The value of this variable is undefined on loop
exit. Using the slot variable is optional. If you specify
just one variable of the slot, value pair, it’s assumed to
be as the value.
The slot symbol is automatically declared as a local by
the NewtonScript compiler.
, value deeply in
frame
array
expression
foreach
do
collect
slot
C H A P T E R 3
Flow of Control
Iterators 3-7
value Set to the value of the next array element or frame slot
on each loop iteration over the elements of an array or
frame. The value of this variable is undefined on loop
exit. Using the value variable is mandatory. If you
specify just one variable, of the slot, value pair, it’s value
is assigned as the element value.
The value symbol is automatically declared as a local by
the NewtonScript compiler.
array An expression that evaluates to an array.
frame An expression that evaluates to a frame.
expression Consists of any valid NewtonScript expression. A
compound expression may be substituted. (For more
information see the section “Compound Expressions”
beginning on page 3-1)
deeply Optional. If this keyword is included, iteration occurs
over values in the immediate frame first and then in the
_proto frame(s) as well. (For information on prototype
inheritance see Chapter 5, “Inheritance and Lookup.”) If
you specify the deeply option and the frame you are
concerned with does not have a _proto frame, no error
is produced. Instead, the slot values evaluate to those of
the current frame.
You use foreach to access data stored in a frame that functions like a Pascal
record or a C struct. The data used in the following example is the
nameFrame frame, defined as:
nameFrame := { name:"Carol",
office:"San Diego",
phone:"123-4567"};
C H A P T E R 3
Flow of Control
3-8 Iterators
You can use the foreach do loop to access and print the slot names and
values stored in a nameFrame by writing a method like reportIt:
report:= { reportIt: func(frameName)
foreach slot, value in frameName do
print(slot && “:” && value);
}
When you send the message reportIt with the argument nameFrame to
the report object, as shown here:
report:reportIt(nameFrame);
this is the output produced:
"name : Carol"
"office : San Diego"
"phone : 123-4567"
Using collect with the foreach iterator makes it easy to collect the data
and manipulate it. Consider a dataFrame which is defined as:
dataFrame := {1,3,5,7,9}
You can collect the squares of each value in dataFrame and print the results,
with the code shown here:
result := foreach value in dataFrame collect value*value;
print(result);
The values are collected in an array, as shown in the output:
[1,9,25,49,81]
Note
The behavior of foreach is undefined when the array or
frame is modified inside the loop body, except for the specific
case of deleting the current element. In this specific case, the
loop will continue on to the next element as expected. ◆
C H A P T E R 3
Flow of Control
Iterators 3-9
If you want the foreach iterator to look up slot values in the prototype
frame in addition to the current frame, use the deeply option. To make use
of the deeply option with this iterator, your data set must include a frame
that references a prototype frame. For purposes of example we can use the
data defined here as:
x := {one:1, two:2, three:3};
y := {four:4, five:5, combo:x};
z := {six:6, _proto:y};
You can consult the picture of this data, shown in Figure 3-1, while looking at
the accompanying table, Table 3-1, which shows the different results
produced by using foreach both alone and with the deeply option.
Figure 3-1 Data objects and their relationships
Table 3-1 allows you to compare the results produced by two functions,
normalList and deeplyList, as applied to the data in Figure 3-1.
Test Data x
one
two
three
1
2
3
x:={one:1,two:2,three:3};
#440F2D9 {One:1,
two:2,
three:3}
y:={four:4,five:5,combo:x};
#440F891 {four:4,
five:5,
combo:{One:1,
two:2,
three:3}
z:={six:6,_proto:y};
#440FE61 {six:6,
_proto:{four:4,
five:5,
combo:{#440F2D9}}}
z
four
five
combo
4
5
x
y
six
_proto
6
y
C H A P T E R 3
Flow of Control
3-10 Iterators
Table 3-1 Result comparison for the iterators foreach and foreach deeply
Loop 3
loop expression
This mechanism simply repeats any expressions that occur within the loop
expression until a break expression is encountered; if no break expression
is reached the loop never ends.
foreach foreach deeply
normallist := func (param) begin
foreach tempItem in param
collect tempItem;
end;
deeplylist := func (param) begin
foreach tempItem deeply in param
collect tempItem;
end;
:normallist(x)
#4413441 [1, 2, 3]
:deeplylist(x)
#44137D9 [1, 2, 3]
:normallist(y) // same
#4413A11 [4,
5,
{One: 1,
two: 2,
three: 3}]
:deeplylist(y)
#4413C49 [4,
5,
{One: 1,
two: 2,
three: 3}]
:normallist(z)
#4416E29 [6,
{four: 4,
five: 5,
combo: {#4415D79}}]
:deeplylist(z)
#4416FE1 [6,
4,
5,
{One: 1,
two: 2,
three: 3}]
loop expression
C H A P T E R 3
Flow of Control
Iterators 3-11
The loop expression returns the argument of the break expression that is
used to terminate the loop.
expression Consists of any valid NewtonScript expression. A
compound expression may be substituted. (For more
information see the section “Compound Expressions”
beginning on page 3-1) This expression is evaluated
during each loop iteration.
This example prints the value of the variable x until it reaches the value of 0
and the break expression is executed.
local x:=4;
loop
if x = 0 then
break
else
begin
print(x);
x:=x-1
end
4
3
2
1
While 3
while condition do expression
The while loop evaluates the conditional expression first. If it evaluates to a
non-nil value (true or any other value that is not nil) the expression after
the keyword do executes. This sequence repeats until the conditional
expression evaluates to nil and ends loop execution.
while condition do expression
C H A P T E R 3
Flow of Control
3-12 Iterators
Awhile expression returns nil (or the argument of a break expression, if
one is used to terminate the loop.)
condition Consists of an expression that tests for the truth of a
condition. If the test expression evaluates to nil, loop
execution ends.
expression Consists of any valid NewtonScript expression. A
compound expression may be substituted. (For more
information see the section “Compound Expressions”
beginning on page 3-1) This expression is evaluated
during each loop iteration.
Repeat 3
repeat
expression1;
expression2;
…
expressionN[;]
until condition
The repeat loop executes the expression(s) inside the loop first and then
evaluates the test expression. If the expression at the end of the loop
evaluates to nil, the expressions repeat and the test expression is evaluated
again. This continues until the expression evaluates to non-nil, at which
point the loop ends.
repeat expression ; expression ; until condition
C H A P T E R 3
Flow of Control
Exception Handling 3-13
Arepeat expression returns nil (or the argument of a break expression, if
one is used to terminate the loop.)
condition Consists of an expression that tests for the truth of a
condition. If the conditional expression evaluates to
anything other than nil, loop execution ends.
expression Consists of any valid NewtonScript expression.
Break 3
break [expression ];
While not an iterator itself, the Break expression interrupts the execution of
any of the iterative structures. You must use the Break expression to stop the
simple Loop structure, which has no built-in constructs to stop it.
If a expression follows Break, it is evaluated and returned as the value of the
loop. If you use the Break with no expression following it, the loop returns
the value nil.
expression Consists of any valid NewtonScript expression. A
compound expression may be substituted. (For more
information see the section “Compound Expressions”
beginning on page 3-1) The value of this expression is
returned as the value of the Break expression.
Exception Handling 3
This section describes exception handling in NewtonScript. Exception
handling is a non-standard flow-of-control mechanism that NewtonScript
inherits from Newton system software.
NewtonScript exception handling allows you to respond to exceptional
conditions that arise during the execution of your program. An exceptional
condition, or exception, is a condition that either the Newton system
break expression
C H A P T E R 3
Flow of Control
3-14 Exception Handling
software or your own code raises when something unexpected or erroneous
happens at run time.
When an exception is raised at run time, the system can transfer control to an
exception handler, which is a block of code that attempts to handle the
condition gracefully, rather than allowing the application to crash. An
exception handler can respond by displaying an error message, reverting the
state of a computation, or taking some other action or actions.
The act of raising an exception is known as throwing an exception. An
exception handler catches the exception and responds in some manner. Each
exception has a unique name and each exception handler responds to a
specific exception or class of exceptions.
Newton system software throws and catches a number of built-in exceptions.
You can define, throw, and catch your own exceptions, and you can also
catch and handle the built-in exceptions.
Working with Exceptions 3
Working with exceptions in NewtonScript involves a number of entities. You
can perform the following actions to work with exceptions:
■ define an exception symbol for a specific exception or class of exceptions
■ enclose a list of statements within a try statement to catch any exceptions
that occur during execution of those statements
■ catch a specific exception or class of exceptions with an onexception
statement
■ use the CurrentException function to examine the frame associated
with the exception that you are handling
■ throw an exception when you detect a condition that request handling
■ rethrow an exception from within your exception-handling code to allow
the next handler for the exception to respond to it
You can provide exception handling for any list of statements in your
NewtonScript programs. You can also nest an exception-handling block
C H A P T E R 3
Flow of Control
Exception Handling 3-15
of code inside of another exception-handling block of code to provide a
hierarchical chain of exception handlers.
Each exception handler can specify which exception or class of exceptions
it processes by naming the symbol or symbol prefix that it handles. An
exception handler can also reraise (rethrow) the exception that it is handling
to allow other exception handlers in the chain an opportunity to process
the exception.
The basic process for implementing exception handling is as follows:
1. Decide on a name for the exceptions that you are going to define and how
you are going to respond when each exception is raised.
2. Write your code and use the Throw function to raise exceptions where
appropriate.
3. Write an onexception clause for each exception. Each clause names an
exception and provides a statement to handle that exception.
4. Enclose the list of statements in which you are raising and handling
exceptions with a Try statement.
Defining Exceptions 3
Each exception is named with an exception symbol. You must adhere to the
following format rules when defining an exception symbol. Each symbol
■ must be enclosed in vertical bars (|)
■ must contain at least one part that begins with the prefix evt.ex
■ can contain up to 127 characters
■ can contain multiple parts that are separated by semicolons (;)
A few example of exception symbols are shown in Listing 3-1.
C H A P T E R 3
Flow of Control
3-16 Exception Handling
Listing 3-1 Exception symbols
|evt.ex|
|evt.ex.fr.intrp|
|evt.ex.div0|
|evt.ex.msg;type.ref.frame|
IMPORTANT
Do not leave a space between the parts of exception
symbols, since the vertical bars make the space part of the
exception symbol. ◆
The prefixes contained in the exception symbols are used to define the
hierarchy of exception handlers, as described in the section “Catching
Exceptions” beginning on page 3-21. These prefixes are also important
for defining exception types, as described in the section “Exception Frames”
on page 3-16.
Exception Symbol Parts 3
Each exception symbol can contain multiple parts, enclosed in vertical bars
and named as described earlier in this section. For example, the symbol
|evt.ex;type.ref.something|
contains two parts. The parts of an exception symbol must be separated by
a semicolon.
When an exception symbol contains multiple parts, the exception is still
processed as a single exception. This means that the first exception handler
to catch any part of the exception symbol handles the exception. That
handler can rethrow the exception to allow other handlers to catch it.
Exception Frames 3
A frame is associated with each exception. This exception frame contains
two slots: a name slot and a data slot. The name slot is always named name
and always contains the exception symbol. The name and contents of the
C H A P T E R 3
Flow of Control
Exception Handling 3-17
other slot, which contains the data, depend on the composition of the
exception symbol, as shown in Table 3-2.
Table 3-3 shows several examples of exceptions and the frames associated
with them.
You can access the frame that is associated with an exception from within
your exception handler by calling the built-in function CurrentException,
described in Chapter 6, “Built-In Functions.”
Table 3-2 Exception frame data slot name and contents
Exception
symbol
Slot
name Slot contents
contains part
with prefix
type.ref
data a data object, which can be any
NewtonScript object
contains part
with prefix
evt.ex.msg
message a message string
any other error an integer error code
Table 3-3 Exception frame examples
Exception symbol Exception frame
|evt.ex;type.ref| {name: '|evt.ex;type.ref|, data:
{type: 'inka, size: 42, weight:
177}}
|evt.ex.msg| {name: '|evt.ex.msg|, message:
"there seems to be a problem"}
|evt.ex| {name: '|evt.ex|, error: -48666}
C H A P T E R 3
Flow of Control
3-18 Exception Handling
The CurrentException function returns the frame that is associated with
the current exception. You can examine the frame returned by
CurrentException to determine what kind of exception you are handling.
For example, you can call the HasSlot function to determine if the frame
contains a slot named error and you can then take appropriate action.
The Try Statement 3
You use the try statement to enclose a list of statements in which you want
to handle exceptions. The syntax of a try statement is
try
expression1;
expression2;
…
expressionN
onexception exceptionSymbol do
statement
onexception exceptionSymbol do
statement...
The try statement encloses statement1 through statementN and transfers
control to one of the onexception clauses when an exception is raised. If
no exceptions are raised, the value of the try statement is the value of its
final statement. If an exception is raised and an onexception clause
handles that exception, the value of the try statement is the value of the
executed onexception clause’s statement.
exeptionSymbol do statement
try
onexception
expression ; expression ;
C H A P T E R 3
Flow of Control
Exception Handling 3-19
expression Any valid NewtonScript expression.
exceptionSymbol An exception symbol that can contain multiple parts
separated by semicolons. The symbol is enclosed in
vertical bars and can contain up 127 characters.
Exception symbols are described in “Exception Symbol Parts” beginning on
page 3-16. Examples of the try statement and onexception clauses are
found in Listing 3-4 on page 3-22.
Throwing Exceptions 3
To raise an exception in NewtonScript, you need to call the Throw function
and to include the exception name and data as parameters. The form of the
data that you send as a parameter must match the type of exception you
are throwing.
The Throw(name,data) function raises an exception and creates an exception
frame with the specified name and data. The possible values for the data
parameter depend on the composition of name, and are shown in Table 3-2 on
page 3-17. The Throw function is described in Chapter 6, “Built-In Functions.”
You call the Throw function from within a list of statements that are enclosed
by a Try statement. NewtonScript transfers control to the onexception
clause whose symbol matches name. Listing 3-2 shows several examples of
calls to the Throw function.
Listing 3-2 The Throw function
Throw('|evt.ex.foo|, -12345);
Throw('|evt.ex.msg|, "This is my message");
Throw('|evt.ex;type.ref.something|, ["a", "b", "c"]);
C H A P T E R 3
Flow of Control
3-20 Exception Handling
Note that the composition of the exception symbol that you pass as the first
parameter to the Throw function defines the kind of data that you pass as the
second parameter:
■ The first statement in Listing 3-2 requires an error number as its second
parameter.
■ The second statement in Listing 3-2 contains the prefix evt.ex.msg and
thus requires a message string as its second parameter.
■ The third statement in Listing 3-2 contains the prefix type.ref and thus
requires a data object (in this case, an array) as its second parameter.
Throwing an Exception to Another Handler 3
You can pass control from within an exception handler to the next enclosing
Try statement by reraising the exception. To do this, you call the Rethrow
function. This function is described in Chapter 6, “Built-In Functions.”
The Rethrow function reraises the current exception to allow the next
enclosing Try statement an opportunity to handle it. The Rethrow function
also passes along the same parameters as were passed with the original call
to the Throw function. The following example illustrates the use of Rethrow:
onexception |evt.ex.msg| do
if StrEqual (CurrentException().message, someString)
then self:doSomething();
else Rethrow()
IMPORTANT
You can call the Rethrow function only from within an
onexception clause. ▲
C H A P T E R 3
Flow of Control
Exception Handling 3-21
Catching Exceptions 3
When an exception is thrown during the execution of a list of statements,
execution of that list of statements is terminated and control is transferred
to the first exception handler that matches the exception. Each exception
handler is an onexception clause enclosed within a try statement, as
shown in Listing 3-3 and Listing 3-4.
Each onexception clause specifies the symbol of the exception or the class
of exceptions that it handles. The first exception handler that matches the
symbol of the exception that has been raised is the handler that is invoked.
This happens as follows:
1. When an exception is raised, Newton system software examines the
onexception clauses of the try statement that is currently active.
The onexception clauses are examined in order, from first defined to
last defined.
2. The first matching onexception clause is executed and the value of the
clause becomes the value of the try statement. A matching onexception
clause is one whose exception symbol is a prefix of any of the parts of the
exception that was raised.
3. If the active try statement does not contain a matching onexception
clause, the exception is passed onto the next enclosing try statement.
4. The exception is passed along to enclosing try statements until it is
handled. If no onexception clause in your application handles it, the
exception will be handled by the system, which responds by displaying an
error alert.
There are two logical points that should be considered in structuring code
with exception handlers.
First, since exceptions are handled by the first onexception clause that
contains a prefix of a part of the exception symbol, you need to order your
onexception clauses from most specific to least specific. For example, the
code in Listing 3-3 contains three onexception clauses ordered improperly.
C H A P T E R 3
Flow of Control
3-22 Exception Handling
Listing 3-3 Several onexception clauses ordered improperly
try
c := x:myFunc(p, q);
:anotherFunc(c)
onexception |evt.ex.pgm.fnerr| do
begin
print(“function error”);
c := nil;
end
onexception |evt.ex.pgm| do
print(“program error”)
onexception |evt.ex.pgm.dataerr| do
print(“data error”);
The final onexception clause in Listing 3-3 will never be executed because
the second onexception clause catches any exceptions that contain the
evt.ex.pgm prefix. Changing the order of the clauses to make the least
specific (the |evt.ex.pgm| symbol) clause last fixes the problem. This
improved version of the code is shown in Listing 3-4.
Listing 3-4 The onexception clauses properly ordered
try
c := x:myFunc(p, q);
:anotherFunc(c)
onexception |evt.ex.pgm.fnerr| do
begin
print(“function error”); do
c := nil;
end
onexception |evt.ex.pgm.dataerr| do
print(“data error”)
onexception |evt.ex.pgm| do
print(“program error”);
C H A P T E R 3
Flow of Control
Exception Handling 3-23
Second, an onexception clause is matched with the nearest try statement,
just as an else clause is matched to the nearest if-then clause. However,
unlike the if-then case, a single try statement can bind to multiple
onexception clauses. Listing 3-5 illustrates how this can cause problems
when nesting try blocks. Listing 3-6 then shows how this problem can be
avoided by explicitly declaring try blocks with the keywords begin and end.
Listing 3-5 Improperly nested try blocks
func f()
begin
try
try
self:doSomething()
onexception |evt.ex| do
print( CurrentException() );
self:doSomethingElse()
onexception |evt.ex| do
print( “There was a problem.” );
end
Listing 3-6 Nested try block problem fixed using begin and end (shown
in bold)
func f()
begin
try
try
begin
self:doSomething()
onexception |evt.ex| do
print( CurrentException() );
end
C H A P T E R 3
Flow of Control
3-24 Exception Handling
self:doSomethingElse()
onexception |evt.ex| do
print( “There was a problem.” );
end
IMPORTANT
The onexception syntax is not forgiving about extra
semicolons. Never include a semicolon (;) before an
onexception clause. ▲
Responding to Exceptions 3
This section shows and describes several examples of using exception
handling in a NewtonScript application program.
Listing 3-7 shows an exception handler that catches the exception raised by
the Newton system software when there is not enough memory to store a
new date in the Datebook soup.
Listing 3-7 Handling a soup store exception
onException |evt.ex.fr.store| do
:Notify(kNotifyAlert, "Dates",
"Not enough memory to save changes.");
Listing 3-8 shows an exception handler that examines the exception frame to
determine if the exception represents a certain error. If so, the handler takes
an action; otherwise, the handler rethrows the exception so that it can be
caught by another handler.
C H A P T E R 3
Flow of Control
Exception Handling 3-25
Listing 3-8 An exception handler checking the exception frame
onException |evt.ex| do
if HasSlot(CurrentException(), 'error) then
begin
if CurrentException().error = -48211 then
Print(“The string you entered is too large”)
else Rethrow();
end
else Rethrow();
About Functions and Methods 4-1
C H A P T E R 4
Functions and Methods 4
This chapter describes the way you encapsulate and access code in functions
and methods, as well as related topics, including:
■ method and function definition
■ messages
■ passing parameters
■ function objects
■ native functions
About Functions and Methods 4
Most functions in NewtonScript are really methods; that is, they are defined
within the context of a frame that can receive messages. In fact, a method in
NewtonScript is nothing more than a function referenced by a frame slot and
invoked with a message send.
You send messages to objects to execute methods, as in other object-oriented
languages. In NewtonScript, the frame is the only type of object that receives
messages. (See the section “Frame” beginning on page 2-17.)
Figure 4-0
Listing 4-0
Table 4-0
C H A P T E R 4
Functions and Methods
4-2 About Functions and Methods
NewtonScript also has built-in global functions that are part of the system.
These are discussed in Chapter 6, “Built-In Functions.”
Function Constructor 4
func [native](paramList) expression
The func expression is used to create a function or method.
The syntax of a function constructor consists of the reserved word, func,
and the optional keyword, native, followed by parentheses that surround
zero or more parameters in a comma-separated list, and a body of code
consisting of one expression. The keyword native denotes a native
function; see the section “Native Functions” on page 4-16.
A function constructor returns a function object, which, when executed,
returns the value of its expression. This is the last expression executed, if
expression is a compound expression. See the section “Function Objects”
beginning on page 4-9.
paramList An optional list of parameter identifiers that are
separated by commas and enclosed in parentheses. If
your function does not use parameters you must still
include an empty set of parentheses following the
keyword func, or native (if it appears). Any identifiers
in paramList can be preceded by the keywords int or
array, which automatically declares them as variables
of the respective types.
expression Consists of any valid NewtonScript expression. A
compound expression may be substituted. (For more
information see the section “Compound Expressions”
on page 3-1.)
func native ( paramList ) expression
C H A P T E R 4
Functions and Methods
Function Invocations 4-3
When a function is executed, it returns the value of the expression evaluated.
The following example, myFunction, simply returns the value of the
difference between its two parameters, that is, the value of the if expression.
myFunction := func(n1, n2)
if n1 > n2 then n1 - n2;
else n2 - n1
Return 4
return [returnValue]
The return expression is used to exit a function and return a value.
When an expression appears following the keyword, return, it is evaluated
and its value is returned as the value of the function. If you do not specify a
return value, nil is returned on function exit.
returnValue Optional. Consists of any valid NewtonScript
expression or compound expression. If no expression
follows the return keyword, the return expression
evaluates to nil.
Function Invocations 4
There are three ways function objects can be executed in NewtonScript:
■ as the result of a message-send
■ by using the call with syntax
■ with a global function invocation
This section describes each of these in turn.
return expression
C H A P T E R 4
Functions and Methods
4-4 Function Invocations
Message-Send Operators 4
[{inherited|frame}] {:|:?} message(paramList)
Most code is executed in response to messages you send to a frame. Messages
are sent by using either the colon (:), which is the message-send operator, or
the colon-question mark (:?), which is the conditional message-send operator.
The message-send operator (:) sends a message and its arguments, if any, to
a frame object. The conditional message-send (:?) first checks to see if a
method exists anywhere in the inheritance chain before sending the message.
The optional frame expression, frame, appears before the operator and
specifies the frame where the message is sent. If a frame expression is
specified, the message is sent directly to the frame you specify, and it
becomes the receiver of the message.
When nothing appears before the message-send operator, the message is sent
to the current receiver, which you can refer to using the pseudo-variable,
self. Rather than leaving a blank before the message-send operator, you can
make your code more readable by putting self there, to specify explicitly
the current receiver. (See “Note” on page 5-10 for a discussion of the pros
and cons of this usage of self.)
If you want to call an inherited method instead of the method that overrides
it, use the keyword, inherited, before the message-send operator. This
forces NewtonScript to bypass the receiver and look up the value of the
method in the prototype chain, starting after the frame where the currently
executing method was found. Note that lookup stops at the end of the
prototype chain and does not continue up the parent chain. For more information
on lookup see Chapter 5, “Inheritance and Lookup.”
The message that follows the message-send operator is a symbol. The
message-send operator looks for a frame slot with that name. The frame slot
(
:
: ?
)
inherited
frame
message paramList
C H A P T E R 4
Functions and Methods
Function Invocations 4-5
must reference a function with the same number of parameters used in the
message-send parameter list.
frame Any valid NewtonScript expression that evaluates to a
frame. The frame specified becomes the receiver of the
message. The message is sent to the current receiver
when a frame does not appear before the colon, as in the
following expression.
:message(argList);
inherited A keyword specifying that the message is being sent
to an inherited version of the method code residing
somewhere in the prototype chain. Using the
inherited keyword forces method lookup to start in
the prototype chain rather than in the receiver.
message A symbol used to look up the method using the
standard inheritance rules, beginning with the receiver,
at run time. For more information on lookup see
Chapter 5, “Inheritance and Lookup.”
paramList Consists of a list of zero or more parameters, separated
by commas and enclosed by parentheses. The number
of parameters must match the number of parameters
expected by the method.
When the following message-send executes, the message, msg1, is sent to the
object, frame4.
frame4:msg1();
If you send the same message without specifying which frame is the receiver,
the message is sent to the current receiver, as in the expression:
:msg1();
The same operation could be written as:
self:msg1();
C H A P T E R 4
Functions and Methods
4-6 Function Invocations
If you are not sure if a method exists, send the message using the conditional
message-send operator (:?). This operator insures that the message is sent
only if NewtonScript can find the method.
Note that the following two expressions are equivalent:
if frameName:messageName exists
then frameName:messageName()
and,
frameName:?messageName()
The second is preferable, however, since the first message will be looked up
twice; once to evaluate the exists expression, and once for the
message-send.
You can also use the built-in function Perform() to send a message with
a run-time argument list. There is also a function, PerformIfDefined,
which mimics the conditional message send operator (:?). Two functions
also exist which will send a message, but only search the prototype
(and not the parent) inheritance chains; these are ProtoPerform and
ProtoPerformIfDefined. All these functions are described in Chapter 6,
“Built-In Functions.”
Call With 4
call function with (paramList)
The call with expression executes the specified function object and its
parameters, using the value of the environment that was captured when the
function object was created. Thus, the function object executes as a closure
would in a language like Lisp. See the section “Function Objects” beginning
on page 4-9 for more information.
call function with ( paramList )
C H A P T E R 4
Functions and Methods
Function Invocations 4-7
You can call a function with a run-time argument list by using the built-in
function Apply. For more information on this function see Chapter 6,
“Built-in Functions.”
function Consists of any valid NewtonScript expression that
evaluates to a function.
paramList Consists of a list of zero or more parameters, separated
by commas and enclosed by parentheses. The number
of parameters must match the number of parameters
expected by the function.
Acall with expression returns the result of the function it executes.
Global Function Declaration 4
{ global|func } functionName (paramList) expression
You can use the global function definition syntax to define global functions
in some NewtonScript implementations. Note that except for the keyword
global, this syntax is the same as the regular function definition syntax
discussed in the section “Function Constructor” beginning on page 4-2.
Global functions can only be defined at the top level, not inside another
function. The scope of a global function definition includes every
NewtonScript function.
Note
When programming in the NTK environment, this use of the
keyword global creates a function that is global within the
NewtonScript environment in NTK. If you then attempt to
call this function inside another function executing in the
NewtonScript environment on a Newton device, an
“unknown global function” error is generated. ◆
paramList expression
func
(
global
functionName )
C H A P T E R 4
Functions and Methods
4-8 Passing Parameters
Global Function Invocation 4
functionName (paramList)
The global function call syntax has the same effect as a call with
expression: it executes the specified function object functionName and its
parameters using the message environment that was captured when the
function object was created. However, the function is determined by name
rather than by evaluating an expression.
A global function call expression returns the result of the function object
it executes.
functionName A symbol naming a global function.
paramList A list of zero or more parameters, separated by commas
and enclosed by parentheses. The number of parameters
must match the number of parameters expected by
the function.
Many global function definitions are built into NewtonScript (see Chapter 6,
“Built-In Functions,” for a list of them).
Passing Parameters 4
Parameters are passed by value in NewtonScript. In other languages this
sometimes means that these parameters are unchangeable by the function.
However, you should note that some NewtonScript values are references,
and when a reference is the value of a parameter the function can modify
that object.
For more information about NewtonScript immediates and references, see
the section “Immediate and Reference Values” beginning on page 2-5.
functionName ( paraList )
C H A P T E R 4
Functions and Methods
Function Objects 4-9
Function Objects 4
A function object is constructed when code of the following form executes:
func(paramList) expression;
Functions are first-class objects in NewtonScript. They can be assigned to
local variables, array elements, or frame slots. They can also be stored in
soups, or passed as arguments to a function. For information on soups, see
The Newton Programmer's Guide.
The term “function object,” rather than just “function,” is used to emphasize
the fact that one func statement can give rise to many different function
objects. When a function object is created it saves the environment that exists
at that time. Therefore, multiple function objects that are created by one
function constructor differ if the environments that existed when the func
statement was executed differ.
A function object consists of two main parts: its code, and the function
context, which is where the environment that existed at the time of its
creation is saved. The function context itself consists of two parts: the lexical
environment, and the message environment.
■ The lexical environment is a list of locals and parameters in the function
and in any enclosing functions.
■ The message environment consists of references to the frame in which the
function is defined (the implementor) and to the frame to which it is sent
(the receiver).
By saving the environment in which it was created, the function object has
access to local variables and to parameters that existed when it was
constructed. In addition, the function object has access to variables in the
inheritance chain of the frame that was the value of self when the function
object was created. The NewtonScript inheritance mechanism is described in
Chapter 5, “Inheritance and Lookup.”
The parts of a function object are shown in Figure 4-1.
C H A P T E R 4
Functions and Methods
4-10 Function Objects
Figure 4-1 The parts of a function object
Function Context 4
NewtonScript uses the context of a function--the lexical and message
environments--to establish values for any variables used in a function
without being defined there.
The Lexical Environment 4
The lexical environment consists of a list of locals and parameters in the
function, and any enclosing functions. For instance, the lexical environment
of the function shown in the following example is the value of the parameter
e when the function was called:
frame1:={task1: func(e)
begin
//do something
end }
Code
Function object
Function context
Parameters Locals
Lexical environment
Receiver (self) Implementor
Message environment
C H A P T E R 4
Functions and Methods
Function Objects 4-11
The lexical environment of the function, task2, shown below in boldface
type, consists of the values of the local variable total, and the parameters e,
and a when the function was called.
frame2:={task1: func(e)
begin
local total:= e;
e := 20;
task2:= func(a) … ;
total
end }
Note
Some implementations of NewtonScript optimize
the memory allocated to the lexical environment
by saving only those variables that are actually
used within the function body. ◆
The Message Environment 4
The message environment of a function consists of the implementor of the
message and the receiver of a message.
The frame in which a method is defined is called its implementor. Note that a
method could be defined in a number of places within a frame’s inheritance
chain. The implementor is the frame in the inheritance chain where the
method is found using the inheritance rules described in Chapter 5,
“Inheritance and Lookup.”
When a message is sent, the frame to which it is sent is the receiver. The
implementor and the receiver will differ when the method is found in a
frame that is in the inheritance chain of the receiver.
C H A P T E R 4
Functions and Methods
4-12 Function Objects
To illustrate this last point consider the following two frames, frame1
and frame2:
frame1 := { greeting : "HI!",
sayHi : func() print(greeting) };
frame2 := { greeting: "Hello!",
_proto : frame1 };
In the following expression frame1 is both the receiver and the implementor:
frame1:sayHi();
"HI"
In this next expression, however, frame2 is the receiver and frame1 is the
implementor:
frame2:sayHi();
"Hello!"
Note that the value of the variable, greeting, is based on the receiver, not
the implementor. See the section “Inheritance Rules for Slot and Message
Lookup” on page 5-7 for a discussion of this issue.
Invoking a function by using the call with syntax sets the value of self
(the receiver) to the value saved in the function’s message environment. This
is in contrast to sending a message, where the receiver is changed to the
frame specified in the message-send expression.
Self 4
The value of the pseudo-variable self is always set to the value of the
receiver. Therefore, you can use self to reference the receiver in your code.
Note that you cannot set self as you could a real variable (in an assignment
for instance), hence its designation as a pseudo-variable.
For example, when sayHi executes in the following assignment, the value of
self will be frame1:
x := frame1:sayHi();
C H A P T E R 4
Functions and Methods
Function Objects 4-13
An Example Function Object 4
The following example illustrates how the context of a function object is used
to find values for the variables in the function. This example is complicated
in that functions are nested, and the inheritance mechanism is utilized; this is
to demonstrate how every part of a function object is used. You may want to
skip this section, and come back to it after having read Chapter 5,
“Inheritance and Lookup.”
frame1 := {slot1 : 5};
frame2 := {
_parent : frame1,
slot2 : 40,
outerMethod : func (arg1)
begin
local var1 := 2000;
local nestedMethod := func (arg2)
slot1 + slot2 + arg1 + var1 + arg2;
nestedMethod;
end;
}
When outerMethod executes through the following message-send
functionObject1 := frame2:outerMethod(300);
it returns the function object nestedMethod. This function object is stored
in the variable functionObject1, shown in Figure 4-2.
C H A P T E R 4
Functions and Methods
4-14 Function Objects
Figure 4-2 functionObject1 dissected
This message-send saves the environment in which it was created. This
contextual information provides values for the parameters arg1 (300) and
the local variable var1 (2000). It also provides a value for self, the receiver
of the message-send. This allows NewtonScript to provide values for slot2
(40) and the inherited slot1 (5).
When functionObject1 is executed, as in the following function call,
NewtonScript can properly lookup the value of all the addends:
call functionObject1 with (10000);
This returns 12345.
Code
functionObject1
Function context
Parameters Locals
Lexical environment
Receiver (self) Implementor
Message environment
slot1 + slot2 + arg1 + var1 + arg2
arg1, arg2
frame2 frame2
var1
C H A P T E R 4
Functions and Methods
Function Objects 4-15
Note
The following message-send does not work:
aFrame := {aSlot : functionObject1}
aFrame:aSlot(10000);
This is because the message-send changes the receiver to
aFrame, and NewtonScript is unable to produce values for
slot1 and slot2.
call aFrame.aSlot with (10000) still functions
properly, however. ◆
Using Function Objects to Implement Abstract Data Types 4
One use of function objects is to implement abstract data types. These are
types that can only be modified procedurally; their actual data is hidden.
Though it might appear so, frames with methods don’t provide the same
functionality. In a frame, the data values in the slots are visible and can be
modified even when not using the appropriate methods. Consider the
following account generator:
MakeAccount := func()begin
local balance := 0;
local d := func(amount) begin
balance := balance + amount;
end;
local c := func() begin
balance := 0;
end;
{Deposit: d, Clear: c};
end;
myAccount := call MakeAccount with ();
C H A P T E R 4
Functions and Methods
4-16 Native Functions
Calling MakeAccount returns a frame containing two function objects, d
and c. The function objects in this frame reference the local variable
balance from MakeAccount. Even though MakeAccount is no longer
executing, the balance variable continues to exist, because the nested
functions Deposit and Clear reference it. Thus, calling myAccount
modifies the hidden variable balance, as you can see in the following
Inspector output:
call myAccount.Deposit with (50);
#C8 50
call myAccount.Deposit with (75)
#1F4 125
call myAccount.Clear with ();
#0 0
Also since neither Deposit nor Clear utilizes the value of self,
message-sends can be used as well as the call/with syntax:
myAccount:Deposit (20);
#50 20
Native Functions 4
When the keyword native appears in a function constructor, some
compilers generate native code for that function. Native code is machine
language code executed directly by the Newton processor.
There are a number of considerations involved in deciding whether to
declare a function native. For a detailed discussion of these issues, see the
chapter “Tuning Performance,” in the Newton Toolkit User’s Guide.
5-1
C H A P T E R 5
Inheritance and Lookup 5
NewtonScript supports several object-oriented features and concepts through
its double inheritance scheme. Frames are the basic data structure in
NewtonScript. Inheritance between frames is set up through slots named
_parent and _proto. This chapter describes parent and prototype (proto)
inheritance. It also tells you
■ how to set up frames with these relationships
■ the rules associated with parent and prototype inheritance
■ how inheritance affects slot and method lookup
■ how inheritance affects setting slot values
■ the uses of parent and prototype inheritance
Figure 5-0
Listing 5-0
Table 5-0
C H A P T E R 5
Inheritance and Lookup
5-2 Inheritance
Inheritance 5
There are two kinds of inheritance in NewtonScript: prototype inheritance
and parent inheritance.
Prototype Inheritance 5
A frame can have a prototype, which is simply another frame it names as the
value of a _proto slot. A frame inherits slots from its prototype if it does not
contain them in itself. If a frame contains a slot with the same name as a slot
in the prototype, it overrides the value of the prototype slot.
You use inheritance from prototype frames (abbreviated as protos) for
■ object refinement—the Newton system has many user interface elements
that are system protos you can use or modify in your own interface
■ persistent storage of data—these values are commonly stored in ROM or
on a PCMCIA card
Creating Prototype Frames 5
You create a prototype relationship between frames by using a special slot
named _proto. The value of this slot must be a reference to the frame you
intend to use as your prototype frame. For example, to use a frame called
pageTemplate as a prototype for a frame called myPage, you include a
_proto slot that evaluates to a reference to the pageTemplate frame. This
is illustrated in Figure 5-1.
C H A P T E R 5
Inheritance and Lookup
Inheritance 5-3
Figure 5-1 A prototype frame
Prototype Inheritance Rules 5
If a function in the frame myPage references the slot named topMargin
during run time, as shown in Figure 5-1, the interpreter looks for the value
of topMargin in the frame myPage first. It doesn’t find the slot there it
follows the _proto reference to the frame, pageTemplate. There it finds
a topMargin slot and its value, 1. In this case, the frame myPage inherits
that slot.
If a function in myPage references the slot named leftMargin, that slot is
found in the current frame and evaluates to the value 0.75. In this case, the
value in the current frame overrides the value found in the prototype.
Note that methods in frames can also be inherited and overridden.
The system obtains values during run time by following the prototype
inheritance rules for looking up slot references. NewtonScript looks first in
the current frame for a slot name. If the slot is not found, it looks at the
prototype frame, and if the slot is still not found, it looks at the prototype
frame of that frame, and so on, through all the prototypes in the chain.
pageTemplate
{topMargin:1
bottomMargin:2
leftMargin: 1.5
rightMargin:1.5
}
myPage
{_Proto: pageTemplate
leftMargin: 0.75
}
Prototype Frame
C H A P T E R 5
Inheritance and Lookup
5-4 Inheritance
An example of a prototype chain is shown in Figure 5-2. In this figure, the
inheritance chain starts with the current frame, myPage, and follows the
arrows to its prototype frames on the right.
Figure 5-2 A prototype chain
Parent Inheritance 5
Besides prototypical relationships between frames, you can set up hierarchical
parent-child relationships.
Inheritance from parent frames is used for
■ sharing information between objects, both behavior and data objects
■ creating hierarchies, like the view hierarchy of Newton applications
Creating Parent Frames 5
The parent-child link between frames exists by way of a special slot named
_parent, which resides in the child frame. You can set this slot directly in
your code or you can use the drawing tools in the Newton Toolkit to create
view hierarchies automatically. See the Newton Toolkit User’s Guide for more
information about how to do this. Figure 5-3 shows an example of a parentchild
relationship between two frames.
Frames that serve as parents can themselves be children of other frames,
thereby forming an inheritance chain extending upwards.
myPage
{_Proto:
pageTemplate,
..}
pageTemplate
{_Proto:
someFrame,
..}
someOtherFrame
{..}
someFrame
{_Proto:
SomeOtherFrame,
..}
C H A P T E R 5
Inheritance and Lookup
Inheritance 5-5
Figure 5-3 Parent-child relationship
Parent Inheritance Rules 5
When you create parent-child hierarchies between frames, NewtonScript
uses an inheritance mechanism that works similarly to prototype inheritance.
As in prototype inheritance, a child frame inherits slots from its parent that it
does not itself contain. However, if a child frame contains a slot name that is
the same as one in a parent frame, the child slot overrides the parent.
In this sense parent inheritance rules are like prototype inheritance rules; the
same mechanism is involved. They differ, however, in that the prototype
inheritance chain is searched in some instances where the parent inheritance
chain is not, and assignment of inherited slots is handled differently in the
two types of inheritance.
myDoc
{_Proto:
..}
myPage
{_parent:myDoc
..}
Parent
Child
C H A P T E R 5
Inheritance and Lookup
5-6 Inheritance
Combining Prototype and Parent Inheritance 5
In practice, most frames have prototypes and parents. When a slot is
referenced during run time, the parent inheritance mechanism interacts
with the prototype inheritance mechanism.
The basic rules for inheritance order are
1. NewtonScript looks first in the initial frame for a referenced slot. In
variable lookup the initial frame is the current receiver; in message lookup
it is the given receiver.
2. If the slot is not found, the prototype chain of the initial frame is searched.
3. If the slot is still not found, the search moves up one level to the parent
frame. The parent and its prototype chain are searched in order. The
search then moves up another level (to the parent’s parent) and continues
in the same way until the slot is found.
The numbered arrows in Figure 5-4 indicate the order in which frames are
searched for a slot reference that is made from a function in the current
frame, when that frame has both parent and proto frames.
Basically, prototype inheritance takes precedence over parent inheritance; all
prototype frames on one level are searched before moving up to search a
parent frame and its prototypes on another level.
Remember that these rule take effect within the context of the rules for
variable lookup. When looking up the value of a variable, NewtonScript
searches for the variable first as a local, then as a global, and finally through
the inheritance structure.
C H A P T E R 5
Inheritance and Lookup
Inheritance 5-7
Figure 5-4 Prototype and parent inheritance interaction order
Inheritance Rules for Slot and Message Lookup 5
There are a number of ways in which a slot can be accessed in NewtonScript.
Some of these ways search both inheritance chains, some search only the
prototype chain, and some search neither.
If the slot name appears by itself, then both inheritance chains are searched.
In the following expressions, for example, the values of chapterNum, and
1
4
6 7
2
myDoc
chapTemplate
{chapterNum: nil,
header:true
}
sectionTemp
{sides: nil,
..}
pageTemplate
{_proto: sectionTemp,
topMargin: 1,
bottomMargin: 2,
leftMargin: 1.5,
rightMargin: 1.5,
sides: single
}
docTemplate
{paperSize: standard
..}
baseDoc
{_proto: docTemplate,
footer: 1
}
{_proto: baseDoc,
header: nil,
footer: 2
}
5
myChap
{_parent: myDoc,
_Proto: ChapTemplate,
sides: double,
chapNum: 2
}
3
myPage
{_parent: myChap,
_Proto: pageTemplate,
leftMargin: 0.75
}
C H A P T E R 5
Inheritance and Lookup
5-8 Inheritance
rightMargin are searched in the order shown by the arrows in Figure 5-4
(after being searched for as locals and globals, of course).
presentChapter := chapterNum;
if rightMargin > 1.0 then ...
However, if the frame.slot or frame.(pathExpression) syntax is
used, as in the following examples, then only the prototype chain will
be searched.
if myChap.header then ...
x:= self.topMargin;
A message-send searches both inheritance chains, whether the receiver
is explicitly mentioned, as in frame:Message(), or is omitted, as in
:Message(). An exception to this rule is that if the keyword inherited
is used, as in inherited:Message(), the search will begins with the
current frame’s prototype frame, and only follows the prototype chain.
Note
Arguments can be made both for and against using
self:Message() as opposed to :Message(). On the one
hand, self:Message() looks like self.slot, which does
not follow the parent inheritance chain and thus might
cause confusion. On the other hand, self:Message() is
arguably more readable, and a common bug can be avoided
by always using this format. Consider these two seemingly
correct lines of code:
:Message1()
:Message2()
This sends Message2 to whatever :Message1() evaluates
to, which is not what was intended. Including self
would have prevented this bug. Another way to avoid this
type of bug is to always include a semicolon (;) after an
expression. ◆
C H A P T E R 5
Inheritance and Lookup
Inheritance 5-9
NewtonScript also has two built-in functions that can be used for accessing
frame slots: GetVariable and GetSlot. GetVariable searches both
inheritance chains, and GetSlot searches neither. See Chapter 6, “Built-In
Functions,” for a description of these functions.
Appendix E, “Quick Reference Card,” summarizes the information in
this section.
Inheritance Rules for Testing for the Existence of a Slot 5
Inheritance rules for testing for the existence of a slot are basically the same
as those for slot lookup. When the slot name appears by itself, as in slot
exists, the full inheritance chain is searched. If a frame is explicitly
mentioned however, as in frame.slot exists or self.slot exists,
only the prototype chain is searched.
A method is searched in both inheritance chains, whether a frame appears
before the colon, as in frame:Message exists, or not, as in :Message
exists.
NewtonScript also provides two built-in functions for testing whether a slot
exists: HasVariable, and HasSlot. HasVariable searches both parent
and prototype chains, and HasSlot searches neither. See Chapter 6,
“Built-In Functions,” for a description of these functions
Appendix E, “Quick Reference Card,” summarizes the information in
this section.
Inheritance Rules for Setting Slot Values 5
Inheritance rules apply not only when a slot is referenced, but also when
its value is set. However, the rules are slightly different for setting the value
of a slot.
The basic difference is that slot values are changed in parent frames only
during run time. One reason for this is that prototype frames often exist in
ROM and, therefore, cannot be changed. (Of course, when you first create
the prototype frames their slots can be set, but not when the application
is running.)
C H A P T E R 5
Inheritance and Lookup
5-10 Inheritance
When setting a slot, the inheritance search is the same as for slot lookup,
except that the slot is not always set where it is found.
These are the rules for where a slot is set:
1. If a slot exists in the currently executing frame, its value is set there.
2. If the slot exists in the prototype chain of the current frame, a new slot is
made in the currently executing frame and its value is set there.
3. If the slot exists in the parent of the currently executing frame, its value is
set in that parent frame.
4. If the slot exists in the prototype chain of the parent, a new slot is made in
the parent frame at the same level at which it was found, and its value is
set in that parent frame.
Note that if you create a variable from within a function, it is created as a
local variable that is restricted to the scope of the function. If you want to
make sure the slot is made in the receiver, you must specify that by using
self, in an expression like self.slotName := aValue;
If you want to set the value of a slot explicitly in the parent of the current
frame, you can use the expression self._parent.theSlot to force the
slot to be created there.
Note
It is unsafe to reference the _parent slot directly as a
simple expression. A few work arounds are available,
however. You can use the view system message :Parent(),
which returns the current receiver’s parent frame. Also,
using frame._parent or self._parent avoids this
problem. In summary:
_parent is risky
frame:Parent() is OK
self._parent is OK (and should be the same as :Parent())
frame._parent is OK (and should be the same as frame:Parent())
See the Newton Programmer’s Guide for more information on
:Parent() method. ◆
C H A P T E R 5
Inheritance and Lookup
Inheritance 5-11
An Object-Oriented Example 5
You may understand inheritance better if you construct an inheritance
structure on which to experiment. You can use the following code:
frame1 := {
slot1: "slot1 from frame1",
slot6: 99};
frame2 := {
_parent: frame1,
slot1: "slot1 from frame2",
slot2: "slot2 from frame2"};
frame3 := {
slot3: "slot3 from frame3",
slot5: 42};
frame4 := {
_parent: frame2,
_proto: frame3,
msg1: func()
begin
//show slot from parent inheritance
Print(slot1);
//show slot from proto inheritance
Print(slot3);
//show slot from parent inheritance - again -
//but doesn't work because
// self.slot1 only searches proto chain
Print(self.slot1);
//show slot from proto inheritance - again
Print(self.slot3);
end }
C H A P T E R 5
Inheritance and Lookup
5-12 Inheritance
This produces the inheritance structure shown in Figure 5-5. When the
message frame4:msg1() is sent, the following output is produced:
"slot1 from frame2"
"slot3 from frame3"
NIL
"slot3 from frame3"
Figure 5-5 An inheritance structure
frame1
{
slot1:"slot1 from frame1"
slot6:99
}
frame3
{
slot3."slot3 from frame3"
slot5:42
}
frame2
{
_parent:frame1
slot1:"slot1 from frame2"
slot2:"slot2 from frame2"
}
frame4
{
_parent:frame2
_proto:frame3
msg1:func()...
}
Prototype frame
Parent frame
Parent frame
6-1
C H A P T E R 6
Built-In Functions 6
NewtonScript supports a number of built-in functions. The following
groups of functions are included here:
■ Object system
■ String
■ Bitwise
■ Array and sorted array
■ Math
■ Floating point math
■ Control of floating point math
■ Financial
■ Exception Handling
■ Message sending
■ Data extraction
■ Data stuffing
■ Getting and Setting Global Variables and Functions
■ Miscellaneous
Figure 6-0
Listing 6-0
Table 6-0
C H A P T E R 6
Built-In Functions
6-2 Compatibility
Note
The inspector examples used throughout this document
often include a number after a pound sign; for example,
#4945. This information can be ignored as it is an internal
pointer to data in the system. ◆
Compatibility 6
This section describes the changes made to the built-in functions for Newton
System Software 2.0.
New Functions 6
The following new functions have been added for this release.
New Object System Functions 6
The following new object system functions have been added.
GetFunctionArgCount
IsCharacter
IsFunction
IsInteger
IsNumber
IsReadOnly (existed in 1.0 but now documented)
IsReal
IsString
IsSubclass (existed in 1.0 but now documented)
IsSymbol
MakeBinary
SetVariable
SymbolCompareLex
C H A P T E R 6
Built-In Functions
Compatibility 6-3
New String Functions 6
The following new string functions have been added.
CharPos
StrExactCompare
StrTokenize
StyledStrTruncate
New Array Functions 6
The following new array functions have been added.
ArrayInsert
InsertionSort
LFetch
LSearch
NewWeakArray
StableSort
New Sorted Array Functions 6
The following new functions have been added that operate on sorted arrays.
These functions are based on binary search algorithms, hence the “B” prefix
to the function names.
BDelete
BDifference
BFetch
BFetchRight
BFind
BFindRight
BInsert
BInsertRight
BIntersect
BMerge
BSearchLeft
BSearchRight
C H A P T E R 6
Built-In Functions
6-4 Compatibility
New Message Sending Functions 6
The following new utility functions for sending immediate messages have
been added.
PerformIfDefined
ProtoPerform
ProtoPerformIfDefined
New Data Stuffing Functions 6
The following functions have been added to stuff data.
StuffCString
StuffPString
New Functions to Get and Set Globals 6
The following new functions that get, set, and check for the existence of
global variables and functions have been added.
GetGlobalFn
GetGlobalVar
GlobalFnExists
GlobalVarExists
DefGlobalFn
DefGlobalVar
UnDefGlobalFn
UnDefGlobalVar
New Miscellaneous Functions 6
The following function has been added.
BinEqual
C H A P T E R 6
Built-In Functions
Object System Functions 6-5
Obsolete Functions 6
Some built-in functions previously documented in the NewtonScript
Programming Language are obsolete, but are still supported for compatibility
with older applications. Do not use the following utility functions, as they
may not be supported in future system software versions:
ArrayPos (use LSearch instead)
StrTruncate (use StyledStrTruncate instead)
Object System Functions 6
The functions described in this section operate on NewtonScript objects. They
perform operations such as removing slots, cloning frames, and so forth.
ClassOf 6
ClassOf(object)
Returns the class of an object.
object The object whose class to return.
The return value is a symbol. Some of the common object classes are: 'int,
'char, 'boolean, 'string, 'array, 'frame, 'function, and 'symbol.
Note that this is not necessarily the same as the primitive class of an object.
For binary, array, and frame objects, the class can be set differently from the
primitive class.
Frames or arrays without an explicitly assigned class are of the primitive
class 'frame or 'array, respectively. If a frame has a class slot, the value
of the class slot will be returned. Here are some examples:
f:={multiply:func(x,y) x*y};
classof(f);
#1294 Frame
C H A P T E R 6
Built-In Functions
6-6 Object System Functions
f:={multiply:func(x,y) x*y, class:'Arithmetic};
classof(f);
#1294 Arithmetic
s:="India Joze";
classof(s);
#1237 String
See also “PrimClassOf” on page 6-13.
Clone 6
Clone(object)
Makes and returns a “shallow” copy of an object; that is, references within
the object are copied, but the data pointed to by the references is not.
object The object to copy.
Here is an example:
SeaFrame := {Ocean: "Pacific", Size: "large" , Color: "blue"};
seaFrameCopy := clone(seaFrame);
seaFrameCopy.Deep := true;
seaFrame
#441896D {Ocean: "Pacific", size: "large", Color: "blue"}
seaFrameCopy
#4418B0D {Ocean: "Pacific", size: "large", Color: "blue",
Deep: TRUE}
DeepClone 6
DeepClone(object)
Makes and returns a “deep” copy of an object; that is, all of the data
referenced within the object is copied, including that referenced by magic
pointers (pointers to ROM objects).
object The object to copy.
C H A P T E R 6
Built-In Functions
Object System Functions 6-7
It is not guaranteed that every part of the data structure is in RAM. (Certain
information, such as the symbols naming frame slots, may be shared with
the original object.)
Contrast this function with Clone that only makes a “shallow” copy, and the
EnsureInternal function that ensures that the object exists entirely in
internal RAM.
GetFunctionArgCount 6
GetFunctionArgCount(function)
Returns the number of arguments expected by a function.
function The function whose number of arguments you want
to get.
GetSlot 6
GetSlot(frame, slotSymbol)
Returns the value of a slot in a frame. Only the frame specified is searched.
frame A reference to the frame in which to look for the slot.
slotSymbol A symbol naming the slot whose value you want to get.
If the slot doesn’t exist, this function returns nil.
Unlike GetVariable, GetSlot searches for a slot only in the indicated
frame. Inheritance is not used to find the slot.
The use of the NewtonScript dot operator is similar to the GetSlot function
in that it also returns the value of a frame slot. For example, the expression
frame.slot returns the value of the specified slot. However, when using
the dot operator, if the slot is not found in the specified frame, proto frames
are also searched for the slot (but not parent frames).
C H A P T E R 6
Built-In Functions
6-8 Object System Functions
GetVariable 6
GetVariable(frame, slotSymbol)
Returns the value of a slot in a frame. If the slot is not found, nil is returned.
frame A reference to the frame in which to begin the search for
the slot.
slotSymbol A symbol naming the slot whose value you want to get.
This function begins its search for the slot in the specified frame and makes
use of the full proto and parent inheritance.
HasSlot 6
HasSlot(frame, slotSymbol)
Returns non-nil if the slot exists in the frame, otherwise, returns nil.
Inheritance is not used to find the slot.
frame The name of the frame in which to look for the slot.
slotSymbol A symbol naming the slot whose value you want to get.
This function begins its search for the slot in the specified frame and makes
use of the full proto and parent inheritance.
HasVariable 6
HasVariable(frame, slotSymbol)
Returns non-nil if the slot exists in the frame, otherwise, returns nil. This
function searches proto and parent frames of the specified frame if the slot is
not found there.
frame The name of the frame in which to begin the search for
the slot.
slotSymbol A symbol naming the slot whose existence you want to
check. You must use a single quote before the slot name
because it is a symbol.
C H A P T E R 6
Built-In Functions
Object System Functions 6-9
Intern 6
Intern( string )
Creates and returns a symbol whose name is given as the string parameter
string. If a symbol with that name already exists, the preexisting symbol
is returned.
string The name of the symbol.
IsArray 6
IsArray(obj)
Returns non-nil if obj is an array.
obj The object to test.
IsBinary 6
IsBinary(obj)
Returns non-nil if obj is a binary object.
obj The object to test.
IsCharacter 6
IsCharacter(obj)
Returns non-nil if obj is a character, and returns nil otherwise.
obj The object to test.
IsFrame 6
IsFrame(obj)
Returns non-nil if obj is a frame.
obj The object to test.
C H A P T E R 6
Built-In Functions
6-10 Object System Functions
IsFunction 6
IsFunction(obj)
Returns non-nil if obj is a function, and returns nil otherwise.
obj The object to test.
IsImmediate 6
IsImmediate(obj)
Returns non-nil if obj is an immediate.
obj The object to test.
IsInstance 6
IsInstance(obj, class)
Returns non-nil if obj’s class symbol the same as class or a subclass of class.
obj The object to test.
class A class symbol.
Note that this is equivalent to:
IsSubclass(ClassOf(obj), class)
IsInteger 6
IsInteger(obj)
Returns non-nil if obj is an integer, and returns nil otherwise.
obj The object to test.
IsNumber 6
IsNumber(obj)
Returns non-nil if obj is a number (integer or real), and returns nil
otherwise.
obj The object to test.
C H A P T E R 6
Built-In Functions
Object System Functions 6-11
IsReadOnly 6
IsReadOnly(obj)
Returns non-nil if obj is read-only, and returns nil otherwise. You can use
IsReadOnly to determine if an array, frame, or binary object is writable.
obj An array, frame, or binary object to test. (Immediate
objects such as integers are never read-only.)
Here is an example:
if IsReadOnly(viewBounds) then
viewBounds := Clone(viewBounds);
This function should not be used to determine the location of an object, that
is, whether it is in the heap, in ROM, or in protected memory. The
NewtonScript language could permit read-only objects in the NS heap, or
writable objects that exist in other locations.
IsReal 6
IsReal(obj)
Returns non-nil if obj is a real number, and returns nil otherwise.
obj The object to test.
IsString 6
IsString(obj)
Returns non-nil if obj is a string, and returns nil otherwise.
obj The object to test.
IsSubclass 6
IsSubclass(sub, super)
Checks if a class is a subclass of another class.
sub A class symbol you want to test.
super A class symbol.
C H A P T E R 6
Built-In Functions
6-12 Object System Functions
This function returns non-nil if sub is a subclass of super, or is the same as
super. Returns nil if sub is not a subclass of super. See also the related
function IsInstance on page 6-10.
IsSymbol 6
IsSymbol(obj)
Returns non-nil if obj is a symbol, and returns nil otherwise.
obj The object to test.
MakeBinary 6
MakeBinary(length, class)
Allocates a new binary object of the specified length and class.
length The size of the binary object in bytes.
class A symbol specifying the class
Map 6
Map(obj, function)
Applies a function to the slot name and value of each element of an array
or frame.
obj An array or frame.
function Returns nil. A function to apply to the elements or
slots in obj. The function is passed two parameters: slot
and value. The slot parameter contains an integer array
index if obj is an array, or it contains a symbol naming a
slot, if obj is a frame. The value parameter contains the
value of the array or frame slot referenced by the slot
parameter.
This is equivalent to:
foreach slot,value in obj do call function with (slot,value)
C H A P T E R 6
Built-In Functions
Object System Functions 6-13
PrimClassOf 6
PrimClassOf(obj)
Returns the primitive class of an object.
obj The object whose primitive class to return.
Returns a symbol identifying the primitive data structure type of the object,
one of: 'immediate, 'binary, 'array, or 'frame.
See also “ClassOf” on page 6-5.
RemoveSlot 6
RemoveSlot(obj, slot)
Removes a slot from a frame or array.
obj The name of the frame or array from which to remove
the slot.
slot A symbol naming the frame slot you want to remove, or
the index of the array slot to remove. Note that no
inheritance look-up is used to find this slot in obj.
This function returns the modified frame or array. If slot is not found, nothing
is done and the unmodified frame or array is returned. Note that the system
throws an exception if obj is read-only.
ReplaceObject 6
ReplaceObject(originalObject, targetObject)
Causes all references to an object to be redirected to another object.
originalObject The original object.
targetObject The object to which you want to redirect references
to originalObject.
This function always returns nil.
Note that you cannot specify immediate objects as parameters to
this function.
C H A P T E R 6
Built-In Functions
6-14 Object System Functions
Here is an example:
x:={name:"Star"};
y:={name:"Moon"};
replaceobject(x,y);
x;
#469E69 {name: "Moon"}
y;
#46A1E9 {name: "Moon"}
SetClass 6
SetClass(obj, classSymbol)
Sets the class of an object.
obj The object whose class to set.
classSymbol A symbol naming the class to give to the object.
This function returns the object whose class was set.
You can set the class of the following kinds of objects: frames, arrays, and
binary objects. Note that you cannot set the class of an immediate object.
When setting the class of a frame, if a class slot doesn't exist, one is created
in the frame. For example:
x:={name: "Star"};
setclass(x, 'someClass);
#46ACC9 {name: "Star",
class: someClass}
C H A P T E R 6
Built-In Functions
Object System Functions 6-15
SetVariable 6
SetVariable(frame, slotSymbol, value)
Sets the value of a slot in a frame. The value is returned.
frame A reference to the frame in which to begin the search for
the slot.
slotSymbol A symbol naming the slot whose value you want to set.
If the slot is not found, it is created in frame.
value The new value of the slot.
This function begins its search for the slot in the specified frame and makes
use of the full proto and parent inheritance.
Note that if the slot is found in the proto chain, it is not set there, but is
created and set in frame, or in its parent chain, following the usual inheritance
rules as they apply to setting a value.
SymbolCompareLex 6
SymbolCompareLex(symbol1, symbol2)
Compares symbols lexically. This function returns a negative number if
symbol symbol1 is less than symbol symbol2. Returns zero if the two symbols
are equal. Returns a positive number if symbol1 is greater than symbol2. Case
is not significant (that is, 'Hello and 'hello are equal).
symbol1 A symbol.
symbol2 A symbol.
TotalClone 6
TotalClone(obj)
Makes and returns a “deep” copy of an object; that is, all of the data
referenced within the object is copied.
obj The object to copy.
This function is similar to DeepClone, except that this function guarantees
that the object returned exists entirely in internal RAM. Also, unlike
C H A P T E R 6
Built-In Functions
6-16 String Functions
DeepClone, TotalClone does not follow magic pointers, so that objects
referenced through magic pointers are not copied.
String Functions 6
These functions operate on and manipulate strings.
BeginsWith 6
BeginsWith( string, substr )
Returns non-nil if string begins with substr, or returns nil otherwise. This
function is case and diacritical-mark insensitive. An empty substr matches
any string.
string The string to test.
substr A string.
Capitalize 6
Capitalize( string )
Capitalizes the first character in string and returns the result. string
is modified.
string The string to modify.
CapitalizeWords 6
CapitalizeWords( string )
Capitalizes the first character of each word in string and returns the result.
string is modified.
string The string to modify.
C H A P T E R 6
Built-In Functions
String Functions 6-17
CharPos 6
CharPos(str, char, startpos)
Returns the position of the next occurrence of character in the specified
string, starting from the startPos (or nil if it’s not found).
str The specified string.
char The specified character in the string.
startpos The starting position of the character to return.
Downcase 6
Downcase( string )
Changes each character in string to lowercase and returns the result. string
is modified.
string The string to modify.
EndsWith 6
EndsWith( string, substr )
Returns non-nil if string ends with substr, or returns nil otherwise. This
function is case and diacritical-mark insensitive. An empty substr matches
any string.
string The string to test.
substr A string.
IsAlphaNumeric 6
IsAlphaNumeric(char)
Returns non-nil if char is a number or a letter; otherwise, this function
returns nil.
char A character to test.
C H A P T E R 6
Built-In Functions
6-18 String Functions
IsWhiteSpace 6
IsWhiteSpace(char)
Returns non-nil if char is a space ($\20), tab ($\09), linefeed ($\0A), or
carriage return ($\0D) character; otherwise, this function returns nil.
char A character.
SPrintObject 6
SPrintObject( obj )
Returns a string of the object passed in. Numbers, strings, characters, and
symbols are converted to their natural string representation. For frames,
arrays, and Booleans, this function returns an empty string.
To convert a Boolean into a string, you must check for non-nil or nil and
return the appropriate string.
Note
This function changes the number format depending on the
current locale setting. Real numbers may be formatted
unexpectedly. ◆
StrCompare 6
StrCompare( a, b )
Returns a negative number if string a is less than string b. Returns zero if
string a and b are equal. Returns a positive number if string a is greater than
string b. Case is not significant (that is, “Hello” and “hello” are equal).
a A string.
b A string.
Note that this is a content comparison of the two strings, not a pointer
comparison.
Use StrExactCompare to do a case-sensitive comparison of strings.
C H A P T E R 6
Built-In Functions
String Functions 6-19
StrConcat 6
StrConcat( a, b )
Concatenates string b onto string a and returns the result as a new string.
a A string.
b A string.
StrEqual 6
StrEqual( a, b )
Returns non-nil if the two strings, a and b, are equal.
a A string.
b A string.
Case is not significant. Note that this is a content comparison of the two
strings, not a pointer comparison.
Use StrExactCompare to do a case-sensitive comparison of strings.
StrExactCompare 6
StrExactCompare( a, b )
Returns a negative number if string a is less than string b. Returns zero if
string a and b are equal. Returns a positive number if string a is greater than
string b. Case and diacritical marks are significant (that is, “Hello” and
“hello” are not equal).
a A string.
b A string.
Note that this is a content comparison of the two strings, not a pointer
comparison.
Use StrCompare or StrEqual to do a case-insensitive comparison
of strings.
C H A P T E R 6
Built-In Functions
6-20 String Functions
StrLen 6
StrLen( string )
Returns the number of characters in a string, excluding the null terminator (if
one exists).
string A string.
StrMunger 6
StrMunger( dstString, dstStart, dstCount, srcString, srcStart, srcCount )
Replaces characters in dstString using characters from srcString and returns
the destination string after munging is complete. This function is destructive
to dstString.
dstString The destination string. The string must be writable, you
can’t specify a string literal, or an exception will be
thrown. You’ll have to use Clone (page 6-6) or a similar
function to make a writable copy from a string literal.
dstStart The starting position within dstString.
dstCount The number of characters to be replaced in dstString.
You can specify nil for dstCount to go to the end of
the string.
srcString A string. This can be nil to simply delete the characters.
srcStart The starting position in srcString from which to begin
taking characters to place into dstString.
srcCount The number of characters to use from srcString. You can
specify nil to go to the end of srcString.
Here is an example:
StrMunger("abcdef", 2, 3, "ZYXWV", 0, nil)
"abZYXWVf"
StrMunger can also be used to concatenate large strings; for example:
StrMunger(str1, StrLen(str1)+1, nil, str2, 0, nil);
C H A P T E R 6
Built-In Functions
String Functions 6-21
StrPos 6
StrPos( string, substr, start )
Returns the position of substr in string, or nil if substr is not found. The
search begins at character position start. (The first character position in a
string is zero.) This function is not case sensitive.
string A string.
substr A string.
start An integer.
Here is an example:
StrPos("abcdef", "Bcd", 0)
1
StrTokenize 6
StrTokenize(str, delimiters)
Breaks up a string into chunks for you as defined by the delimiters argument.
Each time you call the closure (passing it no arguments) you will get back the
next token, until there are no more tokens and it returns nil.
str A string to be broken up into tokens
delimiters Either a character or string (list of characters) that are
the delimiters separating the pieces of the string.
For example, to break up a sentence into space separated words you do
something like the following:
fn := StrTokenize("the quick green fox", $ );
#441BE8D
while x := call fn with () do Print(x);
"the"
"quick"
"green"
"fox"
#2 NIL
C H A P T E R 6
Built-In Functions
6-22 String Functions
StyledStrTruncate 6
StyledStrTruncate(string, length, font)
Truncates a string to the indicated length, in pixels. (Of course, the length
does not include the null terminator.) Returns the truncated string.
string A string.
length An integer specifying the length, in pixels, at which to
truncate the string.
font A font specification, which is used to determine how
many characters of the string will fit in the specified
length. For details on specifying a font, refer to the
section “Specifying a Font” in the chapter “Text Input
and Display,”of the Newton Programmer’s Guide.
This function adds an ellipsis (...) to the end of the truncated string.
SubStr 6
SubStr( string, start, count )
Returns a new string containing count characters from string, starting at
position start. Character positions begin with zero for the first character.
string A string.
start An integer.
count An integer.
TrimString 6
TrimString( string )
Removes any white space (spaces, tabs, and new line characters) from the
beginning and end of string and returns the result. string is modified.
string A string.
C H A P T E R 6
Built-In Functions
Bitwise Functions 6-23
Upcase 6
Upcase( string )
Capitalizes each character in string and returns the result. string is modified.
string A string.
Bitwise Functions 6
These functions perform logical operations on bits.
Band, Bor, Bxor, and Bnot 6
Band(a, b)
Bor(a, b)
Bxor(a, b)
Bnot(a)
These bitwise functions each return an integer result of their operation on
one or two integer parameters. They perform bitwise AND, OR, XOR, and
NOT, respectively.
a An integer.
b An integer.
Array Functions 6
These functions operate on and manipulate arrays.
C H A P T E R 6
Built-In Functions
6-24 Array Functions
AddArraySlot 6
AddArraySlot (array, value)
Appends a new element onto an array.
array An array.
value A value to be added as new element in the array.
For example:
myArray := [123, 456]
#1634 myArray
addArraySlot (myArray, "I want chopstix")
#12 "I want chopstix"
myArray
#1634 [123, 456, "I want chopstix"]
Array 6
Array( size, initialValue )
Returns a new array with size number of elements that each contain
initialValue.
size An integer.
initialValue A value.
ArrayInsert 6
ArrayInsert(array, element, position)
Inserts an element into an array and returns the modified array.
array The array to be modified.
element The element to be inserted into the array.
position The index where the new element is to be inserted.
Specify zero to insert the element at the beginning of the
array. Specify the result of Length(array) to insert the
element at the end of the array.
C H A P T E R 6
Built-In Functions
Array Functions 6-25
The length of the array is increased by one.
ArrayMunger 6
ArrayMunger( dstArray, dstStart, dstCount, srcArray, srcStart,
srcCount )
Replaces elements in dstArray using elements from srcArray and returns the
destination array after munging is complete. This function is destructive
to dstArray.
dstArray The destination array.
dstStart The starting element in the destination array.
dstCount The number of elements to be replaced in dstArray. You
can specify nil for dstCount to go to the end of the array.
srcArray An array. You can specify nil for srcArray to delete the
elements.
srcStart The starting position in the source array from which to
begin taking elements to place into the destination array.
srcCount The number of elements to use from the source array.
You can specify nil to go to the end of the source array.
Here is an example:
ArrayMunger([10,20,30,40,50], 2, 3, [55,66,77,88,99], 0, nil)
[10, 20, 55, 66, 77, 88, 99]
Using ArrayMunger is the most efficient way to join two arrays.
To put B at the front of A:
ArrayMunger(A, 0, 0, B, 0, nil)
To put B at the end of A:
ArrayMunger(A, Length(A), 0, B, 0, nil)
C H A P T E R 6
Built-In Functions
6-26 Array Functions
You can also do this with SetUnion (page 6-34), which has the additional
property that it eliminates duplicates, but ArrayMunger is much faster if
you don’t need that property.
ArrayRemoveCount 6
ArrayRemoveCount( array, startIndex, count )
Removes one or more elements from an array.
array The array from which to remove elements.This
parameter is modified by this function.
startIndex An integer that is the index of the first element to
remove.
count An integer specifying the number of elements to remove.
Any elements following those removed are shifted left so that no empty
elements remain.
InsertionSort 6
InsertionSort(array, test, key)
Sorts an array, preserving the original relative ordering of equivalent
elements.
array The array to modify by sorting.
test Indicates how the array is to be sorted. See the
description of the test parameter on page 6-36.
key Defines the key within each array element. Specify
nil, a path expression, or a function that takes one
parameter. See the description of the key parameter
on page 6-37.
This sort performs very well on arrays that are nearly sorted already and on
very small arrays. This sort is an O(n2 ) sort. To sort larger arrays, use Sort
or StableSort.
C H A P T E R 6
Built-In Functions
Array Functions 6-27
Length 6
Length (array)
Returns the number of elements in an array, the number of slots in a frame,
or the size, in bytes, of a binary object.
array An array or frame or binary object.
For example:
myArray := [123, 456, "I want chopstix"]
length (myArray)
#12 3
Note that arrays are indexed from 0, but length returns a count of the
number of characters. Therefore, the last element of this example is element 2.
Note
If you pass a string to this function, you will get the number
of bytes that a string occupies. To get the length of strings,
use StrLen instead. ◆
LFetch 6
LFetch(array, item, start, test, key)
Linearly searches an array for the specified element and returns the element,
or nil if it is not found or if start is equal to or greater than the length of the
array.
array The array in which to search.
item The key value for which to search.
start The array index at which to begin searching.
C H A P T E R 6
Built-In Functions
6-28 Array Functions
test Indicates how to compare key values to test for a match.
Specify one of the following symbols for test:
'|=| If the objects being compared are
immediates and reals, their values are
compared for equivalency. For reference
objects, their identity is compared.
'|str=| For string objects, the contents of the
strings are compared for equivalency.
Alternatively, for nonstandard sorting situations, you
can specify a function object that compares two key
values and returns a Boolean or integer value indicating
whether or not they are equivalent. This function will be
called to test for matches. The function is passed two
parameters, A and B, where A is the item parameter
passed to LFetch and B is the array element being
tested.
The function must return a non-nil value (or zero) if
the items are equivalent, or nil (or a non-zero integer)
if the items are not equivalent.
Note that specifying a function object for test results
in much slower performance than using one of the
predefined symbols.
key Defines the key within each array element. Specify
nil, a path expression, or a function that takes one
parameter. See the description of the key parameter
on page 6-37.
This function works just like LSearch, except that LSearch returns the
index of the found item.
If you know that the array you are working with is sorted, you can use the
function BFetch to search for an element. This function, based on binary
search algorithms, is much faster on large arrays than LFetch or LSearch,
though it can be used only on sorted arrays.
C H A P T E R 6
Built-In Functions
Array Functions 6-29
LSearch 6
LSearch(array, item, start, test, key)
Linearly searches an array for the specified element and returns the index of
the element, or nil if it is not found or if start is equal to or greater than the
length of the array.
array The array in which to search.
item The key value for which to search.
start The array index at which to begin searching.
test Indicates how to compare key values to test for a match.
Specify one of the following symbols for test:
'|=| If the objects being compared are
immediates and reals, their values are
compared for equivalency. For reference
objects, their identity is compared.
'|str=| For string objects, the contents of the
strings are compared for equivalency.
Alternatively, for non-standard sorting situations, you
can specify a function object that compares two key
values and returns a Boolean or integer value indicating
whether or not they are equivalent. This function will be
called to test for matches. The function is passed two
parameters, A and B, where A is the item parameter
passed to LSearch and B is the array element being
tested. The function must return a non-nil value (or
zero) if the items are equivalent, or nil (or a non-zero
integer) if the items are not equivalent. Note that
specifying a function object for test results in much
slower performance than using one of the predefined
symbols.
key Defines the key within each array element. Specify
nil, a path expression, or a function that takes one
parameter. See the description of the key parameter
on page 6-37.
C H A P T E R 6
Built-In Functions
6-30 Array Functions
This function works just like LFetch, except that LFetch returns the found
item instead of its index.
If you know that the array you are working with is sorted, you can use the
function BFind to search for an element. This function, based on binary
search algorithms, is much faster than LSearch, though it can be used only
on sorted arrays.
NewWeakArray 6
NewWeakArray(length)
Returns a new weak array with length number of elements, which are
initialized to nil.
length An integer specifying the size of the array to create.
A weak array is an array that does not prevent the objects it refers to from
being garbage-collected. That is, if the only references to an object are from
weak arrays, the object is destroyed during the next garbage collection cycle.
When that happens, the references in the weak arrays are replaced with nil.
The purpose of weak arrays is to cache objects without preventing them from
being garbage collected. For example, if you wanted to keep an array of all
objects in existence of a certain type, you could add each object to an array as
it’s created. If you use a regular array, those objects will never be
garbage-collected, because there will always be references to them in your
array, and the system will eventually run out of memory. However, if you
use a weak array, its references don’t affect garbage collection, so the objects
will be garbage-collected normally, freeing memory when it is needed.
C H A P T E R 6
Built-In Functions
Array Functions 6-31
SetAdd 6
SetAdd (array,value,uniqueOnly)
Appends an element to the specified array and returns the modified array, or
nil if the element was not added.
array The array to which SetAdd appends the element
in value.
value The element to append to the array specified by array.
uniqueOnly Whether only unique elements are to be added to the
array; if the value of this parameter is non-nil, SetAdd
appends value to the array only if it is not already
present in the array. If the element specified by the value
parameter is already present in the array, SetAdd
returns nil and does not append the element. If
uniqueOnly is nil, the item is appended to the array
without checking whether it is unique.
Note
The type of comparison used in this function is
pointer comparison, not content comparison. ◆
SetContains 6
SetContains( array, item )
array An array.
item An item that may be in the array.
Searches each element of an array to determine if item is equal to one of the
array elements. If a match is found, this function returns the array index of
the matching array element. If item is not found in the array, nil is returned.
Note
The type of comparison used in this function is
pointer comparison, not content comparison. ◆
C H A P T E R 6
Built-In Functions
6-32 Array Functions
SetDifference 6
SetDifference( array1, array2 )
Returns an array that contains all of the elements in array1 that do not exist
in array2.
array1 An array.
array2 An array.
If array1 is nil, nil is returned.
Note
The type of comparison used in this function is
pointer comparison, not content comparison. ◆
SetLength 6
SetLength (array, length)
Sets the length of an array.
array An array.
length An integer.
This function is useful for increasing or decreasing the size of an array. If you
increase the size of the array, new elements are filled with a nil value.
For example:
myArray := [123, 456, "I want chopstix"]
#1634 myArray
setLength (myArray, 4)
#1634 [123, 456, "I want chopstix", NIL]
myArray [3] := 789
#3156 789
myArray
#1634 [123, 456, "I want chopstix", 789]
C H A P T E R 6
Built-In Functions
Array Functions 6-33
SetOverlaps 6
SetOverlaps( array1, array2 )
Compares each element in array1 to each element in array2, and returns the
index of the first element in array1 that is equal to an element in array2. If no
equivalent elements are found, nil is returned.
array1 An array.
array2 An array.
Note
The type of comparison used in this function is
pointer comparison, not content comparison. ◆
SetRemove 6
SetRemove (array, value)
SetRemove removes the specified element from the specified array and
returns the modified array. The length of the array is shifted left by one and
all of the elements after the deleted element are shifted by one to the next
lowest numbered array position. If the item is not found in the array, this
function returns nil.
array The array from which SetRemove removes the
specified element.
value The element to remove from the array specified by array.
Note
The type of comparison used in this function is
identity comparison, not pointer comparison. ◆
C H A P T E R 6
Built-In Functions
6-34 Array Functions
SetUnion 6
SetUnion( array1, array2, uniqueFlag )
Returns an array that contains all of the elements in array1 and all of the
elements in array2.
array1 An array.
array2 An array.
uniqueFlag If any non-nil value, SetUnion will not include any
duplicate items in the array it returns. If uniqueFlag is
nil, all elements from both arrays are included, even if
there are duplicates.
If both of the arrays are nil, an empty array is returned.
SetUnion can eliminate duplicates. If you do not need that property, you
can combine two arrays more efficiently using ArrayMunger (page 6-25).
Note
The type of comparison used in this function is
identity comparison, not pointer comparison. ◆
Sort 6
Sort( array, test, key )
Sorts an array and returns it after it is sorted. The sort is destructive; that is,
the array you give it is modified. The sort also is not stable; that is, elements
with equal keys won’t necessarily have the same relative order after the sort.
array An array.
test Defines the sort order. It can be a function object that
takes two parameters A and B and returns a positive
integer if A sorts after B, returns zero if A sorts
equivalently to B, and returns a negative integer if A
sorts before B.
C H A P T E R 6
Built-In Functions
Array Functions 6-35
For much greater speed, specify one of the following
symbols for test:
'|<| Sort in ascending numerical order
'|>| Sort in descending numerical order
'|str<| Sort in ascending string order
'|str>| Sort in descending string order
key Defines the sort key within each array element. Specify
nil to use the array elements directly as they are. You
can specify a path expression, in which case the array
elements are assumed to be frames or arrays and the
path is applied to each element to find the sort key. Or,
you can specify a function that takes one parameter and
returns the key.
This example sorts myArray in ascending numerical order according to the
timestamp slot of the entries:
Sort(myArray, '|<|, 'timestamp)
This example sorts myArray in descending string order according to the first
and last names concatenated together:
Sort(myArray, '|str>|, func (e) e.first && e.last)
StableSort 6
StableSort(array, test, key)
Sorts an array, preserving the original relative ordering of equivalent
elements.
array The array to modify by sorting.
test Indicates how the array is to be sorted. See the
description of the test parameter on page 6-36.
key Defines the key within each array element. Specify
nil, a path expression, or a function that takes one
parameter. See the description of the key parameter
on page 6-37.
C H A P T E R 6
Built-In Functions
6-36 Sorted Array Functions
This sort requires working memory, so may not be suitable for extremely
large arrays or in low memory conditions.
Sorted Array Functions 6
This section describes new functions that operate on sorted arrays. These
functions are based on binary search algorithms, hence the “B” prefix to the
function names.
IMPORTANT
The arrays you pass to these functions must be ordered,
otherwise the results are undefined. To sort an array,
you can use the functions Sort, InsertionSort, or
StableSort. ▲
These sorted array functions each use test and key parameters to allow them
to be adapted to different data structures. Typically, these functions search,
or iterate over several items in an array. As each element in an array is
examined, the key argument is used to extract a value, called the key, from
the element. Then that key is treated as specified by the test argument.
Here’s an explanation of these parameters:
test Indicates the sort order of the array. Specify one of the
following symbols for test, to indicate how the array
is sorted:
'|<| Sorted in ascending numerical order
'|>| Sorted in descending numerical order
'|str<| Sorted in ascending string order
'|str>| Sorted in descending string order
'|sym<| Sorted in ascending symbol order, based
on lexical comparison of symbol name
'|sym>| Sorted in descending symbol order, based
on lexical comparison of symbol name
C H A P T E R 6
Built-In Functions
Sorted Array Functions 6-37
Alternatively, for non-standard sorting situations, you
can specify a function object that compares two key
values and returns an integer that indicates how they
are sorted relative to each other. This function will be
called by any of the sorted array functions to determine
sorting relationships between elements. The function is
passed two parameters, A and B, and must return a
positive integer if A sorts after B, must return zero if A
sorts equivalently to B, and a must return a negative
integer if A sorts before B. Note that specifying a
function object for test results in much slower
performance than using one of the predefined symbols.
key Defines the key within each array element. Specify nil
to use the array elements directly as they are. You can
specify a path expression, in which case the array
elements are assumed to be frames or arrays and the
path is applied to each element to find the key. You can
also specify a function that takes one parameter (the
element) and returns the key.
BDelete 6
BDelete(array, item, test, key, count)
Deletes elements from an ordered array.
This function returns the number of elements deleted.
array The array to be modified.
item The key value for which to search. Elements with this
key are deleted.
test Indicates the sort order of the array. See the description
of the test parameter on page 6-36.
key Defines the key within each array element. Specify
nil, a path expression, or a function that takes one
parameter. See the description of the key parameter
on page 6-37.
C H A P T E R 6
Built-In Functions
6-38 Sorted Array Functions
count The maximum number of elements to delete. Specify
nil to indicate that all matching elements are to
be deleted.
BDifference 6
BDifference(array1, array2, test, key)
Returns a new sorted array containing those elements from array1 that do not
have equivalent elements in array2.
array1 The first array. This array is not modified.
array2 The second array. This array is not modified.
test Indicates the sort order of the array. See the description
of the test parameter on page 6-36.
key Defines the key within each array element. Specify
nil, a path expression, or a function that takes one
parameter. See the description of the key parameter
on page 6-37.
BFetch 6
BFetch(array, item, test, key)
Uses a binary search to find an element in a sorted array. The leftmost found
element is returned, or nil is returned if none are found.
array The array to be searched.
item The key value for which to search.
test Indicates the sort order of the array. See the description
of the test parameter on page 6-36.
key Defines the key within each array element. Specify
nil, a path expression, or a function that takes one
parameter. See the description of the key parameter
on page 6-37.
This function works just like BFind, except that BFind returns the index of
the found item.
C H A P T E R 6
Built-In Functions
Sorted Array Functions 6-39
BFetchRight 6
BFetchRight(array, item, test, key)
Uses a binary search to find an element in a sorted array. The rightmost
found element is returned, or nil is returned if none are found.
array The array to be searched.
item The key value for which to search.
test Indicates the sort order of the array. See the description
of the test parameter on page 6-36.
key Defines the key within each array element. Specify
nil, a path expression, or a function that takes one
parameter. See the description of the key parameter
on page 6-37.
This function works just like BFindRight, except that BFindRight returns
the index of the found item.
BFind 6
BFind(array, item, test, key)
Uses a binary search to find an element in a sorted array. The index of the
leftmost found element is returned, or nil is returned if none are found.
array The array to be searched.
item The key value for which to search.
test Indicates the sort order of the array. See the description
of the test parameter on page 6-36.
key Defines the key within each array element. Specify
nil, a path expression, or a function that takes one
parameter. See the description of the key parameter
on page 6-37.
This function works just like BFetch, except that BFetch returns the found
item instead of its index.
C H A P T E R 6
Built-In Functions
6-40 Sorted Array Functions
BFindRight 6
BFindRight(array, item, test, key)
Uses a binary search to find an element in a sorted array. The index of the
rightmost found element is returned, or nil is returned if none are found.
array The array to be searched.
item The key value for which to search.
test Indicates the sort order of the array. See the description
of the test parameter on page 6-36.
key Defines the key within each array element. Specify
nil, a path expression, or a function that takes one
parameter. See the description of the key parameter
on page 6-37.
This function works just like BFetchRight, except that BFetchRight
returns the found item instead of its index.
BInsert 6
BInsert(array, element, test, key, uniqueOnly)
Inserts an element into the proper position in a sorted array. In the case of
equivalent elements, the element is inserted to the left of its equivalent.
array The array to be modified.
element The new element to be inserted. Note that the key
parameter is used to extract its key value.
test Indicates the sort order of the array. See the description
of the test parameter on page 6-36.
key Defines the key within each array element. Specify
nil, a path expression, or a function that takes one
parameter. See the description of the key parameter
on page 6-37.
C H A P T E R 6
Built-In Functions
Sorted Array Functions 6-41
uniqueOnly Specify non-nil to indicate that the element is not to be
inserted if the array already contains an element with an
equivalent key value. Specify 'returnElt to indicate
the same thing, and also that this function should return
an array element. It returns either the element that was
inserted, or if a matching element is found in the array,
that element is returned. This is useful when you want
to reuse existing objects in order to conserve space or
ensure pointer equality.
Specify nil to indicate that the element is to be inserted
even if the array already contains an element with an
equivalent key. In this case, the new element is inserted
to the left of the existing equivalent elements.
This function has three possible return values, as follows:
■ It can return nil, signaling that the element was not inserted.
■ It can return an integer, which is the index at which the element was
inserted.
■ It can return an array element—either the element that was inserted (if it
was unique), or an element that already exists in the array, whose key
value matches the key value of the element you wanted to insert. This
type of return value can occur only if you specify 'returnElt for
uniqueOnly.
Here is an example of how you might use this function with uniqueOnly set
to 'returnElt to ensure pointer equality:
// :GetStr() returns a string input by the user
bodyColor := BInsert(colorList,:GetStr(),'|str<|,nil,'returnElt);
interiorColor:= BInsert(colorList,:GetStr(),'|str<|,nil,'returnElt);
if bodyColor = interiorColor then Print("bad idea");
If GetString returns a string already in colorList, this code makes sure
that the original string is reused. This is why using the = operator to test for
equality works. It also allows the duplicate string to be garbage collected,
provided there are no remaining references to it.
C H A P T E R 6
Built-In Functions
6-42 Sorted Array Functions
BInsertRight 6
BInsertRight(array, element, test, key, uniqueOnly)
Inserts an element into the proper position in a sorted array. In the case of
equivalent elements, the element is inserted to the right of its equivalent.
The index at which it was inserted is returned, or nil is returned if it was
not inserted.
array The array to be modified.
element The new element to be inserted. Note that the key
parameter is used to extract its key value.
test Indicates the sort order of the array. See the description
of the test parameter on page 6-36.
key Defines the key within each array element. Specify
nil, a path expression, or a function that takes one
parameter. See the description of the key parameter
on page 6-37.
uniqueOnly A Boolean value. Specify a non-nil value to indicate
that the element is not to be inserted if the array already
contains an element with an equivalent key value.
Specify nil to indicate that the element is to be inserted
even if the array already contains an element with an
equivalent key. In the later case, the new element is
inserted to the right of the existing equivalent elements.
BIntersect 6
BIntersect(array1, array2, test, key, uniqueOnly)
Returns a new sorted array consisting of the equivalent elements from the
two specified arrays.
array1 The first array. This array is not modified.
array2 The second array. This array is not modified.
test Indicates the sort order of the array. See the description
of the test parameter on page 6-36.
C H A P T E R 6
Built-In Functions
Sorted Array Functions 6-43
key Defines the key within each array element. Specify
nil, a path expression, or a function that takes one
parameter. See the description of the key parameter
on page 6-37.
uniqueOnly A Boolean value. Specify a non-nil value to indicate
that elements with duplicate key values are not allowed
in the resulting array. Note that this works only if array1
and array2 are both free of equivalent elements.
Specify nil to indicate that elements with duplicate key
values are allowed in the resulting array. Note that this
guarantees that the resulting array has at least two
equivalent elements for every intersecting value, since
intersection finds equivalent elements.
If equivalent elements are found in the resulting array,
they are ordered as follows: equivalent elements from
the same source array retain their original ordering, and
equivalent elements from array1 come before those
in array2.
BMerge 6
BMerge(array1, array2, test, key, uniqueOnly)
Merges two ordered arrays into one new ordered array, which is returned.
array1 The first array. This array is not modified.
array2 The second array. This array is not modified.
test Indicates the sort order of the array. See the description
of the test parameter on page 6-36.
key Defines the key within each array element. Specify
nil, a path expression, or a function that takes one
parameter. See the description of the key parameter
on page 6-37.
C H A P T E R 6
Built-In Functions
6-44 Sorted Array Functions
uniqueOnly A Boolean value. Specify a non-nil value to indicate
that elements with duplicate key values are not allowed
in the resulting array. Note that this works only if array1
and array2 are both free of equivalent elements.
Specify nil to indicate that elements with duplicate key
values are allowed in the resulting array.
If equivalent elements are found in the resulting array,
they are ordered as follows: equivalent elements from
the same source array retain their original ordering,
and equivalent elements from array1 come before those
in array2.
BSearchLeft 6
BSearchLeft(array, item, test, key)
Uses binary search to find an element in a sorted array. The index of the
smallest and leftmost element that is greater than or equal to item is returned.
The value Length(array) is returned if item is larger than all elements.
array The array to be searched.
item The key value for which to search.
test Indicates the sort order of the array. See the description
of the test parameter on page 6-36.
key Defines the key within each array element. Specify
nil, a path expression, or a function that takes one
parameter. See the description of the key parameter
on page 6-37.
Here is an example of how this function might be used:
// Extract all elements between "F" and "Na"
array := ["Ag","C","F","Fe","Hg","K","N","Na","Ni","Pu","Zn"];
pos1 := Min(Length(array)-1,BSearchLeft(array,"F",'|str<|,nil));
pos2 := Max(0,BSearchRight(array,"Na",'|str<|,nil));
ArrayMunger([],0,nil,array, pos1, pos2-pos1+1);
C H A P T E R 6
Built-In Functions
Integer Math Functions 6-45
BSearchRight 6
BSearchRight(array, item, test, key)
Uses binary search to find an element in a sorted array. The index of the
largest and rightmost element that is less than or equal to item is returned.
The value –1 is returned if all elements are larger than item.
array The array to be searched.
item The key value for which to search.
test Indicates the sort order of the array. See the description
of the test parameter on page 6-36.
key Defines the key within each array element. Specify
nil, a path expression, or a function that takes one
parameter. See the description of the key parameter
on page 6-37.
For an example of how this function might be used, see BSearchLeft.
Integer Math Functions 6
These math functions operate on or return integers. (Some of the floating
point functions can also operate on integers.)
Abs 6
Abs(x)
Returns the absolute value of an integer or real number.
x An integer or real number.
C H A P T E R 6
Built-In Functions
6-46 Integer Math Functions
Ceiling 6
Ceiling(x)
Returns the smallest integer not less than the specified real number. (Rounds
up the real number to an integer.)
x A real number.
Floor 6
Floor(x)
Returns the largest integer not greater than the specified real number.
(Rounds down the real number to an integer.)
x A real number.
Max 6
Max( a, b )
Returns the maximum value of the two integers a and b.
a An integer.
b An integer.
Min 6
Min( a, b )
Returns the minimum value of the two integers a and b.
a An integer.
b An integer.
C H A P T E R 6
Built-In Functions
Integer Math Functions 6-47
Random 6
Random (low, high)
Returns a random integer in the range between the two integers low and
high. The range is inclusive of the numbers low and high.
low An integer.
high An integer.
For example:
random (0, 100)
#120 72
Real 6
Real(x)
Converts the specified integer to a real number.
x An integer.
SetRandomSeed 6
SetRandomSeed (seedNumber)
Seeds the random number generator with the number you specify.
seedNumber An integer.
When seeded with the same number, the random number generator
(Random function) will return the same sequence of random numbers each
time you reseed it. Do not use 0 to seed the generator as it will return 0
instead of a random number.
Note
There is only one random number generator on the Newton,
so calls by other functions may interfere with your function
getting a consistent sequence of values. ◆
C H A P T E R 6
Built-In Functions
6-48 Floating Point Math Functions
Floating Point Math Functions 6
NewtonScript provides the floating point math functions documented in
this section.
The NewtonScript floating point number system is based on standards 754
and 854 adopted by the Institute of Electrical and Electronics Engineers
(IEEE). For more details on IEEE-standard arithmetic than are given here,
refer to the PowerPC Numerics volume of Inside Macintosh or to the Apple
Numerics Manual, Second Edition. These books describe SANE, the standard
Apple numeric environment. The NewtonScript environment supports many
features of SANE.
NewtonScript floating point numbers (also called real numbers) correspond
to the double format of the IEEE standards. The number system supports
representations for the following values:
■ Normal numbers—numbers with approximately 16 decimal digits of
precision, ranging from down to .
■ Subnormal numbers—numbers ranging from down to
, whose precision diminishes from approximately 16 decimal
digits down to less than one digit.
■ Signed zeros—the values +0 and –0, which compare equal, but whose
behavior differs when, for example, divided into nonzero values.
■ Signed infinities—the values +INF and -INF, which represent results too
large to represent or the result of dividing a nonzero numerator by a zero
denominator.
■ Not-a-Number symbols, or NaNs—values used to represent missing or
uninitialized data, or the results of operations, such as , which have
no meaning in the real number system.
In some application areas, you may find it useful to think of signed zeros and
infinities in terms of mathematical limits. For example, although +0 and –0
compare equal, it may be the case for a function f that ,
1.8 308
×10 2.2 –308
×10
2.2 –308
×10
4.9 –324
×10
–3
f (x)
x → 0-
lim f (x)
x → 0+
≠ lim
C H A P T E R 6
Built-In Functions
Floating Point Math Functions 6-49
and you may find it useful to exploit that fact. Similarly, you may find it
useful to interpret g(+INF) as .
The functions in this section follow the model of the arithmetic operations set
forth in the IEEE standards, namely, they produce results that are exact when
the results are exactly representable in the number system, and otherwise
they deliver the nearest (or nearly so) representable number to the mathematically
correct result. The IEEE standards specify that one or more
exceptions be raised when the result of an operation is different from the
mathematical result, or when the result is not defined in the real number
system. The possible exceptions are
■ Inexact—the result is rounded or otherwise altered from the mathematical
result.
■ Underflow—the nonzero result is too tiny to represent except as zero or a
subnormal number, and is rounded to less precision than a normal number.
■ Overflow—the result is too huge to represent as a normal number.
■ Divide by Zero—the quotient of a nonzero value divided by zero
produces +INF or -INF, according to the arguments’ signs.
■ Invalid—the result is not mathematically defined, as is the case with 0/0.
See “Managing the Floating Point Environment” on page 6-65 for further
discussion of the handling of floating point exceptions.
One feature of the IEEE standards and SANE is the choice of rounding
direction for results not exactly representable. In NewtonScript systems,
rounding is always to the nearest representable number (with ties going to
the value whose least significant bit is zero). The IEEE standards also specify
rounding to the nearest value toward 0, toward +INF, or toward -INF. But
the standards are written as though rounding direction is determined by a
state variable in the floating point environment (see “Managing the Floating
Point Environment”), while on the ARM family of processors used by
NewtonScript systems, rounding direction is determined on an instructionby-
instruction basis.
g(y)
y → ∞
lim
C H A P T E R 6
Built-In Functions
6-50 Floating Point Math Functions
Acos 6
Acos(x)
Returns the inverse cosine in radians of x. Acos raises invalid for x < –1 or
x > 1. It raises inexact for all values except 1. Acos returns values between
zero and π.
x An integer or real number.
Acosh 6
Acosh(x)
Returns the inverse hyperbolic cosine of x. Acosh raises invalid for x < 1.
It raises inexact for all values except 1. Acosh(+INF) returns +INF, but
Acosh never overflows. Its value at the largest finite real number is
approximately 710.
x An integer or real number.
Asin 6
Asin(x)
Returns the inverse sine in radians of x. Asin raises invalid for x < –1 or
x > 1. It raises inexact for all values except zero and raises underflow for all
finite x near zero. Asin returns values between –π/2 and π/2.
x An integer or real number.
Asinh 6
Asinh(x)
Returns the inverse hyperbolic sine of x. Asinh raises inexact for all values
except zero. Asinh(-INF) returns -INF and Asinh(+INF) returns +INF.
Asinh raises underflow for x near zero.
x An integer or real number.
C H A P T E R 6
Built-In Functions
Floating Point Math Functions 6-51
Atan 6
Atan(x)
Returns the inverse tangent in radians of x. It raises inexact for all values
except zero. Atan(-INF) returns –π/2 and Atan(+INF) returns π/2. Atan
returns values between –π/2 and π/2. It raises inexact for all nonzero x.
x An integer or real number.
Atan2 6
Atan2(x,y)
Returns the inverse tangent in radians of x/y. Atan2 uses the algebraic signs
of x and y to determine the quadrant of the result. It returns values between
–π and π. Its special cases are those of Atan.
x An integer or real number.
y An integer or real number.
Atanh 6
Atanh(x)
Returns the inverse hyperbolic of x. Atanh raises invalid for x < –1 or x > 1.
It raises inexact for all valid arguments except zero and raises underflow
near zero.and raises underflow for all finite x near zero. Atanh(-1.0)
returns -INF and Atan(+1.0)returns +INF.
x An integer or real number.
CopySign 6
CopySign(x,y)
Returns the value with the magnitude of x and sign of y.
x An integer or real number.
y An integer or real number.
C H A P T E R 6
Built-In Functions
6-52 Floating Point Math Functions
Note
The order of the parameters for CopySign matches the
recommendation of the IEEE 754 floating point standard,
which is opposite from the SANE copysign function. ◆
Cos 6
Cos(x)
Returns the cosine of the radian value x. Cos raises inexact for all finite
arguments except zero. It is periodic with period 2π. Cos raises invalid when
x is infinite.
x An integer or real number.
Cosh 6
Cosh(x)
Returns the hyperbolic cosine of x. Cosh raises inexact for all finite
arguments except zero. Cosh(-INF) and Cosh(+INF) return +INF. Cosh
raises overflow for finite values of large magnitude.
x An integer or real number.
Erf 6
Erf(x)
Returns , the error function of x. Erf raises inexact for all
arguments except zero. It raises underflow for arguments near zero.
Erf(-INF) returns –1 and Erf(+INF) returns 1.
x An integer or real number.
Mathematically, the sum of Erf(x) and Erfc(x) should be 1, though the
relationship may not hold when roundoff or underflow affect the results
significantly.
erf(x)
2
π
------- e t2 – dt
0
x
= ∫
C H A P T E R 6
Built-In Functions
Floating Point Math Functions 6-53
Erfc 6
Erfc(x)
Returns , the complementary error function of x. Erfc raises
inexact for all arguments except zero. Erfc(-INF) returns 2 and
Erfc(+INF) returns +0.
x An integer or real number.
Exp 6
Exp(x)
Returns ex, the exponential of the x. Exp is inexact for all nonzero finite
arguments. Exp(-INF) returns +0 and Exp(+INF) returns +INF. Exp raises
overflow for large, positive, finite x, and raises underflow for negative, finite
x of large magnitude.
x An integer or real number.
Expm1 6
Expm1(x)
Returns ex – 1, one less than the exponential of x. Expm1 avoids loss of
accuracy when x is nearly zero, and the difference is nearly zero. Expm1 is
inexact for all nonzero finite arguments. Expm1(-INF) returns –1 and
Expm1(+INF) returns +INF. Expm1 raises overflow for large, positive, finite
x, and raises underflow for x near zero.
x An integer or real number.
Fabs 6
Fabs(x)
Returns the absolute value of x. It never raises an exception.
x An integer or real number.
erfc(x)
2
π
------- e t2 – dt
x
∞
= ∫
C H A P T E R 6
Built-In Functions
6-54 Floating Point Math Functions
FDim 6
FDim(x,y)
Returns the positive difference between its parameters:
If x > y, FDim returns x – y
■ Otherwise, if x <= y, FDim returns +0
■ Otherwise, if x is a NaN, FDim returns x.
■ Otherwise (y is a NaN), FDim returns y.
x An integer or real number.
y An integer or real number.
FMax 6
FMax(x,y)
Returns the maximum of its two parameters. NaN parameters are treated as
missing data:
■ If one parameter is a NaN and the other is a number, then the number
is returned.
■ Otherwise, if both are NaNs, then the first parameter is returned.
(This corresponds to the max function in FORTRAN.)
x An integer or real number.
y An integer or real number.
FMin 6
FMin(x,y)
Returns the minimum of its two parameters. NaN parameters are treated as
missing data:
■ If one parameter is a NaN and the other is a number, then the number
is returned.
■ Otherwise, if both are NaNs, then the first parameter is returned.
(This corresponds to the min function in FORTRAN.)
C H A P T E R 6
Built-In Functions
Floating Point Math Functions 6-55
x An integer or real number.
y An integer or real number.
Fmod 6
Fmod(x,y)
Returns the remainder when x is divided by y to produce a truncated
integral quotient. That is, Fmod returns the value x - y*Trunc(x/y).
x An integer or real number.
y An integer or real number.
Gamma 6
Gamma(x)
Returns Γ(x), the gamma function applied to x. Gamma raises inexact for all
non-integral x. It raises invalid for non-positive integral arguments z.
Gamma(p) returns (p-1)! for positive, integral p, with 0! defined to be 1.
Gamma(+INF) returns +INF. Gamma can raise overflow.
x An integer or real number.
Hypot 6
Hypot(x,y)
Returns the square root of the sum of the squares of x and y, avoiding the
hazards of overflow and underflow when the arguments are large or tiny in
magnitude but the result is within range.
x An integer or real number.
y An integer or real number.
IsFinite 6
IsFinite(x)
Returns true if x is finite; returns nil if x is infinite.
x An integer or real number.
C H A P T E R 6
Built-In Functions
6-56 Floating Point Math Functions
IsNaN 6
IsNaN(x)
Returns true if x is a NaN; returns nil if x is a number.
x An integer or real number.
Note
Saying that x “is a NaN” and “is not a number” are not the
same thing. A NaN is a non-numerical value in a numerical
format; on the other hand, a string such as "foo" is not a
number because it is not a numerical object. ◆
IsNormal 6
IsNormal(x)
Returns true if x is a normal number; returns nil if x is zero, subnormal,
infinite, or a NaN.
x An integer or real number.
LessEqualOrGreater 6
LessEqualOrGreater(x, y)
Returns true if neither x nor y is a NaN, and therefore the two arguments
are ordered; otherwise, returns nil.
x An integer or real number.
y An integer or real number.
LessOrGreater 6
LessOrGreater(x, y)
Returns true if either x < y or x > y; otherwise, returns nil.
x An integer or real number.
y An integer or real number.
C H A P T E R 6
Built-In Functions
Floating Point Math Functions 6-57
LGamma 6
LGamma(x)
Returns the natural logarithm of Γ(x), the gamma function applied to x.
LGamma raises inexact for all positive x. It raises invalid for negative or zero
x. LGamma(+INF) returns +INF.
x An integer or real number.
Log 6
Log(x)
Returns the natural logarithm of x. Log raises inexact for positive, finite
arguments except 1. Log(0.0) returns -INF and raises divide by zero.
Log(+INF) returns +INF. Log raises invalid for x < 0.
x An integer or real number.
Logb 6
Logb(x)
Returns the integral value k such that 1 ≤ |x|*2–k < 2, when x is finite and
nonzero. Logb(0.0) returns -INF and raises divide by zero. Logb(-INF)
and Logb(+INF) return +INF.
Log1p 6
Log1p(x)
Returns the natural logarithm of 1+x. While accurate for all arguments no
less than –1, Log1p preserves accuracy when x is nearly zero—when
computing Log(1.0 + x)would suffer from the mere addition of x to 1.
Log1p raises inexact for all finite arguments greater than –1 except 0. It raises
invalid for all x less than –1 and raises underflow for x near zero.
Log1p(-1.0) returns -INF and raises divide by zero. Log1p(+INF)
returns +INF.
x An integer or real number.
C H A P T E R 6
Built-In Functions
6-58 Floating Point Math Functions
Log10 6
Log10(x)
Returns the logarithm base 10 of x. Because of the mathematical relationship
, Log10 shares the computational properties of Log.
x An integer or real number.
NearbyInt 6
NearbyInt(x)
Returns x rounded to the nearest integral value. NearbyInt differs from
Rint only in that it does not raise the inexact exception.
x An integer or real number.
Note
NearbyInt always rounds to nearest. ◆
NextAfterD 6
NextAfterD(x,y)
Returns the next representable number after x in the direction of y.
If x and y are equal, then the result is x. If either argument is a NaN,
NextAfterD returns one of the NaN arguments. When x is finite but the
result is infinite, NextAfterD raises overflow. When the result is zero or
subnormal, NextAfterD raises underflow.
x An integer or real number.
y An integer or real number.
log10(x) = log(x) Ú log(10)
C H A P T E R 6
Built-In Functions
Floating Point Math Functions 6-59
Pow 6
Pow(x,y)
Returns xy. When x < 0, Pow raises invalid unless y is an integral value. It can
raise inexact, overflow, underflow, and invalid.
x An integer or real number.
y An integer or real number.
RandomX 6
RandomX(x)
Returns a two-element array, based on the random seed x. The first element
of the result is a pseudo-random number that is the result of the SANE
randomx function. The second element is the new seed returned by the
randomx function. The result is an integral value between 0 and 231 – 1.
x An integer or real number.
Remainder 6
Remainder(x,y)
Returns the exact difference x – n*y, where n is a mathematical integer (as
opposed to a NewtonScript integer—n may be thousands of bits wide) to x/y
in the sense of rounding to nearest. The magnitude of the result is no greater
than half the magnitude of y. When the result is zero, it has the sign of x.
Remainder raises invalid when y is zero or x is infinite. It never raises
overflow, underflow, or inexact.
x An integer or real number.
y An integer or real number.
C H A P T E R 6
Built-In Functions
6-60 Floating Point Math Functions
RemQuo 6
RemQuo(x,y)
Returns a two-element array. The first element is Remainder(x, y). The
second element is the seven low-order bits of the quotient x / y rounded to
the nearest integer and given the sign of the quotient.
x An integer or real number.
y An integer or real number.
Rint 6
Rint(x)
Is identical to Nearbyint except that it raises inexact when its result differs
from x.
x An integer or real number.
RintToL 6
RintToL(x)
Returns an integer obtained by rounding x to an integral (real) value and
then converting that value to an integer. RintToL raises inexact when its
result differs in value from x. It raises invalid and returns an unspecified
value when the rounded value of x cannot be represented exactly as an
integer object.
x An integer or real number.
Note
RintToL always rounds to nearest. ◆
C H A P T E R 6
Built-In Functions
Floating Point Math Functions 6-61
Round 6
Round(x)
Returns the integral real number obtained from x by adding 1/2 to x and
truncating the result to the nearest integer toward 0. It raises inexact when
the result differs from x.
x An integer or real number.
Scalb 6
Scalb(x, k)
Returns x * 2k. Scalb avoids explicit computation of 2k and so avoids the
complications of overflow or underflow when 2k is out of range but the result
isn’t. Scalb can raise overflow, underflow, and inexact. Scalb and Logb are
related by the formula 1 ≤ Scalb(x, RintToL(-Logb(x))) < 2 for finite,
nonzero x.
x An integer or real number.
y An integer.
SignBit 6
SignBit(x)
Returns a nonzero integer if the sign of x is negative; otherwise (the sign of x
is positive), returns the integer 0.
x An integer or real number.
Signum 6
Signum(x)
Returns the integer value –1 if x < 0, 0 if x = 0, or 1 if x > 0. If x is an
integer, Signum returns an integer; otherwise, if x is a real, Signum returns
a real. If x is neither an integer nor a real, Signum throws the exception
kFramesErrNotANumber.
x An integer or real number.
C H A P T E R 6
Built-In Functions
6-62 Floating Point Math Functions
Sin 6
Sin(x)
Returns the sine of the radian value x. Sin raises inexact for all finite values
except zero. It is periodic with period 2π. Sin raises invalid for infinite x and
raises underflow for x near zero.
x An integer or real number.
Sinh 6
Sinh(x)
Returns the hyperbolic sine of x. Sinh raises inexact for all finite arguments
except zero. Sinh(-INF) returns -INF and Sinh(+INF) returns +INF.
Sinh raises overflow for large finite values and raises underflow near zero.
x An integer or real number.
Sqrt 6
Sqrt(x)
Returns the square root of x. It raises invalid for x < 0, and can raise inexact
for positive x.
x An integer or real number.
Tan 6
Tan(x)
Returns the tangent of the radian value x. Tan raises inexact for all finite
values except zero. It is periodic with period π. Tan raises invalid for infinite
x and raises underflow for x near zero.
x An integer or real number.
C H A P T E R 6
Built-In Functions
Floating Point Math Functions 6-63
Tanh 6
Tanh(x)
Returns the hyperbolic tangent of x. Tanh raises inexact for all finite
arguments except zero. Tanh(-INF) returns –1 and Tanh(+INF) returns
+1. Tanh raises overflow for large finite values and raises underflow
near zero.
x An integer or real number.
Trunc 6
Trunc(x)
Returns the integral real number nearest to but no larger in magnitude than x.
x An integer or real number.
Unordered 6
Unordered(x, y)
Returns true if x and y satisfy none of x < y, x = y, or x > y (because one or
both of x and y are NaNs); if neither x nor y is a NaN, they satisfy one of the
three order relations and Unordered returns nil.
x An integer or real number.
y An integer or real number.
UnorderedGreaterOrEqual 6
UnorderedGreaterOrEqual(x, y)
Returns true if x and y satisfy x ≥ y or are unordered (because one or both of
x and y are NaNs); otherwise, returns nil.
x An integer or real number.
y An integer or real number.
C H A P T E R 6
Built-In Functions
6-64 Floating Point Math Functions
UnorderedLessOrEqual 6
UnorderedLessOrEqual(x, y)
Returns true if x and y satisfy x ≤ y or are unordered (because one or both of
x and y are NaNs); otherwise, returns nil.
x An integer or real number.
y An integer or real number.
UnorderedOrEqual 6
UnorderedOrEqual(x, y)
Returns true if x and y satisfy x = y or are unordered (because one or both of
x and y are NaNs); otherwise, returns nil.
x An integer or real number.
y An integer or real number.
UnorderedOrGreater 6
UnorderedOrGreater(x, y)
Returns true if x and y satisfy x > y or are unordered (because one or both of
x and y are NaNs); otherwise, returns nil.
x An integer or real number.
y An integer or real number.
UnorderedOrLess 6
UnorderedOrLess(x, y)
Returns true if x and y satisfy x < y or are unordered (because one or both of
x and y are NaNs); otherwise, returns nil.
x An integer or real number.
y An integer or real number.
C H A P T E R 6
Built-In Functions
Floating Point Math Functions 6-65
Managing the Floating Point Environment 6
The floating point environment is a set of state variables maintained by the
Newton system and the underlying processor. The environment contains
information about which floating point exceptions have occurred. Floating
point exceptions are distinct from NewtonScript exceptions. When floating
point exceptions arise (for example, overflow arises when the sum of two
huge numbers is too large to represent in the number system), the system
raises an exception flag in the environment. Exception flags can be tested,
cleared, or raised by functions in this section. Once raised, an exception flag
remains raised until you clear it using calls from this section. The predefined
constants used to select the floating point exception flags are shown in
Table 6-1.
You can refer to multiple exceptions in a single function invocation by
forming the bitwise-OR of the predefined constants, using expressions like
Bor(Bor(fe_Invalid, fe_DivByZero), fe_Overflow).
Table 6-1 Floating point exceptions
Constant Value Meaning
fe_Inexact 0x010 inexact
fe_DivByZero 0x002 divide-by-zero
fe_Underflow 0x008 underflow
fe_Overflow 0x004 overflow
fe_Invalid 0x001 invalid
fe_All_Except 0x01F all exceptions
C H A P T E R 6
Built-In Functions
6-66 Floating Point Math Functions
Note
The representation of the floating point environment is
implementation-dependent. Functions that manipulate the
environment and its components do so without exposing
their implementation. In particular, the floating point
exception flags may or may not be implemented as
single bits. ◆
The functions that manage the floating point environment are based
on recommended numerical extensions to the ANSI C language. The
recommendations for C include functions to test and alter the direction
of rounding. Although the direction of rounding is determined by the
environment on most systems, Newton systems based on the ARM family
of processors determine the rounding direction on an instruction-byinstruction
basis, so rounding is not determined by the environment.
You can pass the predefined constant fe_Dfl_Env to the functions
FeSetEnv and FeUpdateEnv, which take an environment object as a
parameter. Fe_Dfl_Env indicates the default environment, in which all
exception flags are clear.
FeClearExcept 6
FeClearExcept(excepts)
Clears the floating point exception flags indicated by excepts.
excepts The integer bitwise-OR of one or more floating point
exceptions.
FeGetEnv 6
FeGetEnv()
Returns a data object representing the current floating point environment.
C H A P T E R 6
Built-In Functions
Floating Point Math Functions 6-67
FeGetExcept 6
FeGetExcept(excepts)
Returns a data object representing the current state of the exception flags
indicated by excepts.
excepts The integer bitwise-OR of one or more floating point
exceptions.
Note
The representation of the exception flags is unspecified. ◆
FeHoldExcept 6
FeHoldExcept()
Returns a data object representing the current floating point environment,
and clears the exception flags.
FeRaiseExcept 6
FeRaiseExcept(excepts)
Raises the floating point exception flags indicated by excepts.
excepts The integer bitwise-OR of one or more floating point
exceptions.
Note
Because floating point exceptions are not tied to the general
NewtonScript exception-handling mechanism, raising a flag
merely sets an internal variable; raising a flag will not alter
the flow of control. ◆
C H A P T E R 6
Built-In Functions
6-68 Floating Point Math Functions
FeSetEnv 6
FeSetEnv(envObj)
Installs the floating point environment represented by the object envObj.
envObj Either the predefined constant fe_Dfl_Env or an
object returned by a call to FeGetEnv or
FeHoldExcept.
FeSetExcept 6
FeSetExcept(flagObj, excepts)
The parameter flagObj is an object containing an implementation-dependent
representation of one or more floating point exception flags; flagObj must
have been set by a previous call to FeGetExcept. FeSetExcept alters the
current environment so that those floating point exception flags indicated by
excepts match the corresponding values in flagObj.
flagObj An object (returned by a previous call to FeGetExcept)
containing a representation of one or more floating
point exception flags.
excepts The integer bitwise-OR of one or more floating point
exceptions.
This function does not raise exceptions; it just alters the state of the flags.
FeTestExcept 6
FeTestExcept(excepts)
Returns the bitwise-OR of the floating point exceptions indicated by excepts
whose flags are rasied in the current environment.
excepts The integer bitwise-OR of one or more floating point
exceptions.
C H A P T E R 6
Built-In Functions
Financial Function 6-69
FeUpdateEnv 6
FeUpdateEnv(envObj)
Saves the state of the current exception flags, installs the environment
represented by envObj, and then re-raises the saved exceptions.
envObj Either the predefined constant fe_Dfl_Env or an
object returned by a call to FeGetEnv or
FeHoldExcept.
You can use FeUpdateEnv in conjunction with FeHoldExcept to write
functions which hide spurious exceptions from their callers:
func() begin
savedEnv := FeHoldExcept(); // clears flags
result := ...; // ecomputation in which underflow and
// divide by zero are benign
FeClearExcept(BOR(fe_Underflow, fe_DivByZero));
FeUpdateEnv(savedEnv); // merge old flags with new
return result
end
Financial Function 6
These functions perform financial calculations.
Annuity 6
Annuity(r, n)
Returns the value of the financial formula . When r is the
periodic interest rate and n the number of periods, p*Annuity(r, n) is the
present value of a series of n periodic payments of size p. Annuity is robust
over the entire range of r and n, whether financially meaningful or not.
1 (1 + r)
–n –
r
------------------------------
C H A P T E R 6
Built-In Functions
6-70 Financial Function
Annuity raises invalid for r < –1. When r = –1:
■ Annuity(-1, n) returns –1 for n < 0.
■ Annuity(-1, 0) returns 0.
■ Annuity(-1, n) returns +INF and raises divide by zero for n > 0.
Otherwise, r > –1. When r is nonzero, Annuity(r, 0) returns r; otherwise,
Annuity(0, n) returns n. Annuity raises inexact in all other cases, and
can raise overflow or underflow.
r An integer or real number.
n An integer or real number.
Compound 6
Compound(r, n)
Returns the value of the financial formula . When r is the periodic
interest rate and n the number of periods, P*Compound(r, n) is the future
value of a principal amount P. Compound is robust over the entire range of r
and n, whether financially meaningful or not.
Compound raises invalid for r < –1. When r = –1:
■ Compound(-1, n) returns +INF and raises divide by zero for n < 0.
■ Compound(-1, 0) returns 1.
■ Compound(-1, n) returns +0 for n > 0.
Otherwise, r > 0. Compound(r, 0) returns 1; Compound(0, n) raises
invalid when n is infinite. Compound can raise inexact, overflow or underflow.
r An integer or real number.
n An integer or real number.
(1 + r)
n
C H A P T E R 6
Built-In Functions
Exception Functions 6-71
Exception Functions 6
These functions are used to raise and handle NewtonScript exceptions in an
application. For more information about exception handling and how to use
these functions, refer to the second half of Chapter 3, “Flow of Control,”
“Exception Handling” on page 3-13. For a list of system exceptions, see the
appendix “Errors” in the Newton Programmer’s Guide.
The section “Managing the Floating Point Environment” beginning on
page 6-65 describes some functions that deal with floating-point exceptions,
which are not related to NewtonScript exceptions.
Throw 6
Throw(name, data)
Raises an exception and creates an exception frame with the specified name
and data.
name An exception symbol that names the exception being
raised.
data The data for the exception. The possible values for this
parameter depend on the composition of name and are
shown inTable 6-2.
See “Exception Handling” beginning on page 3-13 for more information
on Throw.
C H A P T E R 6
Built-In Functions
6-72 Exception Functions
Rethrow 6
Rethrow()
Reraises the current exception to allow the next enclosing Try statement an
opportunity to handle it. Rethrow throws the current exception again,
passing along the same parameters are were passed with the original call to
the Throw function. This allows you to pass control from within an
exception handler to the next enclosing Try statement.
IMPORTANT
You can call the Rethrow function only from within the
dynamic extent of an onexception clause. ▲
CurrentException 6
CurrentException()
During exception processing (that is, inside the dynamic extent of an
onexception block), returns the frame that is associated with the current
exception. You can examine the frame returned by CurrentException to
determine what kind of exception you are handling. For example, you can
call the HasSlot function to determine if the frame contains a slot named
error, and take appropriate action thereafter. (The format of the frame
depends on the exception, but it always contains a name slot with the
exception symbol.)
Table 6-2 Exception frame data slot name and contents
Exception symbol Slot name Slot contents
contains part
with prefix
type.ref
data a data object, which can be any
NewtonScript object
contains part
with prefix
evt.ex.msg
message a message string
any other error an integer error code
C H A P T E R 6
Built-In Functions
Message Sending Functions 6-73
CurrentException gives a meaningful response only from within the
dynamic extent of an onexception clause. Outside the extent of
onexception, it returns nil.
Message Sending Functions 6
These functions send messages or execute functions.
Apply 6
Apply(function, parameterArray)
Calls a function, passing the supplied parameters. The Apply function
returns the return value of the function it called.
function The function to call.
parameterArray An array of parameters to be passed to the function. You
can specify nil if there are no parameters to be passed
(this saves allocating an empty array).
Apply respects the environment of the function object it is passed. Using
Apply is similar to using the NewtonScript call statement.
Apply is useful when you want to call a function, but don’t know until run
time the number of parameters it takes. If you do know ahead of time the
number of parameters the function takes, then you can use the NewtonScript
call statement to call the function.
Here’s an example of using this function in the Inspector:
f:=func(x,y) x*y;
Apply(f,[10,2]);
#50 20
The Apply call is equivalent to:
f(10,2);
C H A P T E R 6
Built-In Functions
6-74 Message Sending Functions
Perform 6
Perform(frame, message, parameterArray)
Sends a message to a frame; that is, a method with the name of the message
is executed in the frame. Both parent and proto inheritance are used to search
for the method if it does not exist in the frame. If the method is not found, an
exception is thrown.
frame The frame to which to send the message.
message A symbol naming the message to send.
parameterArray An array of parameters to be passed along with the
message. You can specify nil if there are no parameters
to be passed (this saves allocating an empty array).
The Perform function returns the return value of the message it sent.
Note that the method named by message is executed in the context of frame,
not in the context of the frame from within which Perform is called.
The Perform function is useful when you want to send a message, but you
don’t know until run time the name of the message or the number of
parameters it takes. If you do know these things ahead of time, then you can
just use the standard NewtonScript message sending syntax.
For variations of the Perform function, see PerformIfDefined,
ProtoPerform, and ProtoPerformIfDefined.
Here’s an example of using this function in the Inspector:
f:={multiply: func(x,y) x*y};
perform(f, 'multiply, [10,2]);
#50 20
Note that
f:multiply(10,2)
is equivalent to
Perform(f, 'multiply,[10,2])
C H A P T E R 6
Built-In Functions
Message Sending Functions 6-75
PerformIfDefined 6
PerformIfDefined(receiver,message,paramArray)
Sends a message to a frame; that is, a method with the name of the message
is executed in the frame. Both parent and proto inheritance are used to search
for the method if it does not exist in the frame. If the method is not found, an
exception is not thrown.
receiver The frame to which you want the message sent.
message A symbol that is the name of the message to send
to receiver.
paramArray An array of parameters to be passed with the message.
You can specify nil if there are no parameters to be
passed (this saves allocating an empty array).
This function returns the return value of the message it sent. If the method is
not found, this function returns nil.
Contrast this function with Perform (page 6-74), which is exactly the same,
except that Perform throws an exception if the method is not found.
Also, contrast this function with ProtoPerform and
ProtoPerformIfDefined (page 6-75), which search only the
proto chain for the method.
ProtoPerform 6
ProtoPerform(receiver,message,paramArray)
Sends a message to a frame; that is, a method with the name of the message
is executed in the frame. Only proto inheritance is used to search for the
method if it does not exist in the frame. If the method is not found, an
exception is thrown.
receiver The frame to which you want the message sent.
message A symbol that is the name of the message to send
to receiver.
C H A P T E R 6
Built-In Functions
6-76 Message Sending Functions
paramArray An array of parameters to be passed with the message.
You can specify nil if there are no parameters to be
passed (this saves allocating an empty array).
This function returns the return value of the message it sent.
Contrast this function with Perform (page 6-74), which is exactly the
same, except that Perform searches both the parent and proto chains
for the method.
Also, contrast this function with PerformIfDefined (page 6-75) and
ProtoPerformIfDefined , which do not throw exceptions if the method
is not found.
ProtoPerformIfDefined 6
ProtoPerformIfDefined(receiver,message,paramArray)
Sends a message to a frame; that is, a method with the name of the message
is executed in the frame. Only proto inheritance is used to search for the
method if it does not exist in the frame. If the method is not found, an
exception is not thrown.
receiver The frame to which you want the message sent.
message A symbol that is the name of the message to send
to receiver.
paramArray An array of parameters to be passed with the message.
You can specify nil if there are no parameters to be
passed (this saves allocating an empty array).
This function returns the return value of the message it sent. If the method is
not found, this function returns nil.
Contrast this function with PerformIfDefined (page 6-75), which is
exactly the same, except that PerformIfDefined searches both the parent
and proto chains for the method.
Also, contrast this function with Perform (page 6-74) and ProtoPerform
(page 6-75), which search both the parent and proto chains for the method.
C H A P T E R 6
Built-In Functions
Data Extraction Functions 6-77
Data Extraction Functions 6
These functions are used to extract chunks of data out of other objects of
various types.
All integers are stuffed and extracted in two’s-complement big-endian form.
In this form, byte 0 is the most significant byte, as found on the Newton
and Macintosh. The opposite of this is little-endian, where byte 0 is least
significant byte, as found on Intel-based computers. For example, the
number 0x12345678 is stored as:
big-endian 12 34 56 78
little-endian 78 56 34 12
All Unicode conversions use the Macintosh extended character set for codes
greater than or equal to 128.
ExtractByte 6
ExtractByte(data, offset)
Returns one signed byte from the given offset.
data The data from which the return value is to be extracted.
offset An integer giving the position in data from which the
return value is to be extracted.
For example:
ExtractByte("\u12345678",0);
#3FC 255
C H A P T E R 6
Built-In Functions
6-78 Data Extraction Functions
ExtractBytes 6
ExtractBytes(data, offset, length, class)
Returns a binary object of class class containing length bytes of data starting
at offset within data.
data The data from which the return value is to be extracted.
offset An integer giving the position in data from which the
return value is to be extracted.
length An integer giving the number of bytes to extract.
class A symbol specifying the class of the return value.
ExtractChar 6
ExtractChar(data, offset)
Returns a character object of the character at the given offset in the data.
data The data from which the return value is to be extracted.
offset An integer giving the position in data from which the
return value is to be extracted.
Gets one byte at the specified offset, converts it to Unicode and returns the
character it makes from it.
For example:
ExtractChar("\uFFFFFFFF",0);
//$\u02C results from a ASCII to UNICODE conversion.
#2C76 $\u02C7
//Note $a is at offset 1 in a Unicode string
ExtractChar("abc",0);
#6 $\00
ExtractChar("abc",1);
#616 $a
C H A P T E R 6
Built-In Functions
Data Extraction Functions 6-79
ExtractLong 6
ExtractLong(data, offset)
Returns an integer object of the low 29 bits of an unsigned long at the given
offset, right-justified (that is, the low 29 bits of a four-byte value).
data The data from which the return value is to be extracted.
offset An integer giving the position in data from which the
return value is to be extracted.
Reads four bytes at the specified offset, but ignores the high-order bits (first
two). Returns a 30 bit signed value
ExtractLong("\uFFFFFFFF",0);
#FFFFFFFC -1
ExtractLong("\uC0000007",0);
#1C 7
ExtractXLong 6
ExtractXLong(data, offset)
Returns an integer object of the high 29 bits of an unsigned long at the given
offset, right-justified (that is, the high 29 bits of a four-byte value).
data The data from which the return value is to be extracted.
offset An integer giving the position in data from which the
return value is to be extracted.
For example:
ExtractXLong("\u0000000F",0);
#4 1
C H A P T E R 6
Built-In Functions
6-80 Data Extraction Functions
ExtractWord 6
ExtractWord(data, offset)
Returns an two-byte signed integer object from the given offset.
data The data from which the return value is to be extracted.
offset An integer giving the position in data from which the
return value is to be extracted.
For example:
ExtractWord("\uFFFFFFFF",0);
#FFFFFFFC -1
//if you want unsigned use:
band(ExtractWord(-),0xFFFF);
#40004 65535
ExtractCString 6
ExtractCString(data, offset)
Returns a Unicode string object derived from the null-terminated C-style
string at the given offset.
data The data from which the return value is to be extracted.
offset An integer giving the position in data from which the
return value is to be extracted.
ExtractPString 6
ExtractPString(data, offset)
Returns a Unicode string object derived from the Pascal-style string (a length
byte followed by text) at the given offset.
data The data from which the return value is to be extracted.
offset An integer giving the position in data from which the
return value is to be extracted.
C H A P T E R 6
Built-In Functions
Data Stuffing Functions 6-81
ExtractUniChar 6
ExtractUniChar(data, offset)
Gets two bytes at the specified offset and returns the Unicode character
represented by those bytes.
data The data from which the return value is to be extracted.
offset An integer giving the position in data from which the
return value is to be extracted.
For example:
ExtractUniChar("abc",0);
#616 $a
Data Stuffing Functions 6
These functions are used to stuff chunks of data into objects of various types.
All integers are stuffed in two’s-complement big-endian form. For a
discussion of this, see “Data Extraction Functions” on page 6-77.
▲ WA R N I N G
It is important that the destination for the data stuffing
functions is large enough to hold the data being stuffed. If
the destination is not large enough, the NewtonScript heap
may become corrupted. Be sure to take into account the
offset. Here is a formula you can use:
Length(destObj) – offset >= size of stuffed data
In this formula, destObj is the destination object and offset is
the position within the destination object where the data is
to be stuffed. ▲
C H A P T E R 6
Built-In Functions
6-82 Data Stuffing Functions
StuffByte 6
StuffByte(obj, offset, toInsert)
Writes the low order byte of toInsert, at the specified offset in obj.
obj A binary object into which data is to be stuffed.
offset The position in obj at which stuffing is to begin.
toInsert The data to be stuffed in obj.
For example:
x := "\u00000000";
StuffByte(x,0,-1);
x[0]
#FF006 $\uFF00
x := "\u00000000";
StuffByte(x,0,0xFF);
x[0]
#FF006 $\uFF00
StuffChar 6
StuffChar(obj, offset, toInsert)
Stuffs one byte into obj at the specified offset.
obj A binary object into which data is to be stuffed.
offset The position in obj at which stuffing is to begin.
toInsert A character or integer to be stuffed in obj. You pass it a
two byte Unicode value as toInsert. The function makes
a one-byte character from that value and stuffs the
one-byte character.
This accepts a character or integer as its third parameter, toInsert:
■ If toInsert: is an integer: writes the low byte of toInsert.
■ If toInsert: is a character: converts from Unicode and writes a byte.
C H A P T E R 6
Built-In Functions
Data Stuffing Functions 6-83
For example:
x := "\u00000000";
StuffChar(x,1,Ord($Z));
x[0]
#5A6 $Z
x := "\u00000000";
StuffChar(x,1,-1);
x[0]
#1A6 $\1A
ExtractByte(x,1)
#68 26
ExtractByte(x,0)
#0 0
StuffCString 6
StuffCString(obj, offset, aString)
Converts a Newton Unicode string into a null-terminated C-style string and
stuffs it at the given offset into a binary object.
obj A binary object into which data is to be stuffed.
offset The position in obj at which stuffing is to begin.
aString A Unicode string to be stuffed into obj.
The string aString is converted into ASCII format using Macintosh roman
string encoding. It is then stuffed into obj, beginning at the byte offset offset. It
is followed by a null byte terminator.
This function throws an exception if aString will not fit into obj beginning
at the given offest, or if the offset is negative. The length of obj will not
be altered.
C H A P T E R 6
Built-In Functions
6-84 Data Stuffing Functions
StuffLong 6
StuffLong(obj, offset, toInsert)
Writes four bytes at the specified offset using the 30 bit signed value you
pass it as the third parameter, and sign extends it to 32 bytes.
obj A binary object into which data is to be stuffed.
offset The position in obj at which stuffing is to begin.
toInsert The data to be stuffed in obj.
For example:
x := "\u00000000";
StuffLong(x,0,-1);
x[0]
#FFFF6 $\uFFFF
x[1]
#FFFF6 $\uFFFF
x := "\u00000000";
StuffLong(x,0,0x3FFFFFFA);
x[0]
#FFFF6 $\uFFFF
x[1]
#FFFA6 $\uFFFA
StuffPString 6
StuffPString(obj, offset, aString)
Converts a Newton Unicode string into a Pascal-style string (a length byte
followed by text) and stuffs it at the given offset into a binary object.
object A binary object into which data is to be stuffed.
offset The position in obj at which stuffing is to begin.
aString A Unicode string to be stuffed into obj. This string must
be no longer than 255 characters.
C H A P T E R 6
Built-In Functions
Data Stuffing Functions 6-85
The string aString is converted into ASCII format using Macintosh roman
string encoding. Then a length byte followed by the string is stuffed into obj,
beginning at the byte offset offset. The length byte indicates the number of
characters in the string.
This function throws an exception if aString will not fit into obj beginning
at the given offest, or if the offset is negative. The length of obj will not
be altered.
StuffUniChar 6
StuffUniChar(obj, offset, toInsert)
Stuffs the two-byte Unicode encoding for the character indicated by toInsert
into obj at the specified offset.
obj A binary object into which data is to be stuffed.
offset The position in obj at which stuffing is to begin.
toInsert A character or integer to be stuffed in obj.
For example:
x := "\u00000000";
StuffUniChar(x,0,"\uF00F"[0]);
x[0]
#F00F6 $\uF00F
x := "\u00000000";
StuffUniChar(x,0,0x0AA0);
x[0]
#AA06 $\u0AA0
C H A P T E R 6
Built-In Functions
6-86 Getting and Setting Global Variables and Functions
StuffWord 6
StuffWord(obj, offset, toInsert)
Writes the low order two bytes of toInsert at the specified offset.
obj A binary object into which data is to be stuffed.
offset The position in obj at which stuffing is to begin.
toInsert The data to be stuffed in obj.
For example:
x := "\u00000000";
StuffWord(x,0,0x3FFF1234);
x[0]
#12346 $\u1234
x := "\u00000000";
StuffWord(x,0,-1);
x[0]
#FFFF6 $\uFFFF
Getting and Setting Global Variables and Functions 6
These functions get, set and test for the existence of global variables
and functions.
GetGlobalFn 6
GetGlobalFn(symbol)
Returns a global function. If the function is not found, nil is returned.
symbol A symbol naming the global function you want to get.
C H A P T E R 6
Built-In Functions
Getting and Setting Global Variables and Functions 6-87
GetGlobalVar 6
GetGlobalVar(symbol)
Returns the value of a slot in the system globals frame. If the slot is not
found, nil is returned.
symbol A symbol naming the global variable whose value you
want to get.
GlobalFnExists 6
GlobalFnExists(symbol)
Returns non-nil if the global function identified by symbol exists, otherwise
returns nil.
symbol A symbol naming the global function whose existence
you want to check.
GlobalVarExists 6
GlobalVarExists(symbol)
Returns non-nil if the global variable identified by symbol exists, otherwise
returns nil.
symbol A symbol naming the global variable whose existence
you want to check.
DefGlobalFn 6
DefGlobalFn(symbol, function)
Defines a global function. The symbol identifying the function is returned.
symbol A symbol naming the global function you want to
define. To avoid naming conflicts with other global
functions, you should choose a name that includes your
appSymbol, which includes the developer signature
you have registered with Newton DTS.
function A function object.
C H A P T E R 6
Built-In Functions
6-88 Getting and Setting Global Variables and Functions
Note that the global function is destroyed if the system is reset.
It is very important to remove any global functions created by your
application when your application is removed. You can do this with
UnDefGlobalFn in the application RemoveScript function.
IMPORTANT
Do not create global functions unless it is absolutely
necessary. Global functions occupy NewtonScript heap
space. They can conflict with system global functions and
other applications’ global functions. In most cases, you can
use methods in your application base view instead of global
functions. ▲
DefGlobalVar 6
DefGlobalVar(symbol, value)
Defines a global variable—that is, a slot in the system globals frame. The
value of the variable is returned.
symbol A symbol naming the global variable you want to
define. To avoid naming conflicts with other globals,
you should choose a name that includes your
appSymbol, which includes the developer signature
you have registered with Newton DTS.
value The value you want to assign to the global variable.
The system ensures that the object created exists entirely in internal RAM (it
calls EnsureInternal on the object identified by symbol. Note that the
global variable is destroyed if the system is reset.
It is very important to remove any globals created by your application when
your application is removed. You can do this with UnDefGlobalVar in the
application RemoveScript function.
C H A P T E R 6
Built-In Functions
Miscellaneous Functions 6-89
IMPORTANT
Do not create global variables unless it is absolutely
necessary. Global variables occupy NewtonScript heap
space. They can conflict with system globals and other
applications’ globals. In most cases, you can put any
global data that you need in your application base view
or in a soup. ▲
UnDefGlobalFn 6
UnDefGlobalFn(symbol)
Removes a global function you previously defined. This function returns nil.
symbol A symbol naming the global function you want to
remove.
UnDefGlobalVar 6
UnDefGlobalVar(symbol)
Removes a global variable you previously defined. This function returns nil.
symbol A symbol naming the global variable you want to
remove.
Miscellaneous Functions 6
These are other miscellaneous functions.
BinEqual 6
BinEqual(a, b)
a A binary object
b A binary object
Compares two binary objects’ data as raw bytes. Returns non-nil if they
are identical.
C H A P T E R 6
Built-In Functions
6-90 Miscellaneous Functions
BinaryMunger 6
BinaryMunger( dst, dstStart, dstCount, src, srcStart, srcCount )
Replaces bytes in dst using bytes from src and returns dst after munging is
complete. This function is destructive to dst.
dst A value to be changed.
dstStart The starting position in dst.
dstCount The number of bytes to be replaced in dst. You can
specify nil for dstCount to go to the end of dst.
src A value. Can be nil to simply delete the contents of dst.
srcStart The starting position in the source binary from which
to begin taking elements to place into the destination
binary.
srcCount The number of bytes to use from the source binary. You
can specify nil to go to the end of the source binary.
Bytes are numbered counting from zero.
Chr 6
Chr(integer)
Converts a decimal integer to its Unicode character equivalent.
integer An integer.
Here is an example:
chr(65)
$A
Compile 6
Compile(string)
Compiles an expression sequence and returns a function that evaluates it.
string The expression to compile.
C H A P T E R 6
Built-In Functions
Miscellaneous Functions 6-91
Here are two examples. Note that, in the first example, x is a local variable.
compile("x:= {a:self.b, b:1234}")
#440F711
f:=compile("2+2")
f();
#440F712 4
Note
All characters used in NewtonScript code must be 7-bit
ASCII. This usually is no problem, but can create problems
with Compile in certain situations. Suppose you tried
this call:
Compile ("blah, blah, blah, \u0F0F\u")
The Unicode character is not a 7-bit character, it is 16 bits.
Therefore, you get an error. (The \u switch turns on Unicode
character mode.) You should do this instead:
Compile ("blah, blah, blah, \\u0F0F\\u")
The backslash escape character preceding the \u prevents
Unicode mode from being turned on for the compile. (The
\u is read simply as the string "\u" instead of the Unicode
switch.)
Note, also, that:
compile("func()...")
returns a function that constructs the function. The
environment is captured when the function constructor
is executed:
f := compile("func()b");
x := {a:f, b:0};
g:=x:a();
#440F713
C H A P T E R 6
Built-In Functions
6-92 Summary of Functions and Methods
Executing the function construction captures the message
environment with x as receiver.
g();
#440F714 0
So now it can find b. ◆
Ord 6
Ord (char)
Converts a character to its Unicode decimal integer equivalent.
char A character.
Here is an example:
ord($A)
65
Summary of Functions and Methods 6
This section contains a summary of the functions and methods described
in this chapter.
Object System Functions 6
ClassOf(object)
Clone(object)
DeepClone(object)
GetFunctionArgCount(function)
GetSlot(frame, slotSymbol)
GetVariable(frame, slotSymbol)
HasSlot(frame, slotSymbol)
HasVariable(frame, slotSymbol)
Intern( string )
C H A P T E R 6
Built-In Functions
Summary of Functions and Methods 6-93
IsArray(obj)
IsBinary(obj)
IsCharacter(obj)
IsFrame(obj)
IsFunction(obj)
IsImmediate(obj)
IsInstance(obj, class)
IsInteger(obj)
IsNumber(obj)
IsReadOnly(obj)
IsReal(obj)
IsString(obj)
IsSubclass(class1, class2)
IsSymbol(obj)
MakeBinary(length, class)
Map(obj, function)
PrimClassOf(object)
RemoveSlot(object, slot)
ReplaceObject(originalObject, targetObject)
SetClass(object, classSymbol)
SetVariable(frame, slotSymbol, value)
SymbolCompareLex(symbol1, symbol2)
TotalClone(object)
String Functions 6
BeginsWith(string, substr )
Capitalize(string)
CapitalizeWords(string)
CharPos(str, char, startpos)
Downcase(string)
EndsWith(string, substr)
IsAlphaNumeric(char)
IsWhiteSpace(char)
SPrintObject( obj )
StrCompare(a, b)
C H A P T E R 6
Built-In Functions
6-94 Summary of Functions and Methods
StrConcat(a, b)
StrEqual(a, b)
StrExactCompare( a, b )
StrLen(string)
StrMunger(dstString, dstStart, dstCount, srcString, srcStart, srcCount )
StrPos(string, substr, start)
StrReplace(string, substr, replacement, count)
StrTokenize(str, delimiters)
StyledStrTruncate(string, length, font)
SubStr(string, substr, start)
TrimString( string )
Upcase(string)
Bitwise Functions 6
Band(a, b)
Bor(a, b)
Bxor(a, b)
Bnot(a)
Array Functions 6
AddArraySlot(array, value)
Array(size, initialValue)
ArrayInsert(array, element, position)
ArrayMunger(dstArray, dstStart, dstCount, srcArray, srcStart, srcCount)
ArrayRemoveCount( array, startIndex, count )
InsertionSort(array, test, key)
Length(array)
LFetch(array, item, start, test, key)
LSearch(array, item, start, test, key)
NewWeakArray(length)
SetAdd(array, value, uniqueOnly)
SetContains(array, item)
SetDifference(array1, array2)
C H A P T E R 6
Built-In Functions
Summary of Functions and Methods 6-95
SetLength(array, length)
SetOverlaps( array1, array2 )
SetRemove(array, value)
SetUnion(array1, array2, uniqueFlag)
Sort(array, test, key)
StableSort(array, test, key)
Sorted Array Functions 6
BDelete(array, item, test, key, count)
BDifference(array1, array2, test, key)
BFetch(array, item, test, key)
BFetchRight(array, item, test, key)
BFind(array, item, test, key)
BFindRight(array, item, test, key)
BInsert(array, element, test, key, uniqueOnly)
BInsertRight(array, element, test, key, uniqueOnly)
BIntersect(array1, array2, test, key, uniqueOnly)
BMerge(array1, array2, test, key, uniqueOnly)
BSearchLeft(array, item, test, key)
BSearchRight(array, item, test, key)
Integer Math Functions 6
Abs(x)
Ceiling(x)
Floor(x)
Max( a, b )
Min( a, b )
Real(x)
Random(low, high)
SetRandomSeed (seedNumber)
C H A P T E R 6
Built-In Functions
6-96 Summary of Functions and Methods
Floating Point Math Functions 6
Acos(x) Logb(x)
Acosh(x) Log1p(x)
Asin(x) Log10(x)
Asinh(x) NearbyInt(x)
Atan(x) NextAfterD(x,y)
Atan2(x,y) Pow(x,y)
Atanh(x) RandomX(x)
CopySign(x,y) Remainder(x,y)
Cos(x) RemQuo(x,y)
Cosh(x) Rint(x)
Erf(x) RintToL(x)
Erfc(x) Round(x)
Exp(x) Scalb(x,y)
Expm1(x) SignBit(x)
Fabs(x) Signum(x)
FDim(x,y) Sin(x)
FMax(x,y) Sinh(x)
FMin(x,y) Sqrt(x)
Fmod(x,y) Tan(x)
Gamma(x) Tanh(x)
Hypot(x,y) Trunc(x)
IsFinite(x) Unordered(a, b)
IsNaN(x) UnorderedGreaterOrEqual(a, b)
IsNormal(x) UnorderedLessOrEqual(a, b)
LessEqualOrGreater(a, b) UnorderedOrEqual(a, b)
LessOrGreater(a, b) UnorderedOrGreater(a, b)
LGamma(x) UnorderedOrLess(a, b)
Log(x)
C H A P T E R 6
Built-In Functions
Summary of Functions and Methods 6-97
Managing the Floating Point Environment 6
FeClearExcept(excepts)
FeGetEnv()
FeGetExcept(excepts)
FeHoldExcept()
FeRaiseExcept(excepts)
FeSetEnv(envObj)
FeSetExcept(flagObj, excepts)
FeTestExcept(excepts)
FeUpdateEnv(flagObj)
Financial Functions 6
Annuity(rate, periods)
Compound(rate, periods)
Exception Functions 6
Throw(name, data)
Rethrow()
CurrentException()
Message Sending Functions 6
Apply(function, parameterArray)
Perform(frame, message, parameterArray)
PerformIfDefined(receiver,message,paramArray)
ProtoPerform(receiver,message,paramArray)
ProtoPerformIfDefined(receiver,message,paramArray)
Data Extraction Functions 6
ExtractByte(data, offset)
ExtractBytes(data, offset, length, class)
ExtractChar(data, offset)
ExtractLong(data, offset)
ExtractXLong(data, offset)
C H A P T E R 6
Built-In Functions
6-98 Summary of Functions and Methods
ExtractWord(data, offset)
ExtractCString(data, offset)
ExtractPString(data, offset)
ExtractUniChar(data, offset)
Data Stuffing Functions 6
StuffByte(aString, offset, toInsert)
StuffChar(aString, offset, toInsert)
StuffCString(obj, offset, aString)
StuffLong(aString, offset, toInsert)
StuffPString(obj, offset, aString)
StuffUniChar(aString, offset, toInsert)
StuffWord(aString, offset, toInsert)
Getting and Setting Global Variables and Functions 6
GetGlobalFn(symbol)
GetGlobalVar(symbol)
GlobalFnExists(symbol)
GlobalVarExists(symbol)
DefGlobalFn(symbol, function)
DefGlobalVar(symbol, value)
UnDefGlobalFn(symbol)
UnDefGlobalVar(symbol)
Miscellaneous Functions 6
BinEqual(a, b)
BinaryMunger(dst, dstStart, dstCount, src, srcStart, srcCount)
Chr(integer)
Compile(string)
Ord(char)
A-1
A P P E N D I X A
Reserved Words A
The following words are reserved in NewtonScript. You may not use any of
these words as symbols unless you enclose the word in vertical bars, like
this: |self|.
and end local self
begin exists loop then
break for mod to
by foreach native try
call func not until
constant global onexception while
div if or with
do in repeat
else inherited return
Figure A-0
Listing 7-0
Table A-0
B-1
A P P E N D I X B
Special Character Codes B
This appendix contains a character code table that has both Macintosh and
Unicode (16-bit) character codes for the high 128 characters in the Newton
character set (characters 128 through 254). When specifying character
constants or strings that contain characters from the high 128 characters, you
must use unicode character codes. The Macintosh character codes are
provided for convenience if you are used to using them.
Table B-1 Character codes sorted by Macintosh character code
Mac Unicode Char
80 00C4 Ä
81 00C5 Å
82 00C7 Ç
83 00C9 É
84 00D1 Ñ
85 00D6 Ö
86 00DC Ü
87 00E1 á
88 00E0 à
89 00E2 â
8A 00E4 ä
8B 00E3 ã
8C 00E5 å
continued
Figure B-0
Listing 8-0
Table B-0
A P P E N D I X B
Special Character Codes
B-2
8D 00E7 ç
8E 00E9 é
8F 00E8 è
90 00EA ê
91 00EB ë
92 00ED í
93 00EC ì
94 00EE î
95 00EF ï
96 00F1 ñ
97 00F3 ó
98 00F2 ò
99 00F4 ô
9A 00F6 ö
9B 00F5 õ
9C 00FA ú
9D 00F9 ù
9E 00FB û
9F 00FC ü
A0 2020 †
A1 00B0 °
A2 00A2 ¢
A3 00A3 £
continued
Table B-1 Character codes sorted by Macintosh character code (continued)
Mac Unicode Char
A P P E N D I X B
Special Character Codes
B-3
A4 00A7 §
A5 2022
A6 00B6 ¶
A7 00DF ß
A8 00AE ®
A9 00A9 ©
AA 2122 ™
AB 00B4 ´
AC 00A8 ¨
AD 2260 ≠
AE 00C6 Æ
AF 00D8 Ø
B0 221E ∞
B1 00B1 ±
B2 2264 ≤
B3 2265 ≥
B4 00A5 ¥
B5 00B5 µ
B6 2202 ∂
B7 2211 Σ
B8 220F Π
B9 03C0 π
BA 222B ∫
continued
Table B-1 Character codes sorted by Macintosh character code (continued)
Mac Unicode Char
A P P E N D I X B
Special Character Codes
B-4
BB 00AA ª
BC 00BA º
BD 2126 Ω
BE 00E6 æ
BF 00F8 ø
C0 00BF ¿
C1 00A1 ¡
C2 00AC ¬
C3 221A √
C4 0192 ƒ
C5 2248 ≈
C6 2206 Δ
C7 00AB «
C8 00BB »
C9 2026 …
CA 00A0
CB 00C0 À
CC 00C3 Ã
CD 00D5 Õ
CE 0152 OE
CF 0153 oe
D0 2013
D1 2014
continued
Table B-1 Character codes sorted by Macintosh character code (continued)
Mac Unicode Char
A P P E N D I X B
Special Character Codes
B-5
D2 201C
D3 201D
D4 2018
D5 2019
D6 00F7 ÷
D7 25CA ◊
D8 00FF ÿ
D9 0178 Ÿ
DA 2044 ⁄
DB 00A4 ¤
DC 2039 ‹
DD 203A ›
DE FB01 fi
DF FB02 fl
E0 2021 ‡
E1 00B7 ·
E2 201A ‚
E3 201E „
E4 2030 ‰
E5 00C2 Â
E6 00CA Ê
E7 00C1 Á
E8 00CB Ë
continued
Table B-1 Character codes sorted by Macintosh character code (continued)
Mac Unicode Char
A P P E N D I X B
Special Character Codes
B-6
E9 00C8 È
EA 00CD Í
EB 00CE Î
EC 00CF Ï
ED 00CC Ì
EE 00D3 Ó
EF 00D4 Ô
F0 F7FF
F1 00D2 Ò
F2 00DA Ú
F3 00DB Û
F4 00D9 Ù
F5 0131 ı
F6 02C6 ˆ
F7 02DC ˜
F8 00AF ¯
F9 02D8 ˘
FA 02D9 ˙
FB 02DA ˚
FC 00B8 ¸
FD 02DD ˝
FE 02DB ˛
FF 02C7 ˇ
Table B-1 Character codes sorted by Macintosh character code (continued)
Mac Unicode Char
A P P E N D I X B
Special Character Codes
B-7
Table B-2 Character codes sorted by Unicode
Mac Unicode Char
CA 00A0
C1 00A1 ¡
A2 00A2 ¢
A3 00A3 £
DB 00A4 ¤
B4 00A5 ¥
A4 00A7 §
AC 00A8 ¨
A9 00A9 ©
BB 00AA ª
C7 00AB «
C2 00AC ¬
A8 00AE ®
F8 00AF ¯
A1 00B0 °
B1 00B1 ±
AB 00B4 ´
B5 00B5 µ
A6 00B6 ¶
E1 00B7 ·
FC 00B8 ¸
BC 00BA º
continued
A P P E N D I X B
Special Character Codes
B-8
C8 00BB »
C0 00BF ¿
CB 00C0 À
E7 00C1 Á
E5 00C2 Â
CC 00C3 Ã
80 00C4 Ä
81 00C5 Å
AE 00C6 Æ
82 00C7 Ç
E9 00C8 È
83 00C9 É
E6 00CA Ê
E8 00CB Ë
ED 00CC Ì
EA 00CD Í
EB 00CE Î
EC 00CF Ï
84 00D1 Ñ
F1 00D2 Ò
EE 00D3 Ó
EF 00D4 Ô
CD 00D5 Õ
continued
Table B-2 Character codes sorted by Unicode (continued)
Mac Unicode Char
A P P E N D I X B
Special Character Codes
B-9
85 00D6 Ö
AF 00D8 Ø
F4 00D9 Ù
F2 00DA Ú
F3 00DB Û
86 00DC Ü
A7 00DF ß
88 00E0 à
87 00E1 á
89 00E2 â
8B 00E3 ã
8A 00E4 ä
8C 00E5 å
BE 00E6 æ
8D 00E7 ç
8F 00E8 è
8E 00E9 é
90 00EA ê
91 00EB ë
93 00EC ì
92 00ED í
94 00EE î
95 00EF ï
continued
Table B-2 Character codes sorted by Unicode (continued)
Mac Unicode Char
A P P E N D I X B
Special Character Codes
B-10
96 00F1 ñ
98 00F2 ò
97 00F3 ó
99 00F4 ô
9B 00F5 õ
9A 00F6 ö
D6 00F7 ÷
BF 00F8 ø
9D 00F9 ù
9C 00FA ú
9E 00FB û
9F 00FC ü
D8 00FF ÿ
F5 0131 ı
CE 0152 OE
CF 0153 oe
D9 0178 Ÿ
C4 0192 ƒ
F6 02C6 ˆ
FF 02C7 ˇ
F9 02D8 ˘
FA 02D9 ˙
FB 02DA ˚
continued
Table B-2 Character codes sorted by Unicode (continued)
Mac Unicode Char
A P P E N D I X B
Special Character Codes
B-11
FE 02DB ˛
F7 02DC ˜
FD 02DD ˝
B9 03C0 π
D0 2013
D1 2014
D4 2018
D5 2019
E2 201A ‚
D2 201C
D3 201D
E3 201E „
A0 2020 †
E0 2021 ‡
A5 2022
C9 2026 …
E4 2030 ‰
DC 2039 ‹
DD 203A ›
DA 2044 ⁄
AA 2122 ™
BD 2126 Ω
B6 2202 ∂
continued
Table B-2 Character codes sorted by Unicode (continued)
Mac Unicode Char
A P P E N D I X B
Special Character Codes
B-12
C6 2206 Δ
B8 220F Π
B7 2211 Σ
C3 221A √
B0 221E ∞
BA 222B ∫
C5 2248 ≈
AD 2260 ≠
B2 2264 ≤
B3 2265 ≥
D7 25CA ◊
F0 F7FF
DE FB01 fi
DF FB02 fl
Table B-2 Character codes sorted by Unicode (continued)
Mac Unicode Char
What Are Classes Good For? C-1
A P P E N D I X C
Class-Based Programming C
*NewtonScript is often described as an “object-oriented” language. However,
even if (or especially if) you have some experience with other object-oriented
languages, such as Smalltalk or C++, you may be a bit confused by it.
NewtonScript does have many features that will be familiar to you, but it has
one important difference: NewtonScript is prototype-based, rather than
class-based. That is, rather than dividing the world into classes and instances
for the purposes of inheritance, NewtonScript objects inherit directly from
other objects.
Don’t forget everything you know about class-based programming, though.
It is possible, and even desirable, to simulate classes in NewtonScript. Even
though the language contains no explicit features to support classes, you can
use a simple set of stylistic conventions to gain the familiar advantages of
classes when you need them, without losing the flexibility of prototypes.
What Are Classes Good For? C
Newton programming puts great emphasis on the view system. The structure
of your application is based around the views that make up the user interface.
Newton Toolkit reflects this strong view orientation, making it very easy to
create views with attached data and methods. However, it’s not necessarily
appropriate to use the view system alone to organize your program.
Most applications of any complexity use various independent, fairly
complicated data structures. A standard programming technique is to
implement these structures as abstract data types that encapsulate the
functionality. In an object-oriented program, these take the form of classes.
* Copyright © 1993, 1994 Walter R. Smith. All Rights Reserved. This article is reprinted by
permission of the author.
Figure C-0
Listing 9-0
Table C-0
A P P E N D I X C
Class-Based Programming
C-2 Classes: A Brief Reminder
Classes let you divide your program’s functionality into manageable pieces.
By combining a data structure with the functions that operate on it, classes
make the program more understandable and maintainable. A well-written
class can be reused in other applications, which saves you effort. There are
plenty of reasons why classes are a good idea; you can look in any book on
object-oriented programming for more.
You should use the view structure of your application to divide it into parts
according to the user interface. It’s a good idea to implement some or all of
the internal data structures as classes.
Classes: A Brief Reminder C
Let’s start by reviewing the traditional class-based model of object programming.
I use Smalltalk concepts and terminology in this article; C++ folks will
need to translate the discussion slightly to fit their frame of reference.
The principal concept in the class-based model is, not surprisingly, the class.
A class defines the structure and behavior of a set of objects called the
instances of the class. Each instance contains a set of instance variables,
which are specified in the class. Instances can respond to messages by
executing the methods defined in the class. Every instance has the same
instance variables and methods. In addition, the class can define class
variables and class methods, which are available to all the instances of
the class.
Inheritance is also determined by classes. Each class can have a superclass,
from which it inherits variable and method definitions. In some languages, a
class can have multiple superclasses, but there’s no easy way to simulate that
in NewtonScript, so I won’t consider that here.
An object is created by sending a message, usually called New or something
similar, to its class. It may also be created by sending a Clone message to an
instance of the class. When a message is sent to an instance, the corresponding
method is located in the class (or superclasses) and executed. The method can
refer directly to instance variables from that particular instance, and to class
variables.
A P P E N D I X C
Class-Based Programming
Inheritance in NewtonScript C-3
Inheritance in NewtonScript C
The NewtonScript object model is prototype-based. Frames inherit directly
from other frames; there are no classes. A frame may be linked to other
frames through its _proto and _parent slots. These slots define the
inheritance path for the frame. When you send a message to a frame, the
method that executes can use the slots of that frame (the receiver) as
variables. If a variable or method reference cannot be resolved in the receiver,
the proto chain is searched. If the desired slot still isn’t found, the search
moves one step up the parent chain, searching the parent and its proto chain,
and so forth.
These rules came about because they are a good fit for the Newton programming
environment, which is oriented around the view system. Parent
inheritance provides inheritance of variables and messages through the view
hierarchy: you can define a variable in a view for all its subviews to access.
Proto inheritance allows views to share common templates, and also lets
most of the data stay out of RAM.
Even though the inheritance system (and all of NewtonScript) is closely
integrated with the view system, it is really just a set of rules that can be
applied in whatever way you find useful. You can send messages to any
frame, not just a view frame, and non-view frames can take advantage of the
inheritance rules as well. As this article will demonstrate, the same rules are
suitable for a form of class-based programming.
The Basic Idea C
I will now describe the basic class-based NewtonScript technique. Remember
that there is no built-in idea of a class or an instance in NewtonScript; this is
just a set of conventions for using NewtonScript that will let you create
structures similar to those you would create in a class-based language. Thus,
A P P E N D I X C
Class-Based Programming
C-4 The Basic Idea
although I will use the terms class, instance, and so forth, they are all just
frames being used in specific ways.
The main idea is to use parent inheritance to connect instances with classes.
An instance is a frame whose slots make up the instance variables, and
whose _parent slot points to the class (another frame). The class’s slots
make up the methods.
As a simple example, consider a class Stack that implements a push-down
stack. It has the standard operations Push and Pop that add and remove
items, and a predicate IsEmpty that determines if there are any items on the
stack. The representation is very simple: just an array of items and an integer
giving the index of the topmost item.
The class frame looks like this:
Stack := {
New:
func (maxItems)
{_parent: self,
topIndex: -1,
items: Array(maxItems, NIL)},
Clone:
func () begin
local newObj := Clone(self);
newObj.items := Clone(items);
newObj
end,
Push:
func (item) begin
topIndex := topIndex + 1;
items[topIndex] := item;
self
end,
A P P E N D I X C
Class-Based Programming
The Basic Idea C-5
Pop:
func () begin
if :IsEmpty() then
NIL
else begin
local item := items[topIndex];
items[topIndex] := NIL;
topIndex := topIndex - 1;
item
end
end,
IsEmpty:
func ()
topIndex = -1
};
The class frame begins with the New method. This is a class method that is
intended to be used as message of the Stack class itself, as in Stack:New(16).
It consists simply of a frame constructor that builds an instance frame. An
instance always has a _parent slot that refers to the class frame; note that
because New is a message intended to be sent to the class, it can just use self
to get the class pointer. The rest of the slots contain the instance variables: a
topIndex slot for the index of the topmost item (-1 if the stack is empty)
and an items slot for the array of items. New takes an argument that
determines the maximum number of items on the stack, but it would be easy
to make this dynamic (if it didn’t have to fit in an article like this).
It’s usually a good idea to provide a Clone method for a class. This lets you
make a copy of an object without having to know how deep the copy has to
go (such knowledge would violate the encapsulation that is one of the
reasons to have a class in the first place). In the case of Stack, a simple
Clone would leave the items array shared between two instances, which
would result in confusing and incorrect behavior. A DeepClone, on the
other hand, would copy the entire class frame along with the instance,
because of the pointer in the _parent slot. That would actually work in this
A P P E N D I X C
Class-Based Programming
C-6 Practical Issues
case, although it would waste huge amounts of space—watch out for this
sort of mistake. The correct way to clone a Stack is to clone the instance,
then give the clone a clone of the items array, which is what the Clone
method above does.
After the New and Clone methods, which are usually present in any class,
come the methods particular to this class. The Push method increments
topIndex and adds the item to the end of the items array. Note that instance
variables such as topIndex and items are accessed simply by their names,
because they are slots of the receiver. The Pop method calls the IsEmpty
method to see if the stack is empty. If so, it returns nil; if not, it returns the
topmost item and decrements topIndex. It assigns nil to the former topmost
slot so it won’t prevent the item from being garbage collected.
The NewtonScript code you write to use a class is similar to code you would
write in a language like Smalltalk. You create an object by sending the New
message to its class. You use the resulting instance by sending messages to it.
Of course, you do all this in NewtonScript syntax, which uses the colon for
sending a message.
s := Stack:New(16);
s:Push(10);
s:Push(20);
x := s:Pop() + s:Pop();
At the end of this code, the value of x will be 30.
Practical Issues C
Before getting into more advanced topics, here’s some practical information
about doing class-based programming with current tools. (See the Newton
Toolkit User’s Guide. for information about the Newton Toolkit implementation
issues discussed in this section.)
The Newton Toolkit as it exists today doesn’t include any features that
specifically support class-based programming; for example, the browser only
A P P E N D I X C
Class-Based Programming
Class Variables C-7
shows the view hierarchy. Nevertheless, it’s not too hard to get classes into
your application.
You need to build the class frame itself into your package, and you need to
make it accessible from NewtonScript code. You can do both at once by
putting the class directly into an evaluate slot of your application’s main
view. For the above example, you could add a slot called Stack to the main
view and type the class frame just as it appears (but not including the Stack
assignment (:=) line) into the browser.
If you prefer, you could make the class frame a global compile-time variable
by putting it (including the assignment this time) into Project Data. That
won’t make it available to your run-time code, however; you still have to
create the Stack slot in the main view, but you can just type and enter–
Stack–as its value. You have to put the class in Project Data if you want to use
superclasses (more on this later).
Class Variables C
You can create “class variables”, that is, variables that are shared by all
instances of a class, by adding slots to the class frame. This is the same way
you add variables to a view to be shared by the subviews, but it’s a bit more
tricky because the view system does something automatically for views that
you have to do manually for classes.
Remember that your class frame, like all other data built at compile time, is
in read-only space when your application is running. It’s not possible to
change the values of the slots; thus, it’s impossible to assign a new value to
a class variable. The view system gets around this problem by creating a
heap-based frame whose _proto slot points to the view and using that frame
as the view. The original slots are accessible through proto inheritance, and
assignments create and modify slots in the heap-based frame, overriding the
initial values in the original. You can use the same trick for your class frame.
A P P E N D I X C
Class-Based Programming
C-8 Class Variables
For example, let’s say you want to have a class variable x whose initial value
is zero. The class frame, defined in the Project Data file, contains a slot
named x:
TheClass := { ... x: 0 ... }
The base view has a slot called TheClass whose value is defined simply
as TheClass. At some point early in your application’s execution, perhaps
in the viewSetupFormScript of the view where your class frame is
defined, create a heap-based version of the class and assign it to the
variable TheClass:
viewSetupFormScript:
func () begin
...
if not TheClass._proto exists then
TheClass := {_proto: TheClass};
...
end
Now you can use and assign the variable x in methods of TheClass. The
instances will inherit it via their _parent slot, and the first time x is assigned,
an x slot will be created in the heap-based part of the class, shadowing the
initial value of zero. Note that you only want to do this setup once—
otherwise you’ll end up with a chain of frames, one for each time your
application has been opened. Checking for the _proto slot, as above, is one
way to ensure this; you could also set TheClass := TheClass._proto in
your main view’s viewQuitScript.
A P P E N D I X C
Class-Based Programming
Superclasses C-9
Superclasses C
It’s easy to get the close equivalent of a superclass: just give the class a
_proto slot pointing to its superclass. This requires the class definitions to
be in Project Data so their names are available at compile time. For example,
if you have a SortedList class that should have Collection as its
superclass:
Collection := { ... };
SortedList := {_proto: Collection, ...};
Of course, you have to define Collection before SortedList to do it this
way. If you prefer to reverse their definitions for some reason, you can add
the _proto slot later:
SortedList := { ... };
Collection := { ... };
SortedList._proto := Collection;
If you override a method in a subclass, you can call the superclass version
using the inherited keyword. If you have class variables, note that because
assignments take place in the outermost frame in the _proto chain (that is,
the wrapper you create at initialization time for each class), each class gets its
own version of the class variable.
A P P E N D I X C
Class-Based Programming
C-10 Using Classes to Encapsulate Soup Entries
Using Classes to Encapsulate Soup Entries C
One use to consider for classes is encapsulating the constraints on soup
entries. (Read more about soups and soup entries in the Newton
Programmer’s Guide.)
Normally, entries in a soup are simple data records with no _parent or
_proto slots to inherit behavior. The reason is obvious: if they did, each
entry would contain a copy of the inherited frame. (Actually, _proto slots
are not followed in soup entries anyway, for various reasons.) Thus, soup
entries are not normally used in an object-oriented fashion.
Unfortunately, soup entries generally have somewhat complicated
requirements, such as a set of required slots, so it would be nice to give them
an object interface. You can do this by defining a class as a “wrapper” for a
particular kind of soup entry. In addition to a New method, it can have class
methods to retrieve entries from the soup and create objects from existing
entries, and instance methods to delete, undo changes, and save changes to
the entry. Each instance has a slot that refers to its soup entry.
Given such a wrapper class, you can treat the soup and its contents as
objects, sending messages to entries to make changes and retrieve data. The
class is then a central location for the code that implements the requirements
for entries in the soup.
ROM Instance Prototypes C
If your instances are fairly complicated and have a lot of slots whose values
aren’t all likely to change, you can save some space by using the same
_proto trick as classes and views. That is, in your New method, create the
A P P E N D I X C
Class-Based Programming
Leaving Instances Behind C-11
instance as a little frame that just refers to the class and an initial instance
variable prototype that stays in application space:
New: func ()
{_parent: self,
_proto: '{ ...initial instance vars... }}
Leaving Instances Behind C
Because so much is contained in the application, it’s very difficult to make
instances that can survive card or application removal. The only way to do
this is to copy the entire class (and its superclasses, if any) into the heap,
which would probably take up too much space to be practical.
Conclusion C
This technique doesn’t exactly simulate any existing class-based object
system, but it gives you what you need to encapsulate your data types into
class-like structures. I find it to be very useful (stores, soups, and cursors all
essentially follow this model), and I hope it will help you create better
Newton applications. Have fun!
Biography
Walter Smith joined the Newton group in 1988. He is the
principal designer and implementor of NewtonScript and
the Newton object store. ◆
D-1
A P P E N D I X D
NewtonScript Syntax DefinitionD
The definitions in this document are presented in two forms, as an extended
BNF, and as bubble diagrams, defined as follows:
Bubble
Diagram Extended BNF Description
terminal Oval boxes / courier text indicates a
word or character that must appear
exactly as shown. Ambiguous
terminal characters are enclosed in
single quotes (‘’).
nonterminal Rectangular boxes / italics indicate a
word that is defined further.
[] Dashed lines / brackets indicate that
the enclosed item is optional.
{choose|one} Forked arrows / a group of words,
separated by vertical bars (|) and
grouped with curly brackets, indicates
an either/or choice.
[]* A dashed box with a repeating arrow /
an asterik (*) indicates that the
preceding item(s), which is enclosed in
square brackets, can be repeated zero
or more times.
[]+ A solid box with a repeating arrow / a
plus sign (+) indicates that the
preceding item(s), which is enclosed in
square brackets, can be repeated one or
more times.
Figure 7-0
Listing 10-0
Table 7-0
terminal
non-terminal
optional optional
option 1
choice
option 2
repeat/optional
repeat
A P P E N D I X D
NewtonScript Syntax Definition
D-2 About the Grammar
About the Grammar 6
The grammar is divided into two parts: the phrasal and lexical grammars.
In the phrasal grammar, whitespace is insignificant. Space, tab, return,
and linefeed characters are considered whitespace. Comments are
effectively considered whitespace. Comments consist of the characters
between /* and */ (not nested), and between // and a return or
linefeed character.
In the lexical grammar, the nonterminals are characters rather than tokens
and whitespace is significant.
Because almost every construct of the language is an expression, many
productions ending in expression are ambiguous; the ambiguity is resolved
in favor of extending the expression as long as possible. For example, while
true do 2+2 is parsed as while true do (2+2) rather than (while
true do 2)+2. The specific productions affected by this rule are functionconstructor,
assignment, iteration, if-expression, break-expression, tryexpression,
initialization-clause, return-expression, and global-function-decl.
Phrasal Grammar 6
input:
[constituent [ ; constituent ]* [;] ]
constituent ; constituent ;
A P P E N D I X D
NewtonScript Syntax Definition
Phrasal Grammar D-3
constituent:
{ expression | global-declaration }
expression:
{ simple-expression | compound-expression | literal | constructor | lvalue |
assignment | exists-expression | function-call | message-send | if-expression |
iteration | break-expression | try-expression | local-declaration |
constant-declaration | return-expression }
simple-expression:
{ expression binary-operator expression | unary-operator expression | (
expression ) | self }
expression global-declaration
compound-expression literal constructor lvalue assignment
exists-expression functional-call message-send if-expression iteration break-expression
try-expression local-declaration constant-declaration return-expression
simple-expression
expression
expression
expression expression
( )
self
binary-operator
unary-operator
A P P E N D I X D
NewtonScript Syntax Definition
D-4 Phrasal Grammar
binary-operator:
{ arithmetic-operator | relational-operator | boolean-operator | string-operator }
arithmetic-operator:
{ + | - | * | / | div | mod | << | >> }
relational-operator:
{ = | <> | < | > | <= | >= }
boolean-operator:
{ and | or }
string-operator:
{ & | && }
unary-operator:
{ - | not }
arithmetic-operator relational-operator boolean-operator string-operator
+ - * / div mod << >>
= <> < > <= >=
and or
& &&
- not
A P P E N D I X D
NewtonScript Syntax Definition
Phrasal Grammar D-5
compound-expression:
begin expression-sequence end
expression-sequence:
[ expression [ ; expression ]* [ ; ] ]
literal:
{ simple-literal | ' object }
simple-literal:
{ string | integer | real | character | true | nil }
object:
{ simple-literal | path-expression | array | frame }
path-expression:
symbol [ . symbol ]+
begin expression-sequence end
expression ; expression ;
object
simple-literal
'
string integer real character true nil
simple-literal path-expression frame array
symbol . symbol
A P P E N D I X D
NewtonScript Syntax Definition
D-6 Phrasal Grammar
Note
Each dot in ' symbol . symbol ... is ambiguous: it could be a
continuation of the path expression or a slot accessor.
NewtonScript uses the first interpretation: 'x.y.z is one
long path expression and not the expression: ('x).y.z. ◆
array:
‘[’ [ symbol : ] [ object [ , object ]* [ , ] ] ‘]’
frame:
‘{’ [ frame-slot [ , frame-slot ]* [ , ] ] ‘}’
frame-slot:
symbol : object
constructor:
{ array-constructor | frame-constructor |function-constructor }
array-constructor:
‘[’ [ symbol : ] [ expression [ , expression ]* [ , ] ] ‘]’
[ symbol : object , object , ]
{ frame-slot , frame-slot , }
symbol : object
array-constructor frame-constructor function-constructor
[ symbol : expression , expression , ]
A P P E N D I X D
NewtonScript Syntax Definition
Phrasal Grammar D-7
Note
'[' symbol : symbol ( … is ambiguous: the first symbol could
be a class for the array, or a variable to be used as the
receiver for a message send. NewtonScript uses the first
interpretation. ◆
frame-constructor:
‘{’ [ frame-constructor-slot [ , frame-constructor-slot ]* [ , ] ] ‘}’
frame-constructor-slot:
symbol : expression
function-constructor:
func [ native ] ( [formal-argument-list ] ) expression
formal-argument-list:
{formal-argument [ , formal-argument ]*
formal-argument:
[ [type ] symbol
{ frame-constructor-slot , frame-constructor-slot , }
symbol : expression
func native ( formal-argument-list ) expression
formal-argument , formal-argument
type symbol
A P P E N D I X D
NewtonScript Syntax Definition
D-8 Phrasal Grammar
type:
{ int | array }
lvalue:
{ symbol | frame-accessor | array-accessor }
frame-accessor:
expression . { symbol | ( expression ) }
array-accessor:
expression ‘[’ expression ‘]’
assignment:
lvalue := expression
exists-expression:
{ symbol | frame-accessor | [ expression ] : symbol } exists
int array
symbol frame-accesor array-accessor
expression
symbol
expression .
( )
expression [ expression ]
lvalue : = expression
: symbol
exists
symbol
frame-accessor
expression
A P P E N D I X D
NewtonScript Syntax Definition
Phrasal Grammar D-9
function-call:
{ symbol ( [ actual-argument-list ] ) |call expression with ( [
actual-argument-list ] ) }
actual-argument-list:
expression [ , expression ]*
message-send:
[ { expression | inherited } ] { : | :? } symbol ( [ actual-argument-list ] )
if-expression:
if expression then expression [ ; ] [ else expression ]
Note
An else clause is associated with the most
recent unmatched then clause. ◆
iteration:
{ infinite-loop | for-loop | foreach-loop | while-loop | repeat-loop }
)
( actual-argument-list )
( actual-argument-list
call with
symbol
expression
expression , expression
(
:
: ?
)
inherited
expression
symbol actual-argument-list
if expression then expression ; else expression
infinite-loop for-loop foreach-loop while-loop repeat-loop
A P P E N D I X D
NewtonScript Syntax Definition
D-10 Phrasal Grammar
infinite-loop:
loop expression
for-loop:
for symbol := expression to expression [ by expression ] do expression
foreach-loop:
foreach symbol [ , symbol ] [ deeply ] in expression { do | collect }
expression
while-loop:
while expression do expression
repeat-loop:
repeat expression-sequence until expression
loop expression
symbol expression to expression
by expression
for : =
do expression
symbol , symbol deeply in expression
expression
foreach
do
collect
while expression do expression
repeat expression-sequence until expression
A P P E N D I X D
NewtonScript Syntax Definition
Phrasal Grammar D-11
break-expression:
break [ expression ]
try-expression:
try expression-sequence [ onexception symbol do expression [ ; ] ]+
local-declaration:
local [ type-specifier ] initalization-clause [ , initalization-clause ]*
type-specifier:
{ array | int }
initialization-clause:
symbol [ := expression ]
constant-declaration:
constant constant-init-clause [ , constant-init-clause ]*
break expression
try expression sequence onexception symbol do expression ;
local type-specifier initialization-clause , initialization-clause
array int
symbol : = expression
constant constant-init-clause , constant-init-clause
A P P E N D I X D
NewtonScript Syntax Definition
D-12 Lexical Grammar
constant-init-clause:
symbol := expression
return-expression:
return [ expression ]
global-declaration:
{ global initialization-clause | global-function-decl }
global-function-decl:
{ global | func } symbol ( [ formal-argument-list ] ) expression
Lexical Grammar 6
string:
" character-sequence "
symbol : = expression
return expression
global-function-decl
global initialization-clause
formal-argument-list expression
func
(
global
symbol )
" character-sequence "
A P P E N D I X D
NewtonScript Syntax Definition
Lexical Grammar D-13
character-sequence:
[ { string-character | escape-sequence } ]* [ truncated-escape ]
string-character:
escape-sequence:
{ \ { " | \ | n | t } | \ u [ hex-digit hex-digit hex-digit hex-digit ]* \ u }
truncated-escape:
\ u [ hex-digit hex-digit hex-digit hex-digit ]*
truncated-escape
escape-sequence
string-character
hex-digit hex-digit hex-digit hex-digit
\
\ u \ u
"
\
n
t
\ u hex-digit hex-digit hex-digit hex-digit
A P P E N D I X D
NewtonScript Syntax Definition
D-14 Lexical Grammar
symbol:
{ { alpha | _ } [ { alpha | digit | _ } ]* |
‘|’ [ { symbol-character | \ { ‘|’ | \ } ]* ‘|’ }
Note
Reserved words are excluded from
the nonterminal symbol. ◆
symbol-character:
integer:
[ - ] { [ digit ]+ | 0x [ hex-digit ]+ }
real:
[ - ] [ digit ]+ . [ digit ]* [ { e | E } [ - ] [ digit ]+ ]
_
alpha alpha
_ digit
|
|
\
|
symbol-character
\
-
x hex-digit
digit
0
-
e
E
digit . digit - digit
A P P E N D I X D
NewtonScript Syntax Definition
Lexical Grammar D-15
character:
$ { non-escape-character | \ { \ | n | t | hex-digit hex-digit |u hex-digit
hex-digit hex-digit hex-digit } }
non-escape-character:
alpha:
digit:
{ 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 }
hex-digit:
{ digit | a | b | c | d | e | f | A | B | C | D | E | F }
$
non-escape-character
hex-digit
hex-digit
\
t
u
n
\
hex-digit
hex-digit hex-digit hex-digit
0 1 2 3 4 5 6 7 8 9
digit a b c d e f A B C D E F
A P P E N D I X D
NewtonScript Syntax Definition
D-16 Operator Precedence
reserved-word:
{ and | begin | break | by | call | constant | deeply | div | do |
else | end | exists | for | foreach | func | global | if | in |
inherited | local | loop | mod | native | not | onexception | or
| repeat | return | self | then | to | try | until | while | with }
Operator Precedence 6
The precedence of operators, from highest to lowest, is shown in Table 2-5 on
page 2-39.
and begin break by call constant deeply div else end
exists for foreach func global if in inherited local loop mod
native not onexception or repeat return self then to try until while with
do
E-1
A P P E N D I X E
Quick Reference Card E
The following pages of this appendix contain a quick reference card for the
NewtonScript programming language.
Figure D-0
Listing 11-0
Table D-0
. slot access left-to-right
: message send left-to-right
:? conditional message send
[] array element left-to-right
- unary minus left-to-right
<< left shift left-to-right
>> right shift
* multiply left-to-right
/ float division
div integer division
mod remainder
+ add
- subtract left-to-right
& concatenate (string rep of exprs) left-to-right
&& concatenate with 1 space between
exists variable & slot existence none
< less than left-to-right
<= less than or equal
> greater than
>= greater than or equal
= equal (pointer equality)
<> not equal (pointer inequality)
not logical not left-to-right
and logical and short left-to-right
or logical or circuit
:= assignment right-to-left
Constructs Using Inheritance Lookup proto parent
slot X X
frame.slot X
frame.(pathExpr) X
GetVariable(frame,slot) X X
GetSlot(frame,slot)
frame:message()
frame:?message()
:message() X X
inherited:message()
inherited:?message() X
symbol exists X X
frame.slot exists X
frame.(pathExpr) exists X
frame:message exists
:message exists X X
HasVariable(frame,slot) X X
HasSlot(frame,slot)
NewtonScript
Reference Card
NewtonScript Description Evaluation
Operator
pression Value
in exprList end value of last statment in exprList
urn [ expr ] nil or expr
xpr then expr value of expr or nil
xpr then expr1 else expr2 value of expr1 or expr2
p expr value of break
var := expr1 to expr2 do expr nil or value of break
var := expr1 to expr2 by step do expr
each [ slot, ] val in frameOrArray do expr nil or value of break
each [ slot, ] val deeply in frame do expr (deeply in follows _proto slots)
each [ slot, ] val in frameOrArray collect expr array of collected expr values or value of break
each [ slot, ] val deeply in frame collect expr (deeply in follows _proto slots)
le expr do expr nil or value of break expression
eat exprList until expr nil or value of break expression
ak [ expr ] nil or expr
l functionObject with (argList) value functionObject returns
exprList onexception exceptionSymbol do expr… value of last expr in exprList or of the executed onexception
Throw(exSym, datum), CurrentException(), Rethrow()
t.ex| {name: exceptionSymbol, error: integer}
t.ex.msg| {name: exceptionSymbol, message: string}
t.ex;type.ref| {name: exceptionSymbol, data: datum}
Examples Comments SPrintObject ClassOf PrimClassOf
42, 0x5BA6, -99 -229 … 229-1 (-536870911…+536870912) base 10 Int Immediate
1000.02,-3.14,1.0e5, 1.e-12 SANE double, 15-16 digits, exponent: -308…308 1,000.02 real Binary
n nil don’t quote null string Weird_Immediate Immediate
true Boolean
ter $a, $7, $\\, $\F0, $\uF7FF $\xx for hex, $\uxxxx for unicode hex one char string Char Immediate
“abc”, “\n”,”\t”,”\””,”\\” abc, newline, tab, double quote, backslash the string String Binary
l hiho, baz_1, |evt.ex.msg| 254 chars, [a-z, A-Z, 0-9, _ ], vbars allow any char symbol name Symbol Binary
[arrayClass: e1,e2,e3] class optional, trailing comma allowed null string array class or Array Array
{slot1: val1, slot2: val2} trailing comma allowed null string class slot or Frame Frame
GL-1
Glossary 7
Array A sequence of numerically indexed slots (also known as
the array elements) that contain objects. The first
element is indexed by zero. Like other non-immediate
objects, an array can have a user-specified class, and can
have its length changed dynamically.
Binary object A sequence of bytes that can represent any kind of data,
can be adjusted in size dynamically, and can have a
user-specified class. Examples of binary objects include
strings, real numbers, sounds, and bitmaps.
Boolean A special kind of immediate called true. Functions and
control structures use nil as false and anything else as
true. If you don't have anything else use true.
Child A frame that references another frame (its parent) from
a _parent slot.
Class A symbol that describes the data referenced by an
object. Arrays, frames, and binary objects can have
user-defined classes.
Constant A value that does not change. In NewtonScript the
value of the constant is substituted wherever the name
of the constant is used as an expression.
G L O S S A R Y
GL-2
Frame An unordered collection of slots, each of which consists
of a name and value pair. The value of a slot can be any
type of object, and slots can be added or removed from
frames dynamically. A frame can have a user-specified
class. Frames can be used like records in Pascal and
structs in C, but can also be used as objects which
respond to messages.
Function object Function objects are created by the function constructor:
func(args) funcBody
An executable function object includes values for its
lexical and message environment, as well as code. This
information is captured when the function constructor
is evaluated at run time.
Global A variable or function that is accessible from any
NewtonScript code.
Immediate A value that is stored directly rather than through an
indirect reference to a heap object. Immediates are
characters, integers, or Booleans. See also reference.
Implementor The frame in which a method is defined. See also
receiver.
Inheritance The mechanism by which attributes (slots or data) and
behaviors (methods) are made available to objects.
Parent inheritance allows views of dissimilar types to
share slots containing data or methods. Prototype
inheritance allows a template to base its definition on
that of another template or prototype.
Local A variable whose scope is the function within which it
is defined. You must use the local keyword to
explicitly create a local variable within a function.
Message A symbol with a set of arguments. A message is sent
using the message send syntax, frame:messageName(),
where the message, messageName, is sent to the
receiver, frame.
Method A function in a frame slot that is invoked in response to
a message.
G L O S S A R Y
GL-3
Object A typed piece of data that can be an immediate, array,
frame, or binary object. In NewtonScript, only frame
objects can hold methods and receive messages.
Parent A frame that is referenced through the _parent slot of
another frame.
Path expression An object that encapsulates an access path through a set
of arrays or frames.
Proto A frame that is referenced through another frame's
_proto slot.
Receiver The frame that was sent a message. The receiver for the
invocation of a function object is accessible through the
pseudo-variable self.
Reference A value that indirectly refers to an array, frame, or
binary object. See also immediate.
Self A pseudo-variable that is set to the current receiver.
Slot An element of a frame or array that can hold an
immediate or reference.
IN-1
Index
A
Abs function 6-45
abstract data types 4-15
accessor
array 2-16
frame 2-19
Acos function 6-50
Acosh function 6-50
AddArraySlot function 6-24
Annuity function 6-69
Apply function 6-73
arithmetic operators 2-31
array GL-1
accessor 2-16
object 2-15
Array function 6-24
array functions 6-23
ArrayInsert function 6-24
ArrayMunger function 6-25
ArrayRemoveCount function 6-26
Asin function 6-50
Asinh function 6-50
assignment
description of 2-30
operator 2-29
Atan2 function 6-51
Atan function 6-51
Atanh function 6-51
B
Band function 6-23
BDelete function 6-37
BDifference function 6-38
begin…end 3-1
BeginsWith function 6-16
BFetch function 6-38
BFetchRight function 6-39
BFind function 6-39
BFindRight function 6-40
binary
objects 2-2
BinaryMunger function 6-90
binary object GL-1
BinEqual function 6-89
BInsert function 6-40
BInsertRight function 6-42
BIntersect function 6-42
bitwise functions 6-23
bitwise shift left 2-32
bitwise shift right 2-32
BMerge function 6-43
Bnot function 6-23
Boolean GL-1
interpretation 2-35
object 2-9
operators 2-34
Boolean class 2-2
Bor function 6-23
break 3-13
BSearchLeft function 6-44
BSearchRight function 6-45
built-in functions 6-1
Bxor function 6-23
I N D E X
IN-2
C
Capitalize function 6-16
CapitalizeWords function 6-16
catching exceptions 3-21
Ceiling function 6-46
character
object 2-8
characters
special, in strings 2-14
with special meanings 2-9
character set 1-9, 2-8
Char class 2-2
CharPos function 6-17
child GL-1
Chr function 6-90
class 2-1, GL-1
array 2-1
for an array 2-15
binary 2-1
Boolean 2-2
Char 2-2
frame 2-1
immediate 2-1
Int 2-2
primitive 2-1
Real 2-2
semantic types 1-3
String 2-2, 2-4
subclass 2-3
Symbol 2-2
user-defined for frame 2-18
class-based programming C-1
ClassOf function 2-2, 6-5
class slot 2-19
Clone function 6-6
code indentation 1-8
combining prototype and parent inheritance 5-6
comments
syntax 1-10
compatibility 1-11
built-in functions 6-2
Compile function 6-90
compound expressions 3-1
Compound function 6-70
conditional message send operator 4-4
constant GL-1
declaration 2-26
quoted 2-28
constants 2-26
constructor
object 1-9
CopySign function 6-51
Cos function 6-52
Cosh function 6-52
CurrentException function 6-72
D
data extraction functions 6-77
data stuffing functions 6-81
data type 1-3
DeepClone function 6-6
DefGlobalVar function 6-88
double inheritance 5-1
Downcase function 6-17
dynamic model 1-7
E
EndsWith function 6-17
equality operators 2-33
Erfc function 6-53
Erf function 6-52
exception frames 3-16
exception functions 6-71
exception handling 3-13
exceptions
catching 3-21
throwing 3-19 to 3-20
working with 3-14 to 3-25
I N D E X
IN-3
exception symbols
defined 3-15
multiple parts 3-16
prefixes 3-16
types of 3-16
exists operator 2-37
Exp function 6-53
Expm1 function 6-53
expression 2-22
expressions 1-2
compound 3-1
extent 1-6
ExtractByte function 6-77
ExtractBytes function 6-78
ExtractChar function 6-78
ExtractCString function 6-80
ExtractLong function 6-79
ExtractPString function 6-80
ExtractUniChar function 6-81
ExtractWord function 6-80
ExtractXLong function 6-79
F
Fabs function 6-53
FDim function 6-54
FeClearExcept function 6-66
FeGetEnv function 6-66
FeGetExcept function 6-67
FeHoldExcept function 6-67
FeRaiseExcept function 6-67
FeSetEnv function 6-68
FeSetExcept function 6-68
FeTestExcept function 6-68
FeUpdateEnv function 6-69
financial functions 6-69
floating point exception functions 6-65
floating point math functions 6-48
Floor function 6-46
Fmax function 6-54
Fmin function 6-54
Fmod function 6-55
for 3-4 to 3-5
foreach 3-6 to 3-10
frame GL-2
accessor 2-19
object 2-17
parent 5-4
prototype 5-2
slot GL-3
slot syntax 2-17
function
context 4-10
global definition 4-7
global invocation 4-8
invocation 4-12
object 4-9
object, example of 4-13
passing parameters 4-8
return expression 4-3
simple example 4-3
function context
lexical environment 4-10
message environment 4-10
function object GL-2
and implementing abstract data types 4-15
definition 4-9
example of 4-13
parts of 4-10
functions
Abs 6-45
Acos 6-50
Acosh 6-50
AddArraySlot 6-24
Annuity 6-69
Apply 6-73
Array 6-24
array 6-23
sorted 6-36
ArrayInsert 6-24
ArrayMunger 6-25
ArrayRemoveCount 6-26
I N D E X
IN-4
functions (continued)
Asin 6-50
Asinh 6-50
Atan 6-51
Atan2 6-51
Atanh 6-51
Band 6-23
BDelete 6-37
BDifference 6-38
BeginsWith 6-16
BFetch 6-38
BFetchRight 6-39
BFind 6-39
BFindRight 6-40
BinaryMunger 6-90
BinEqual 6-89
BInsert 6-40
BInsertRight 6-42
BIntersect 6-42
bitwise 6-23
BMerge 6-43
Bnot 6-23
Bor 6-23
BSearchLeft 6-44
BSearchRight 6-45
built-in 6-1
Bxor 6-23
Capitalize 6-16
CapitalizeWords 6-16
Ceiling 6-46
CharPos 6-17
Chr 6-90
ClassOf 2-2, 6-5
Clone 6-6
Compile 6-90
Compound 6-70
CopySign 6-51
Cos 6-52
Cosh 6-52
CurrentException 6-72
data
extraction 6-77
stuffing 6-81
DeepClone 6-6
DefGlobalFn 6-87
DefGlobalVar 6-88
defining 4-2
Downcase 6-17
EndsWith 6-17
Erf 6-52
Erfc 6-53
exception 6-71
Exp 6-53
Expm1 6-53
ExtractByte 6-77
ExtractBytes 6-78
ExtractChar 6-78
ExtractCString 6-80
extraction of data 6-77
ExtractLong 6-79
ExtractPString 6-80
ExtractUniChar 6-81
ExtractWord 6-80
ExtractXLong 6-79
Fabs 6-53
FDim 6-54
FeClearExcept 6-66
FeGetEnv 6-66
FeGetExcept 6-67
FeHoldExcept 6-67
FeRaiseExcept 6-67
FeSetEnv 6-68
FeSetExcept 6-68
FeTestExcept 6-68
FeUpdateEnv 6-69
financial 6-69
floating point 6-48
exception 6-65
Floor 6-46
Fmax 6-54
Fmin 6-54
Fmod 6-55
I N D E X
IN-5
functions (continued)
Gamma 6-55
GetFunctionArgCount 6-7
GetGlobalFn 6-86
GetGlobalVar 6-87
GetSlot 6-7
GetVariable 6-8
GlobalFnExists 6-87
GlobalVarExists 6-87
global variables and functions 6-86
HasSlot 6-8
HasVariable 6-8
Hypot 6-55
InsertSlot 6-26
integer math 6-45
Intern 6-9
IsAlphaNumeric 6-17
IsArray 2-2, 6-9
IsBinary 6-9
IsCharacter 2-2, 6-9
IsFinite 6-55
IsFrame 2-2, 6-9
IsFunction 6-10
IsImmediate 6-10
IsInstance 6-10
IsInteger 2-2, 6-10
IsNaN 6-56
IsNormal 6-56
IsNumber 6-10
IsReadOnly 6-11
IsReal 2-2, 6-11
IsString 2-2, 6-11
IsSubclass 2-4, 6-11
IsSymbol 2-2, 6-12
IsWhiteSpace 6-18
Length 6-27
LessEqualOrGreater 6-56
LessOrGreater 6-56
LFetch 6-27
LGamma 6-57
Log 6-57
Log10 6-58
Log1p 6-57
Logb 6-57
LSearch 6-29
MakeBinary 6-12
Map 6-12
math 6-45
Max 6-46
message-sending 6-73
and methods 4-1
Min 6-46
miscellaneous 6-89
native 4-16
NearbyInt 6-58
NewWeakArray 6-30
NextAfterD 6-58
object system 6-5
Ord 6-92
Perform 6-74
PerformIfDefined 6-75
Pow 6-59
PrimClassOf 2-2, 6-13
ProtoPerform 6-75
ProtoPerformIfDefined 6-76
Random 6-47
RandomX 6-59
Real 6-47
Remainder 6-59
RemoveSlot 6-13
RemQuo 6-60
ReplaceObject 6-13
Rethrow 3-20, 6-72
Rint 6-60
RintToL 6-60
Round 6-61
Scalb 6-61
SetAdd 6-31
SetClass 2-3, 6-14
SetContains 6-31
SetDifference 6-32
SetLength 6-32
SetOverlaps 6-33
SetRandomSeed 6-47
I N D E X
IN-6
functions (continued)
SetRemove 6-33
SetUnion 6-34
SetVariable 6-15
SignBit 6-61
Signum 6-61
Sin 6-62
Sinh 6-62
Sort 6-34
sorted array 6-36
SPrintObject 6-18
Sqrt 6-62
StrCompare 6-18
StrConcat 6-19
StrEqual 6-19
StrExactCompare 6-19
string 6-16
StrLen 6-20
StrMunger 6-20
StrPos 6-21
StrTokenize 6-21
StuffByte 6-82
StuffChar 6-82
StuffCString 6-83
stuffing of data 6-81
StuffLong 6-84
StuffPString 6-84
StuffUniChar 6-85
StuffWord 6-86
StyledStrTruncate 6-22
SubStr 6-22
SymbolCompareLex 6-15
Tan 6-62
Tanh 6-63
Throw 3-19, 6-71
TotalClone 6-15
TrimString 6-22
Trunc 6-63
UnDefGlobalFn 6-89
UnDefGlobalVar 6-89
Unordered 6-63
UnorderedGreaterOrEqual 6-63
UnorderedLessOrEqual 6-64
UnorderedOrEqual 6-64
UnorderedOrGreater 6-64
UnorderedOrLess 6-64
UpCase 6-23
G
Gamma function 6-55
garbage collection 1-6, C-6
GetFunctionArgCount function 6-7
GetGlobalFn function 6-86, 6-87
GetGlobalVar function 6-87
GetSlot function 6-7
GetVariable function 6-8
global GL-2
GlobalFnExists function 6-87
global function definition 4-7
global function invocation 4-8
GlobalVarExists function 6-87
global variable and functions functions 6-86
glossary GL-1
H
HasSlot function 6-8
HasVariable function 6-8
Hypot function 6-55
I, J, K
if…then…else 3-2
immediate objects 2-5
immediates
object model 1-2
immediate value GL-2
I N D E X
IN-7
implementor 4-11, GL-2
indentation of code 1-8
+INF value 6-48
-INF value 6-48
inheritance 5-2 to 5-12, GL-2
and overriding values 5-3
combining proto and parent 5-6
double 5-1
interaction order 5-7
mixed proto and parent 5-6
parent 5-1, 5-4
proto 5-1
rules for setting slot values 5-9
rules for slot and message lookup 5-7
rules for testing for the existence of a slot 5-9
inheritance rules
history C-3
mixed proto and parent 5-6
parent 5-5
prototype 5-3
inherited
description 4-4
in-line object syntax 1-9
InsertSlot function 6-26
instance C-1
Intclass 2-2
integer 2-10
integer functions 6-45
Intern function 6-9
IsAlphaNumeric function 6-17
IsArray function 2-2, 6-9
IsBinary function 6-9
IsCharacter function 2-2, 6-9
IsFinite function 6-55
IsFrame function 2-2, 6-9
IsFunction function 6-10
IsImmediate function 6-10
IsInstance function 6-10
IsInteger function 2-2, 6-10
IsNaN function 6-56
IsNormal function 6-56
IsNumber function 6-10
IsReadOnly function 6-11
IsReal function 2-2, 6-11
IsString function 2-2, 6-11
IsSubclass function 2-4, 6-11
IsSymbol function 2-2, 6-12
IsWhiteSpace function 6-18
iterators 3-3
for 3-4
foreach 3-6
loop 3-10
repeat 3-12
while 3-11
L
latent typing 1-3
Length function 6-27
LessEqualOrGreater function 6-56
LessOrGreater function 6-56
lexical environment of function 4-10
LFetch function 6-27
LGamma function 6-57
line separator 1-8
local declaration 2-23
local variable GL-2
Log10 function 6-58
Log1p function 6-57
Logb function 6-57
Log function 6-57
logical operators 2-34
lookup 5-3
method C-3
mixed proto and parent 5-6
parent inheritance rules 5-5
prototype inheritance rules 5-3
variable C-3
loop 3-10
loop syntax
for 3-4
foreach 3-6
I N D E X
IN-8
loop syntax (continued)
loop 3-10
repeat 3-12
while 3-11
LSearch function 6-29
M
MakeBinary function 6-12
Map function 6-12
math functions 6-45
Max function 6-46
message GL-2
definition 4-1
environment 4-11
receiver 4-4
message sending functions 6-73
message send operator 4-4
conditional 4-4
method GL-2
definition 4-1
implementor 4-11
methods
and function 4-1
methods and functions 4-1
Min function 6-46
miscellaneous functions 6-89
N
NaN value 6-48
native functions 4-16
NearbyInt function 6-58
NewtonScript
character set 1-9
class-based programming 1-4
classes 1-3
comments 1-10
compatibility 1-11
dynamic model 1-7
expression-based language 1-2
garbage collection 1-6
goals of 1-1
in-line object syntax 1-9
latent typing 1-3
object model 1-2
prototype-based language C-1
syntax 1-8
syntax description D-1
NewtonScript constants 2-26
NewtonScript objects 2-8
NewWeakArray function 6-30
NextAfterD function 6-58
nil value 2-9
numbers
integer 2-10
real 2-11
O
object GL-3
binary 2-1
constructor 1-9
function 4-9
inheritance C-1
in-line syntax 1-9
literal syntax 1-9
model 1-2
primitive class of 2-1
typed data 1-2
object functions 6-5
object model
immediates 1-2
references 1-2
objects
array 2-15
Boolean 2-9
character 2-8
I N D E X
IN-9
objects (continued)
frame 2-17
integer 2-10
path expressions 2-20
real 2-11
string 2-13
symbol 2-12
onexception
clause 3-18 to 3-19
onexception clause 3-21 to 3-24
examples of 3-22
operator precedence 2-38
operators 2-29 to 2-38
arithmetic 2-31
array accessor 2-16
and strings 2-14
assignment 2-29
bitwise shift left 2-32
bitwise shift right 2-32
Boolean 2-34
div 2-32
equality 2-33
exists 2-37
frame accessor 2-19
mod 2-32
postfix 2-37
prefix 2-35
relational 2-33
string 2-36
unary 2-35
Ord function 6-92
overriding inherited value 5-3
P
parameter passing 4-8
_parent slot 2-19, 5-1
parent GL-3
creating a 5-4
frame 5-4
inheritance 5-4
inheritance rules 5-5
parent inheritance C-4
path expression 2-20, GL-3
Perform function 6-74
PerformIfDefined function 6-75
Pow function 6-59
precedence of operators 2-38
PrimClassOf function 2-2, 6-13
primitive class
array 2-1
binary 2-1
frame 2-1
immediate 2-1
objects 2-1
programming
class-based C-1
_proto slot 2-19, 5-2
proto GL-3
ProtoPerform function 6-75
prototype 5-2
inheritance rules 5-3
slot 5-2
ProtPerformIfDefined function 6-76
Q
quoted constant 2-28
R
Random function 6-47
RandomX function 6-59
Real class 2-2
Real function 6-47
real numbers 2-11
receiver 4-12, GL-3
definition 4-4
self 4-4
I N D E X
IN-10
reference GL-3
reference objects 2-5
references
object model 1-2
relational operators 2-33
Remainder function 6-59
RemoveSlot function 6-13
RemQuo function 6-60
repeat 3-12
ReplaceObject function 6-13
reserved words A-1
Rethrow function 3-20, 6-72
return expression 4-3
Rint function 6-60
RintToL function 6-60
Round function 6-61
rules
inheritance, history of C-3
mixed inheritance 5-6
S
Scalb function 6-61
scope 1-4
constants 2-28
local variable 2-24
self GL-3
self pseudo-variable 4-4, 4-12
semantic types 1-3
semicolon 1-8
SetAdd function 6-31
SetClass function 2-3, 6-14
SetContains function 6-31
SetDifference function 6-32
SetLength function 6-32
SetOverlaps function 6-33
SetRandomSeed function 6-47
SetRemove function 6-33
setting slot values 5-9
SetUnion function 6-34
SetVariable function 6-15
short-circuit evaluation 2-35
SignBit function 6-61
Signum function 6-61
Sin function 6-62
Sinh function 6-62
slot GL-3
access 2-20
class 2-19
global GL-2
lookup 5-3
_parent 2-19, 5-1
_proto 2-19, 5-1, 5-2
setting values 5-9
special names in frames 2-19
syntax 2-17
sorted array functions 6-36
Sort function 6-34
special characters in symbols 2-12
SPrintObject function 6-18
Sqrt function 6-62
StrCompare function 6-18
StrConcat function 6-19
StrEqual function 6-19
StrExactCompare function 6-19
string
object 2-13
operators 2-36
using array accessors on 2-14
String class 2-2, 2-4
string functions 6-16
strings, special characters in 2-14
StrLen function 6-20
StrMunger function 6-20
StrPos function 6-21
StrTokenize function 6-21
StuffByte function 6-82
StuffChar function 6-82
StuffCString function 6-83
StuffLong function 6-84
StuffPString function 6-84
StuffUniChar function 6-85
I N D E X
IN-11
StuffWord function 6-86
StyledStrTruncate function 6-22
subclasses 2-3
SubStr function 6-22
Symbol class 2-2
SymbolCompareLex function 6-15
symbols
class 2-1
special characters in 2-12
syntax 2-12
use of 2-12
and variables 2-23
syntax D-1
comments 1-10
conventions xiv
in-line object 1-9
object constructor 1-9
object literal 1-9
overview 1-8
semicolon 1-8
T
Tan function 6-62
Tanh function 6-63
Throw function 6-71
examples of 3-19
throwing exceptions 3-19 to 3-20
TotalClone function 6-15
TrimString function 6-22
true value 2-9
Trunc function 6-63
try statement 3-18 to 3-19
examples of 3-22
U
unary operators 2-35
UnDefGlobalFn function 6-89
UnDefGlobalVar function 6-89
Unicode 2-8
Unordered function 6-63
UnorderedGreaterOrEqual function 6-63
UnorderedLessOrEqual function 6-64
UnorderedOrEqual function 6-64
UnorderedOrGreater function 6-64
UnorderedOrLess function 6-64
UpCase function 6-23
user-defined class
array 2-15
frame 2-18
user-derined class 2-3
V
value
immediate GL-2
lookup 5-3
reference GL-3
variable
local GL-2
variables 2-23
view system C-1
W, X, Y, Z
while 3-11
T H E A P P L E P U B L I S H I N G S Y S T E M
This Apple manual was written, edited,
and composed on a desktop publishing
system using Apple Macintosh
computers and FrameMaker software.
Proof pages were created on an Apple
LaserWriter Pro 630 printer. Final page
negatives were output directly from the
text and graphics files. Line art was
created using Adobe™ Illustrator.
PostScript™, the page-description
language for the LaserWriter, was
developed by Adobe Systems
Incorporated.
Text type is Palatino® and display type is
Helvetica®. Bullets are ITC Zapf
Dingbats®. Some elements, such as
program listings, are set in Apple
Courier.
WRITERS
Adrian Yacub, Cheryl Chambers,
Christopher Bey
PROJECT LEADER
Christopher Bey
ILLUSTRATOR
Peggy Kunz
EDITORS
Linda Ackerman, David Schneider
PRODUCTION EDITOR
Rex Wolf
PROJECT MANAGER
Gerry Kane
Special thanks to Peter Canning,
Bob Ebert, Mike Engber, Kent Sandvik,
and Walter Smith.
在您安裝 MacOS X之前,請先閱讀本文件的內容。它包含關於安裝 MacOS X的
重要資訊。
系統需求
若要升級到 Snow Leopard 或第一次安裝 Snow Leopard,您必須有符合下列配備
的 Mac 電腦:
 Intel 處理器
 內置或外接 DVD 光碟機或“DVD 或 CD 共享”
 最少 1 GB 的 RAM
 內建螢幕或連接 Apple 顯示卡的螢幕(您的電腦必須能支援)
 至少 5 GB 的可用磁碟空間,如果您安裝了開發人員工具,則需要 7 GB 的磁碟
空間
升級 Mac OS X
請依照下列的簡單步驟來升級至 Mac OS X Snow Leopard。
1 放入 Mac OS X 安裝光碟。
2 按兩下“安裝 Mac OS X 圖像”。
螢幕上會顯示“歡迎”面板,並接著顯示“軟體許可證”。請閱讀並同意軟體
許可協議的內容。
3 在您選擇磁碟的面板裡,請選擇您現用的 Mac OS X 磁碟(在大部分情況下,
只會有一個磁碟可供選擇)。
Mac OS X 10.6 Snow Leopard
安裝與設定指南 2
4 按一下“自定”來選取或取消選取附加軟體。
您可以自定要安裝的某些軟體,例如印表機驅動程式、字體和語言翻譯。在
“自定安裝”面板裡,選擇您要安裝的軟體,然後按一下“好”。
注意:如果您看到沒有足夠的磁碟空間安裝 Mac OS X 的訊息,您可以取消選取
某些項目來節省空間。
5 按一下“安裝”。
若要結束任何已開啟的應用程式並開始安裝,請在顯示的訊息裡按一下
“安裝”。當系統提示您時,請輸入您的管理者密碼。
使用另一部電腦的光碟機來進行升級
您可以使用“DVD 或 CD 共享”來在沒有配備光碟機的 Mac 上升級 Mac OS X(或
重新安裝 iLife 應用程式),此方式是使用另一部電腦的光碟機。另一部電腦必須
有 Mac OS X 10.4.10 或以上版本、Windows XP 或 Windows Vista。
注意:您不需要使用“遠端安裝 Mac OS X”來在沒有配備光碟機的 Mac 上升級
Mac OS X。然而,若您要將您的 Mac 回復成原始的出廠設定,或清除並重新安裝
Mac OS X,那麼您就必須使用“遠端安裝 Mac OS X”。
1 請確定兩部電腦都是位於相同的有線或無線網路上。
2 請確定您已經在要使用其光碟機的電腦上安裝了“DVD 或 CD 共享”。若電腦是
已安裝 Mac OS X 10.5.3 或以上版本的 Mac,那麼它已經安裝了“DVD 或 CD
共享”。
 若要在安裝了 Mac OS X 10.4.10-10.5.2 的 Mac 上安裝“DVD 或 CD 共享”,
請參閱:
http://support.apple.com/downloads/DVD_or_CD_Sharing_Setup_Update_for_Mac
 在 Windows 電腦上,請參閱:
http://support.apple.com/downloads/DVD_or_CD_Sharing_Update_1_0_for_Windows
3 請確定您已經在要使用其光碟機的電腦上啟用了“DVD 或 CD 共享”。
 若要在 Mac 上啟用“DVD 或 CD 共享”,請在“共享”偏好設定裡勾選“DVD
或 CD 共享”註記框。
 在 Windows 電腦上,請在 [DVD 或 CD 共享] 控制台裡選擇 [啟用遠端 DVD 或
CD] 。
4 將安裝光碟放入電腦的光碟機。
5 在您要安裝 Mac OS X(或 iLife 應用程式)的電腦上,請在 Finder 視窗側邊欄內
選擇“設備”下方的“遠端光碟”。
若您看見“詢問以使用”按鈕,請按它一下。在已放入安裝光碟的電腦上,按一
下“接受”。
6 選擇光碟,打開“安裝程式”,然後依照螢幕上的指示操作。 3
使用 Time Machine 來備份和回復您的系統
當您安裝好 Snow Leopard 之後,請將 Time Capsule、外接 USB 或 FireWire 磁碟機
連接到您的電腦上,並使用 Time Machine 來備份最新的電腦內容。如果您已經製
作了 Time Machine 備份,而且您需要重新安裝 Snow Leopard 時,請使用“回復
工具程式”來將電腦上的內容回復成先前的狀態。
1 放入 Mac OS X 安裝光碟,然後按兩下“安裝 Mac OS X”圖像。
2 在“安裝程式”裡按一下“工具程式”,然後再按一下“重新開機”。
3 當顯示“語言選擇器”時,請選擇您的語言,然後按一下“繼續”按鈕(其外觀
如同一個箭頭)。
4 選擇“工具程式”>“從備份回復系統⋯”,然後在顯示的螢幕裡按一下
“繼續”。
5 選擇備份來源。
選擇您想用來回復系統且包含 Time Machine 備份的磁碟,然後依照螢幕上的指示
操作。
注意:回復系統會清除所選卷宗裡的所有內容。
將電腦回復成出廠設定
若您要將電腦回復成原始的出廠設定,請使用電腦隨附的安裝光碟。
重要事項:若您將電腦回復成出廠設定,則電腦上的所有項目 ─ 您的使用者帳
號、網路設定和所有檔案及檔案夾都會被刪除。在您進行回復之前,請先將您要
備份的檔案拷貝到其他磁碟上。從“網路”偏好設定裡記下您的網路設定,以便
在重新安裝 Mac OS X 之後可以更容易地重新連接網路。
1 放入電腦隨附的 Mac OS X 安裝光碟,然後按兩下“安裝 Mac OS X”圖像。
注意:您可以使用“遠端安裝 Mac OS X”來在沒有配備光碟機的 Mac 上將電腦回
復成出廠設定,此方式是使用另一部電腦上的光碟機。若要使用“遠端安裝 Mac
OS X”,請先依照本文件稍後的“使用遠端安裝 Mac OS X”裡的指示操作,然後
再前往本章節裡的步驟 3。
2 在“安裝程式”裡按一下“工具程式”,然後再按一下“重新開機”。
3 當顯示“語言選擇器”時,請選擇您的語言,然後按一下“繼續”按鈕(其外觀
如同一個箭頭)。
4 選擇“工具程式”>“磁碟工具程式”。
4
5 在左側的列表裡選擇磁碟,然後按一下“清除”標籤頁。
6 從“格式”彈出式選單裡選擇 Mac OS 擴充格式(日誌式)”,輸入磁碟名稱,
然後按一下“清除”。
清除了磁碟之後,請選擇“磁碟工具程式”>“結束磁碟工具程式”,然後依
照“Mac OS X 安裝程式”裡的指示來重新安裝 Mac OS X。
注意:安裝完成後,系統會提示您使用電腦隨附的 Applications Install DVD(應用
程式安裝 DVD)來重新安裝 iLife 應用程式(GarageBand、iPhoto、iMovie、iDVD
和 iWeb)。若要重新安裝 iLife 應用程式,請放入 Applications Install DVD(應用
程式安裝 DVD),按兩下 Install Bundled Software(安裝隨附軟體)圖像,然後
依照螢幕上的指示操作。
使用“遠端安裝 Mac OS X”
您可以使用“遠端安裝 Mac OS X”來在沒有配備光碟機的 Mac 上將電腦回復成出
廠設定(或清除並重新安裝 Mac OS X),此方式是使用另一部電腦上的光碟機。
另一部電腦必須有 Mac OS X 10.4.10 或以上版本、Windows XP 或 Windows Vista。
1 請確定兩部電腦都是位於相同的有線或無線網路上。
注意:您無法在受 WEP 保護的無線網路上使用“遠端安裝 Mac OS X”。
2 請確定您已經在要使用其光碟機的電腦上安裝了“DVD 或 CD 共享”。若電腦是
已安裝 Mac OS X 10.5.3 或以上版本的 Mac,那麼它已經安裝了“DVD 或 CD
共享”。
 若要在安裝了 Mac OS X 10.4.10-10.5.2 的 Mac 上安裝“DVD 或 CD 共享”,
請參閱:
http://support.apple.com/downloads/DVD_or_CD_Sharing_Setup_Update_for_Mac
 在 Windows 電腦上,請參閱:
http://support.apple.com/downloads/DVD_or_CD_Sharing_Update_1_0_for_Windows
3 將 Mac OS X 安裝光碟放入電腦的光碟機內。
4 在使用其光碟機的電腦上,請打開“遠端安裝 Mac OS X”。
 在 Mac 電腦上,它是位於“應用程式”檔案夾的“工具程式”檔案夾裡。
 在 Windows 電腦上,請從 Install Assistant(安裝輔助程式)選擇 [遠端安裝 Mac
OS X]。
5 依照螢幕上的指示操作。
閱讀指示,選取您想要使用的安裝光碟,並依您的網路類型選取 AirPort 或乙太網
路。在每次面板顯示之後按一下“繼續”。
6 在您要安裝軟體的電腦上,請在重新啟動電腦時按住 Option(z)鍵,直到您
看見可用的啟動磁碟列表。
5
7 在使用安裝光碟的另一部電腦上,在“遠端安裝 MacOS X”裡按一下“繼續”。
注意:若您在步驟 5 選取了 AirPort 作為您的網路,請從彈出式選單中選擇 AirPort
網路。當您看見顯示訊號強度的 AirPort 狀態圖像,請在“遠端安裝 Mac OS X”
裡按一下“繼續”。
8 在您要安裝軟體的電腦上,請選擇安裝光碟,然後按一下光碟圖像下方的箭頭。
若要清除並重新安裝 Mac OS X,請前往本文件稍早章節裡的步驟 3「將電腦回復
成出廠設定」。
使用另一部電腦的光碟機來重新安裝應用程式
若您使用了“遠端安裝 Mac OS X”來將電腦回復成出廠設定,您就必須使用電腦
隨附的 Applications Install DVD(應用程式安裝 DVD)來重新安裝 iLife 應用程式
(GarageBand、iPhoto、iMovie、iDVD 和 iWeb)。若要重新安裝 iLife 應用程式,
請依照本文件稍早章節「使用另一部電腦的光碟機來進行升級」裡的指示來
操作。
關於安裝的建議
在下面的章節中,您可以找到解答,以解決安裝和使用 Mac OS X 時可能會遇到
的相關問題。
安裝期間使用鍵盤
當您使用“Mac OS X 安裝程式”和“Mac OS X 設定輔助程式”時,可以使用鍵盤
操控。按 Tab 鍵來反白按鈕、彈出式選單或其他選項。按向下鍵來打開彈出式選
單。按空白鍵來選擇項目。
更新印表機和掃描器軟體
在安裝期間,您的印表機和掃描器軟體將會升級成 Snow Leopard 相容的版本
(若有升級版本可使用的話)。在升級過程中,可能會移除不相容的軟體。如
需支援印表機和掃描器機型的相關資訊,請參閱:http://support.apple.com/kb/
HT3669?locale=zh_TW&viewlocale=zh_TW
QuickTime 7 Pro 使用者的相關資訊
與 Snow Leopard 相容的 QuickTime Player 7 應用程式版本目前已可供使用。如需
Snow Leopard 中 QuickTime 7 Pro 的相關資訊,請參閱:http://support.apple.com/
kb/HT3678?locale=zh_TW&viewlocale=zh_TW
“安裝程式”無法修復磁碟
若出現訊息告訴您“安裝程式”無法修復磁碟,您可能必須清除磁碟的內容。在
您清除磁碟內容之前,請嘗試將檔案拷貝到外接磁碟上。當您準備好清除磁碟並
重新安裝 Mac OS X 時,請依照本文件中「清除並重新安裝 Mac OS X」章節裡的
指示來操作。 6
“安裝程式”沒有開啟
若“安裝程式”沒有打開,請在重新開機時按住 C 鍵來使用 Mac OS X 安裝光碟
開機。若“安裝程式”還是沒有打開,請在重新開機時按住滑鼠或觸控式軌跡板
的按鈕,以退出光碟。在電腦啟動之後,放入 Mac OS X 安裝光碟。使用“啟動
磁碟”偏好設定來選擇光碟做為啟動磁碟,然後重新開機。
若您在使用“DVD 或 CD 共享”時,“安裝程式”沒有開啟,請嘗試使用“遠端
安裝 Mac OS X”。
若您的電腦已連接了網路,您的網路管理者可能會禁止您安裝軟體或升級
Mac OS X。請聯絡您的網路管理者尋求協助。
安裝沒有成功
若您無法安裝 Mac OS X,請嘗試下列動作:
1 在安裝過程中,請中斷連接所有不需要使用的外接設備。
2 移除所有製造商(Apple 除外)的介面卡。
3 嘗試再次安裝 Mac OS X。
4 若您無法再次安裝 Mac OS X,請選擇“工具程式”>“磁碟工具程式”。選擇您
要安裝的磁碟,按一下“修理工具”,然後再按一下“修復磁碟”。在修復所有
問題之後,結束“磁碟工具程式”,然後按一下“繼續”來嘗試再次安裝。
若您仍然無法安裝 Mac OS X,請嘗試在安裝 Mac OS X 之前先清除磁碟的內容。
在您清除磁碟內容之前,請嘗試將檔案拷貝到外接磁碟上。當您準備好清除磁碟
並重新安裝 Mac OS X 時,請依照本文件中「清除並重新安裝 Mac OS X」章節裡
的指示來操作。
清除並重新安裝 Mac OS X
若您需要清除並重新安裝 Mac OS X,請在“安裝程式”的第一個面板中按一下“
工具程式”,然後再按“重新開機”。
注意:您可以使用“遠端安裝 Mac OS X”來在沒有配備光碟機的 Mac 上清除並
重新安裝 Mac OS X,此方式是使用另一部電腦上的光碟機。若要使用“遠端安裝
Mac OS X”,請先依照本文件中「使用遠端安裝 Mac OS X」章節裡的指示操作,
然後再依照下列的指示執行。
在您選擇了語言之後,請選擇“工具程式”>“磁碟工具程式”。在左側的列表
裡選擇磁碟,然後按一下“清除”標籤頁。從“格式”彈出式選單裡選擇 Mac
OS 擴充格式(日誌式)”,輸入磁碟名稱,然後按一下“清除”。清除了磁碟
之後,請選擇“磁碟工具程式”>“結束磁碟工具程式”,然後依照“Mac OS X
安裝程式”裡的指示來重新安裝 Mac OS X。關於帳號和密碼的建議
在下面的章節中,您可以找到解答,以解決使用者名稱、密碼和登入可能會遇到
的相關問題。
無法登入電腦
請確定您輸入的名稱與密碼與當時製作的名稱和密碼完全相符,包括大小寫也必
須相同。若您還是無法登入,但您知道管理者的名稱與密碼(例如您所製作的第
一個使用者),請以管理者的身份登入,然後使用“帳號”偏好設定來更改您的
密碼。
您不記得您的密碼且需要重設密碼
若您不記得密碼,但您有 Mac OS X 安裝光碟,請放入光碟,並在重新啟動電
腦時按住 C 鍵。若您的電腦沒有配備光碟機,請使用“遠端安裝 Mac OS X”。
當“Mac OS X 安裝程式”出現時,請選擇您的語言,然後選擇“工具程式”>
“重設密碼”,並依照螢幕上的指示操作。
無法登入遠端使用者帳號
若您要登入伺服器來取用您的使用者帳號,但無法登入,請聯絡系統管理者。
其他資訊
如需更多關於 Mac OS X 的資訊,請參閱:www.apple.com/tw/macosx
如需關於使用 Mac OS X 的最新資訊,請連接到 Internet 並打開“Mac 輔助
說明”。若要打開“Mac 輔助說明”,請在 Finder 裡選擇“輔助說明”>
“Mac 輔助說明”。
如需所有關於 Apple 產品的更多支援與技術資訊,請參閱:
www.apple.com/tw/support
Copyright © 2009 Apple Inc. 保留一切權利。Apple、蘋果、Apple 標誌、AirPort、FireWire、GarageBand、
iDVD、iLife、iMovie、iPhoto、Mac、Mac OS、QuickTime、Time Capsule 和 Time Machine 是 Apple Inc. 在
美國及其他國家和地區註冊的商標。Finder、iWeb 和 Snow Leopard 是 Apple Inc. 的商標。Intel 是 Intel
Corp. 在美國及其他國家和地區的商標。此處所提及的其他產品和公司名稱可能是其所屬公司的商標。
Power Macintosh
User’s Guide
Includes setup, troubleshooting, and important health-related
information for Power Macintosh 9500 series computers
K Apple Computer, Inc.
© 1996 Apple Computer, Inc. All rights reserved.
Under the copyright laws, this manual may not be copied, in whole or in part, without the
written consent of Apple. Your rights to the software are governed by the accompanying
software license agreement.
The Apple logo is a trademark of Apple Computer, Inc., registered in the U.S. and other
countries. Use of the “keyboard” Apple logo (Option-Shift-K) for commercial purposes without
the prior written consent of Apple may constitute trademark infringement and unfair
competition in violation of federal and state laws.
Every effort has been made to ensure that the information in this manual is accurate. Apple is
not responsible for printing or clerical errors.
Apple Computer, Inc.
1 Infinite Loop
Cupertino, CA 95014-2084
(408) 996-1010
Apple, the Apple logo, AppleScript, AppleShare, AppleTalk, GeoPort, ImageWriter, Inter•Poll,
LaserWriter, LocalTalk, Macintosh, MacTerminal, PlainTalk, Power Macintosh, PowerTalk,
and StyleWriter are trademarks of Apple Computer, Inc., registered in the U.S. and other
countries.
AppleCD, Apple Desktop Bus, At Ease, AudioVision, Balloon Help, Chicago, Disk First Aid,
eWorld, Finder, Macintosh PC Exchange, and QuickDraw are trademarks of Apple
Computer, Inc.
Adobe and PostScript are trademarks of Adobe Systems Incorporated or its subsidiaries and
may be registered in certain jurisdictions.
Helvetica and Times are registered trademarks of Linotype-Hell AG and/or its subsidiaries.
PowerPC and the PowerPC logo are trademarks of International Business Machines
Corporation, used under license therefrom.
Simultaneously published in the United States and Canada.
Mention of third-party products is for informational purposes only and constitutes neither an
endorsement nor a recommendation. Apple assumes no responsibility with regard to the
performance or use of these products.
iii
Communications regulation information vi
Preface Welcome to Power Macintosh ix
Part I
1 Getting Started 1
Plugging in the computer 3
Installing an expansion card 4
Connecting a monitor 4
Connecting the mouse and keyboard 8
Connecting other equipment 10
Turning the computer on 11
Problems turning your computer on? 13
What’s next? 13
Learning the basics 14
Reviewing the basics 16
Turning the computer off 18
Where to find answers 19
Contents
2 Getting Help 21
Getting answers to your questions 22
Identifying objects on the screen 30
Learning useful shortcuts 31
3 Connecting Additional Equipment 33
Your computer at a glance 33
Connecting audio equipment 36
Connecting external SCSI devices 40
Expanding memory 44
Installing internal drives 44
Connecting network cables 45
4 Installing and Using Application Programs 47
Installing application programs 48
Working with several programs at a time 49
Backing up your files 51
Using Power Macintosh application programs 51
5 Using the Optional CD-ROM Player 53
Inserting a CD-ROM disc 54
Ejecting a CD-ROM disc 55
Playing audio CDs 56
Working with Photo CDs 57
Sharing a CD-ROM disc over a network 58
iv Contents
Part II
6 Troubleshooting 61
When you have questions 61
If you have trouble 61
Solutions to common problems 64
Solutions to CD-ROM problems 77
If your computer’s performance decreases 84
Solving printer problems 85
Obtaining updated Apple software 86
Initializing a hard disk 90
Repairing a damaged disk 93
Installing or reinstalling system software 97
Installing or reinstalling CD-ROM software 107
Part III
Appendix A Health, Safety, and Maintenance Tips 111
Health-related information about computer use 111
Safety instructions 116
Handling your computer equipment 117
Cleaning your equipment 123
Locking and unlocking the mouse 126
Appendix B Installing an Expansion Card 129
Expansion card power requirements 130
Installing an expansion card 130
Upgrading the processor 138
Appendix C Special Keys on Your Keyboard 139
Typing special characters and symbols 141
Special key combinations 143
Index 145
Contents v
vi Communications Regulation Information
Communications regulation information
FCC statement
This equipment has been tested and found to comply with the limits for a Class B digital device
in accordance with the specifications in Part 15 of FCC rules. See instructions if interference to
radio or television reception is suspected.
Radio and television interference
The equipment described in this manual generates, uses, and can radiate radio-frequency
energy. If it is not installed and used properly—that is, in strict accordance with Apple’s
instructions—it may cause interference with radio and television reception.
This equipment has been tested and found to comply with the limits for a Class B digital device
in accordance with the specifications in Part 15 of FCC rules. These specifications are designed
to provide reasonable protection against such interference in a residential installation. However,
there is no guarantee that interference will not occur in a particular installation.
Note: When the 10BASE-T Ethernet is connected, the system complies only with the FCC Part
15, Class A limits and the CISPR 22, Class A limits, and may not be used in a residential area.
You can determine whether your computer system is causing interference by turning it off. If
the interference stops, it was probably caused by the computer or one of the peripheral devices.
If your computer system does cause interference to radio or television reception, try to correct
the interference by using one or more of the following measures:
m Turn the television or radio antenna until the interference stops.
m Move the computer to one side or the other of the television or radio.
m Move the computer farther away from the television or radio.
m Plug the computer into an outlet that is on a different circuit from the television or radio.
(That is, make certain the computer and the television or radio are on circuits controlled by
different circuit breakers or fuses.)
If necessary, consult an Apple-authorized service provider or Apple. See the service and support
information that came with your Apple product. Or, consult an experienced radio/television
technician for additional suggestions. You may find the following booklet helpful: Interference
Handbook (stock number 004-000-00493-1). This booklet, prepared by the Federal
Communications Commission, is available from the U.S. Government Printing Office,
Washington, DC 20402.
IMPORTANT Changes or modifications to this product not authorized by Apple Computer, Inc.,
could void the FCC Certification and negate your authority to operate the product.
This product was tested for FCC compliance under conditions that included the use of Apple
peripheral devices and Apple shielded cables and connectors between system components. It is
important that you use Apple peripheral devices and shielded cables and connectors between
system components to reduce the possibility of causing interference to radios, television sets,
and other electronic devices. You can obtain Apple peripheral devices and the proper shielded
cables and connectors through an Apple-authorized dealer. For non-Apple peripheral devices,
contact the manufacturer or dealer for assistance.
DOC statement
DOC Class B Compliance This digital apparatus does not exceed the Class B limits for radio
noise emissions from digital apparatus as set out in the interference-causing equipment standard
entitled “Digital Apparatus,” ICES-003 of the Department of Communications.
Observation des normes—Classe B Cet appareil numérique respecte les limites de bruits
radioélectriques applicables aux appareils numériques de Classe B prescrites dans la norme
sur le matériel brouilleur : “Appareils Numériques”, NMB-003 édictée par le ministre des
Communications.
VCCI statement
CD-ROM drive
WARNING Making adjustments or performing procedures other than those specified in your
equipment’s manual may result in hazardous exposure.
WARNING Do not attempt to disassemble the cabinet containing the laser. The laser beam used in
this product is harmful to the eyes. The use of optical instruments, such as magnifying lenses,
with this product increases the potential hazard to your eyes. For your safety, have this
equipment serviced only by an Apple-authorized service provider.
If you have an internal Apple CD-ROM drive in your computer, your computer is a Class 1
laser product. The Class 1 label, located in a user-accessible area, indicates that the drive meets
minimum safety requirements. A service warning label is located in a service-accessible area.
The labels on your product may differ slightly from the ones shown here.
Class 1 label Service warning label
Communications Regulation Information vii
Congratulations on the purchase of your new Macintosh. Your computer is
designed to give you the highest performance combined with real ease of
use—it’s easy to set up, easy to use, and easy to expand. This book will guide
you through the setup procedure, tell you how to expand your Macintosh, and
provide many tips on using your new system.
Your Macintosh computer is powered by the new †microprocessor
(or “chip”). This microprocessor was designed by Apple Computer, Inc.,
Motorola, Inc., and IBM Corporation. The †microprocessor uses
Reduced Instruction Set Computing (RISC) technology to deliver very high
performance at the lowest possible cost. The †RISC microprocessor
represents the state of the art in microprocessor design.
Your new Macintosh will run almost all your existing Macintosh software, but
for best performance and greatest speed, look for the new software programs
designed especially for Power Macintosh computers. You’ll find Power
Macintosh programs at any software store that carries products for Macintosh.
ix
Welcome to Power Macintosh
Ipart
Chapter 1 Getting Started
Chapter 2 Getting Help
Chapter 3 Connecting Additional Equipment
Chapter 4 Installing and Using Application Programs
Chapter 5 Using the Optional CD-ROM Player
The illustration on the next page shows all the equipment you will need to set
up your computer and begin using it. (Note that your monitor and keyboard
may look slightly different depending on what you purchased.)
Place your equipment on a sturdy, flat surface near a grounded wall outlet.
(Your computer was designed to be placed on the floor to conserve desk
space, but it can also be placed on any stable, flat surface.) Before following
the setup instructions in this chapter, you may want to read “Arranging Your
Office” in Appendix A (in the section on health-related information) for
tips on adjusting your work furniture so that you’re comfortable when using
the computer.
1
1 Getting Started
Follow the instructions in this
chapter to set up your computer
and learn the basics.
Monitor power cord
(sometimes built into the monitor)
Computer power cord
Monitor cable
(sometimes built into the monitor)
Mouse Keyboard
Keyboard cable
(sometimes built
into the keyboard
as shown here)
Monitor
Macintosh computer
Apple PlainTalk Microphone (optional)
Getting Started 3
Plugging in the computer
Before you plug your Macintosh into a wall socket, carefully read all the
setup instructions in this chapter. Then, before you connect anything to your
Macintosh, follow the instructions in this section to plug it in. The plug
grounds the computer and protects it from electrical damage while you are
setting up. When you are ready to begin, follow these steps:
1 Plug the socket end of the computer’s power cord into the recessed power socket
(marked with the symbol ≤) on the back of the computer.
2 Plug the other end of the power cord into a three-hole grounded outlet or power strip.
Power cord plug
Power cord socket
WARNING This equipment is intended to be electrically grounded.
Your Macintosh is equipped with a three-wire grounding plug—a plug
that has a third (grounding) pin. This plug will fit only a grounded
AC outlet. This is a safety feature. If you are unable to insert the plug
into the outlet, contact a licensed electrician to replace the outlet
with a properly grounded outlet. Do not defeat the purpose of the
grounding plug!
IMPORTANT The only way to disconnect power completely is to unplug the
power cord. Make sure that at least one end of the power cord is within easy
reach so that you can unplug the computer when you need to.
Installing an expansion card
If you purchased a monitor (video) card or other expansion card for your
Macintosh, install it now. (See Appendix B, “Installing an Expansion Card,”
for instructions.)
Note: Some Power Macintosh 9500 models do not include a factory-installed
monitor card, so that you can install your own monitor card. If you have one
of these models, there is no monitor port on the back of the computer. You
need to install your monitor card now.
If you don’t have to install a monitor card or other expansion card, go on to
the next section, “Connecting a Monitor.”
Connecting a monitor
You can connect many types of monitors to your Macintosh computer,
including most standard monitors. See the Technical Information booklet that
came with your computer for a complete list.
This section contains instructions on connecting most types of monitors.
Monitors from manufacturers other than Apple may require adapters for their
monitor cables and power cords. If you are connecting a non-Apple monitor,
also refer to the instructions that came with the monitor.
4 Chapter 1
Connecting the monitor power cord
Monitors have two cords to connect: a power cord and a monitor cable. To
connect the monitor power cord, follow these steps:
1 Place the monitor next to the computer.
Keep these considerations in mind:
m Allow a few inches for air circulation around the computer and monitor.
m Make sure that the top of the screen is slightly below eye level when you’re
sitting at the keyboard.
m Position the monitor to minimize glare and reflections on the screen from
overhead lights and windows.
For further suggestions about locating your computer equipment, consult
“Arranging Your Office” in Appendix A (in the section on health-related
information).
2 Connect the monitor power cord to the monitor.
On some monitors, the cord is already attached.
Getting Started 5
3 Plug in the monitor power cord.
Some monitor power cords are designed to plug into the back of your
computer.
Some monitor power cords must be connected to a grounded electrical outlet,
not to the computer. Check the information that came with the monitor.
Monitor power socket Monitor power cord
6 Chapter 1
Connecting the monitor cable
After you plug in the monitor power cord, you connect the monitor cable to
the computer’s monitor port.
To connect the monitor cable, follow these steps:
1 Attach the monitor cable to the monitor.
On some monitors, the cable is already attached.
2 Attach the monitor cable to the monitor port at the back of the computer.
Video card Monitor cable
Getting Started 7
8 Chapter 1
Connecting the mouse and keyboard
You have a choice of several keyboards for your Macintosh. The way you
connect the mouse and keyboard depends on whether the keyboard has a
separate cable or a built-in cable.
Connecting a keyboard with a built-in cable
1 Plug the mouse cable into the recessed port on the back of the keyboard.
The plug and the port are marked with the ◊ icon (symbol). The positions of
the port and icon on your keyboard may be different from those pictured.
By the way: A port marked with the ◊ icon is called an Apple Desktop Bus
(ADB) port.
2 Plug the keyboard cable into the port marked with the ◊ icon on the back of
the computer.
Some monitors have a port to which you can connect the keyboard or mouse.
See the information that came with your monitor.
This cable plugs into the Apple Desktop Bus (ADB) port,
marked with the ◊ icon, on the back of the computer.
Plug the mouse into the recessed port on
the keyboard. The flat part of the plug should
be pointing down, as shown here.
Getting Started 9
Connecting a keyboard with a separate cable
1 Plug the mouse cable into the port on either side of the keyboard.
Most right-handed people prefer to use the mouse with their right hand; most
left-handed people prefer to use their left hand. Plug the mouse into the port
on the side you prefer.
The plug and the port are marked with the ◊ icon (symbol). Align the
symbols before you insert the plug. (The positions of the port and icon on
your keyboard may be different from those pictured here.)
By the way: A port marked with the ◊ icon is called an Apple Desktop Bus
(ADB) port.
2 Plug the keyboard cable (both ends are the same) into the other port on the keyboard.
If you plugged the mouse cable in on the right, for example, plug the keyboard
cable in on the left.
3 Plug the keyboard cable into the port marked with the ◊ icon on the back of
the computer.
Some monitors have a port to which you can connect the keyboard or mouse.
See the information that came with your monitor.
ADB icon
Connecting other equipment
If you are new to the Macintosh, it’s a good idea to get some experience using
your computer before you connect other equipment, such as a printer or
scanner. To learn basic Macintosh skills, continue with the instructions in
this chapter.
When you’re ready to connect other equipment to your Macintosh, see the
instructions in Chapter 3.
10 Chapter 1
Turning the computer on
To turn on the computer for the first time, follow these steps:
1 Turn on your computer by pressing the Power key on the keyboard.
The Power key is marked with a triangle. Its location depends on which
keyboard you have.
You hear a tone from the computer as it starts up.
Getting Started 11
2 Turn on your monitor.
See the information that came with your monitor for the location of the power
switch. On Apple monitors, the power switch is located on the front of the
unit.
By the way: You only need to turn on the monitor once. From now on, the
monitor will turn off automatically when you shut down the computer, and it
will turn on automatically when you start up the computer. (If the monitor is
not plugged into the computer, it must be turned on separately each time you
turn on the computer.) If you have extra DRAM installed in your computer, it
can take several seconds for larger monitors to turn on. (The screen remains
black.)
3 Check to see what’s on your screen.
m If you see a message about saving energy, read the information and click
“Close Message.”
m If you see the Macintosh desktop, shown here, your system software is
already set up correctly. Skip now to “What’s Next?”
m If you see a blinking question mark, see “Solutions to Common Problems”
in Chapter 6.
m If you see anything else on your screen, or if you see nothing at all, see the
next section, “Problems Turning Your Computer On?”
12 Chapter 1
Macintosh desktop
Hard disk icon
Problems turning your computer on?
If you don’t see anything on the screen, check these items to see if you can
identify the problem:
m Is the computer plugged into a power source? If it is plugged into a power
strip, is the power strip turned on?
m Is the computer turned on? The power-on light on the front panel should
be on. If it isn’t on, press the power button (marked with the symbol I).
m Are the keyboard and mouse cables connected correctly? (Don’t connect or
disconnect the keyboard or mouse cable while the computer is on. You
could damage your equipment.)
m Is the monitor power cord plugged in?
m Is the monitor turned on? (Check the power-on light on the front of the
monitor.)
m Is the monitor cable attached firmly to both the monitor and computer?
m Is the brightness control on the monitor adjusted correctly? (On most
monitors, the brightness control is marked with the symbol ¤.)
What’s next?
You’ve finished setting up your computer. Continue with one of the
following steps:
m If you are new to the Macintosh, turn to the next section, “Learning
the Basics.”
m If you are an experienced Macintosh user, turn to Chapter 2, “Getting
Help,” to learn about Macintosh Guide, your main source of information
when you’re working with the Macintosh.
m If you want to connect additional equipment, such as a microphone, to your
computer, see Chapter 3 of this book for instructions.
m If you want to install application software on your computer, see Chapter 4
of this book for information on setting up your programs and managing
memory. You’ll need this information to properly set up any software
programs specifically designed for Power Macintosh computers.
IMPORTANT If you need to turn off your computer at any point, please see
“Turning the Computer Off” later in this chapter. It is very important to use
the correct procedure for shutting down your Macintosh before turning it off.
Getting Started 13
Learning the basics
If you are new to the Macintosh, you should begin by looking at the easy-touse
program called the Macintosh Tutorial. The tutorial teaches you the
basic skills you’ll need to use your computer. To start the tutorial, follow
these steps:
1 Slide your mouse along your mouse pad or desk.
Hold the mouse as shown, with the cable pointing away from you. Rest the
heel of your palm on the desk and grasp the sides of the mouse between your
thumb and fingers. Use your wrist and fingers to slide the mouse around with
the index finger resting on the mouse button. Don’t press the mouse button
(under your index finger). Notice that the arrow (8) on the screen moves in
the same direction that you move the mouse.
If the arrow doesn’t move, make sure that the cables connecting the mouse
and keyboard are secure and that your mouse is positioned as shown in
the illustration.
Mouse button
14 Chapter 1
2 Move the tip of the arrow (8) to the question mark (h) in the upper-right portion of
the screen.
If you run out of room on your mouse pad or desk while moving the mouse,
pick up the mouse and place it where there’s more room. (The arrow on the
screen moves only when the mouse is in contact with the mouse pad or desk.)
3 With the tip of the arrow on the question mark, press and hold down the mouse button.
A list of choices (called a menu) appears. This is the Guide (h) menu, which
is the place to go when you have a question about how to use your computer.
4 While holding down the mouse button, move the arrow until the words “Macintosh
Tutorial” are highlighted, then release the mouse button.
A window appears welcoming you to the tutorial. You can set this book aside
for now and follow the instructions on the screen. When you have completed
the tutorial, return to this book.
Getting Started 15
Reviewing the basics
You can use the following illustrations to review the elements you use on your
screen to do work with your computer.
Menus
The strip across the top of the screen is called the menu bar. The symbols and
words in it represent menus of commands. To open a menu, place the pointer
on the symbol or word for the menu and press the mouse button.
16 Chapter 1
Menu
Window
Icons
Application menu
You can have several
application programs open at
once. To see which program is
active or to switch from one
program to another, use this
menu (called the Application
menu).
Guide menu
To find an answer to a question,
look in the Guide (h) menu.
Icons
Icons are small pictures that represent disks, programs, documents, and
folders. You can double-click any icon to open it and see what it contains.
This icon represents your computer’s internal hard disk.
Icons like this one represent application programs, which you use to create
documents and do other work.
Icons like this one represent documents, which you can create and edit.
Icons like this represent folders. A folder contains other icons.
To throw away an item you no longer want, drag it to the Trash icon and choose
Empty Trash from the Special menu.
Windows
Windows are boxes that display text, graphics, or icons. To change the shape
or position of a window, or to close the window, use the elements shown here.
Getting Started 17
Scroll arrow
To bring hidden portions
of a window’s contents into
view, click one of the four
scroll arrows.
Close box
To close a window,
click the close box.
Title bar
To move a window, drag it by the middle of the title
bar (anywhere in the bar except the small boxes).
Size box
To change the shape or size of
a window, drag the size box.
To bring a partially
covered window
to the front, click
anywhere in it.
18 Chapter 1
Turning the computer off
To turn your computer off, you choose Shut Down from the Special menu.
Detailed instructions follow.
1 Move the tip of the arrow (8) to the word “Special” at the top center of the screen.
If the word “Special” does not appear at the top of the screen, you’re working
in the wrong program. Pull down the Application menu (to the right of the
Guide [h] menu) and choose Finder. Then try step 1 again.
2 With the tip of the arrow on the word “Special,” press and hold down the mouse button.
3 While holding down the mouse button, move the arrow down until the words “Shut
Down” are highlighted, then release the mouse button.
Choosing Shut Down readies the hard disk for a fast restart next time you turn
on the computer. It also prompts you to save any unsaved work on a disk
before turning the power off.
To turn the computer on again, just press the Power key on the keyboard.
IMPORTANT The power button on the front of the computer should not be
used to turn off your computer unless there is a problem that prevents it from
being turned off with the Shut Down command. (You could lose unsaved
work.) To make sure your work is saved, use the Shut Down command.
Getting Started 19
Where to find answers
When you have questions about using your Macintosh, there are several
places you can look for answers.
In this book
Use this book to help you set up your computer and learn about it,
or to find solutions to problems with your equipment.
In the Guide menu
The Guide menu (marked with the hicon) is your main source
of information about the Macintosh. To learn how to get different
kinds of help from the Guide menu, see Chapter 2 in this book.
In other manuals
For answers to questions about other equipment or about
application programs you have purchased, see the manuals
that came with the equipment or programs.
In documents in the Apple Extras folder
The Apple Extras folder on your hard disk contains a SimpleText
document called About Apple Extras (often called a “Read Me” file)
with important information about some of the application programs
included with your computer. Read Me files can also be found
inside application folders.
From Apple’s customer support hotline
If you can’t find an answer in any of the materials provided, call the
customer support hotline. (The phone number for the hotline is in
the service and support information that came with your computer.)
If you have problems with a particular application program, contact the
manufacturer of the program.
User’s Guide
Power Macintosh
21
The Guide menu is your main source of information when you’re working
with your computer. The menu is identified by a question mark (h) in the
upper-right corner of the screen.
2 Getting Help
Use the instructions in this
chapter to learn about the help
available to you in the Guide menu.
Getting answers to your questions
When you have a question while working with your computer, you can get the
answer by choosing Macintosh Guide from the Guide menu.
1 Pull down the Application menu (in the upper-right corner of the screen) and choose
Finder to make it the active application program.
A checkmark in the menu indicates that the Finder is the active program.
2 Pull down the Guide menu (marked with the hicon) and choose Macintosh Guide.
The Macintosh Guide window appears.
Whenever you use Macintosh Guide, its window remains in front of other
windows. If the window gets in your way, you can move it by dragging its
title bar (the gray bar across the top of the window).
22 Chapter 2
3 Notice the three buttons at the top of the window: Topics, Index, and Look For.
Macintosh Guide gives you three ways of finding information:
m Topics lets you choose from a list of general subjects; it is like the table of
contents in a book.
m Index lets you choose from an alphabetical list of more specific subjects; it
is like the index in a book.
m Look For lets you search for information related to a specific word or phrase
that you type.
In the following sections you will practice using each method.
If you have problems while using Macintosh Guide, see “Tips for Using
Macintosh Guide” at the end of this section.
Getting answers with the Topics button
1 In the Macintosh Guide window, click the Topics button.
A list of general topics appears on the left side of the Macintosh Guide
window. (Depending on the hardware and software you have, the list of topics
may look different.)
Getting Help 23
2 Click “Customizing Your Computer” or “Setting Options” (whichever is available) in the
list of topics.
When you click any topic area, a list of related questions appears on the right
side of the Macintosh Guide window.
3 Click the question “How do I set the time and date?” and then click OK. Or double-click
the question.
A small window appears with instructions for you to follow.
4 Read and follow the instructions in this window.
Macintosh Guide provides step-by-step instructions to answer the question
you selected. When you have completed each step, click the right arrow in the
lower-right corner to see the next step.
5 When you have completed all the steps, click the Topics (or h) button in the lower-left
corner to return to the main Macintosh Guide window.
Now continue with the next section.
24 Chapter 2
Click here to see the next
step (if there is one).
To get instructions,
click a question…
…and then click OK.
If you want to
return to the main
Macintosh Guide
window, click this
Topics button. (On
some computers, it
says “Topics.”)
Getting answers with the Index button
1 In the Macintosh Guide window, click the Index button.
An alphabetical list of subjects appears on the left side of the window.
2 Scroll through the alphabetical list until the phrase “background pattern” is visible.
You can scroll through the list either by dragging the slider to the letter B or
by using the scroll bar at the right of the list.
3 Click the phrase “background pattern” in the alphabetical list.
When you click any index entry, a list of related questions appears on the
right side of the Macintosh Guide window.
Getting Help 25
Scroll bar
Slider
To get instructions,
click a question…
…and then click OK.
4 Click the question “How do I change the background pattern?” and then click OK. Or
double-click the question.
A small window appears with instructions for you to follow.
5 Read and follow the instructions in the window.
Macintosh Guide provides step-by-step instructions to answer the question
you selected. When you have completed each step, click the right arrow in the
lower-right corner to see the next step.
6 When you have completed all the steps, click the Topics (or h) button in the lower-left
corner to return to the main Macintosh Guide window.
Now continue with the next section.
26 Chapter 2
Click here to see the next
step (if there is one).
If you want to
return to the main
Macintosh Guide
window, click this
Topics button. (On
some computers, it
says “Topics.”)
Getting answers with the Look For button
1 In the Macintosh Guide window, click the Look For button.
A small box appears on the left side of the window, where you can type text.
2 Click the arrow button to activate the text box.
3 Type “trash” in the text box and then click Search.
When you click Search, a list of questions related to the word or phrase you
typed appears on the right side of the Macintosh Guide window.
Getting Help 27
To activate the text
box, click here.
Type a word or phrase
in the text box…
…and then click here.
To get instructions,
click a question…
…and then click OK.
4 Click the question “How do I turn off the Empty Trash warning?” and then click OK. Or
double-click the question.
A small window appears with instructions for you to follow.
5 Read and follow the instructions in the window.
Macintosh Guide provides step-by-step instructions to answer the question
you selected. When you have completed each step, click the right arrow in the
lower-right corner to display the next step.
6 When you have completed all the steps, click the close box in the upper-left corner to
close Macintosh Guide.
28 Chapter 2
If you want to close
Macintosh Guide,
click here.
Click here to see the next
step (if there is one).
Getting Help 29
Tips for using Macintosh Guide
Here are a few tips for using Macintosh Guide effectively:
m Macintosh Guide is available only when you are in the Finder—the
desktop area where you can see the icons of disks, folders, and files.
(Other programs may also have help available in the Guide menu,
however.) If you don’t see Macintosh Guide in the Guide menu, pull
down the Application menu (to the right of the Guide menu) and
choose Finder.
m Follow the steps when you’re instructed to; don’t skip ahead or read
ahead. That way the computer can check to make sure you’ve done a
step correctly.
m Unlike most windows, the Macintosh Guide window stays in front of
other windows on the screen so that your instructions are never
covered. If you need to move the Guide window out of the way, drag
it by the title bar at the top of the window.
You can also move the window out of the way by clicking the zoom
box. Click the box once to shrink the window; click it a second time
to expand the window to its original size.
m If you need more information about an instruction or a term, click the
button labeled “Huh?” to get further explanation. (The “Huh?” button
is dimmed when no additional information is available.)
m If you want to return to the main Macintosh Guide window, click the
Topics button in the lower-left corner of the Guide window.
m When you’re finished using Macintosh Guide, click the close box in
the upper-left corner of the window.
Close box Title bar
Zoom box
Right arrow
Topics button “Huh?” button
30 Chapter 2
Identifying objects on the screen
Sometimes you’ll see an unfamiliar item on the screen and ask yourself,
“What’s that?” You can get an answer by using a Macintosh feature known as
Balloon Help.
Balloon Help explains the function of icons, menus, commands, and other
items on the Macintosh screen in balloons like those you see in comic strips.
Follow these steps to use Balloon Help:
1 Pull down the Guide menu (marked with the hicon) and choose Show Balloons.
2 Point to any object on the screen that you want to identify.
A balloon appears next to the object. In the following illustration, for
example, pointing to the Trash displays a balloon that explains how to use the
Trash to throw items away.
Although balloons appear next to items when you point to them, the way
you work does not change; you can still select icons, choose commands, and
so on.
3 When you’re finished using Balloon Help, choose Hide Balloons from the Guide menu.
Learning useful shortcuts
You can perform many tasks in the Finder more quickly if you use keyboard
or mouse shortcuts. For example, instead of clicking an icon and choosing
Open from the File menu, you can simply double-click the icon to open it.
Follow these steps to learn keyboard and mouse shortcuts:
1 Pull down the Guide menu (marked with the hicon) and choose Shortcuts.
The main Macintosh Shortcuts window appears.
2 Click one of the category buttons.
Another window appears, describing shortcuts for that category.
Getting Help 31
If you want to
close the window,
click here.
Click here to see the next
window (if there is one).
Click the Topics
button to return to the
main Macintosh
Shortcuts window for
more categories.
3 Read about the shortcuts available for the category you selected.
Click the right arrow in the lower-right corner of the window to display the
next window (if there is one).
4 When you finish reading about the shortcuts for your category, click the Topics button in
the lower-left corner to return to the main Macintosh Shortcuts window. Or click the
close box in the upper-left corner to close the window.
32 Chapter 2
33
3 Connecting Additional Equipment
Your computer at a glance
The illustration on the next page shows a basic Power Macintosh 9500
system, ready to use. (Remember that your monitor and keyboard may appear
slightly different from the ones pictured here, depending on what you
purchased.)
You can also expand your computer system by connecting other equipment to
it. The illustration on the facing page shows where equipment should be
connected to your Macintosh.
For instructions on connecting audio equipment or SCSI devices, refer to the
next two sections of this chapter. For instructions on connecting other
equipment, such as a CD-ROM player (also called a CD-ROM drive), see the
manual that came with the equipment.
IMPORTANT Make sure each device you add is compatible with your computer
and does not exceed the maximum power allowance for that device. If it is a
SCSI or ADB device, make sure to turn off your computer before connecting
the device. For further information, consult your Apple-authorized dealer, the
manufacturer of the component you want to add, or the Technical Information
booklet that came with your computer.
Read this chapter for information on
expanding your computer system
with additional hardware.
34 Chapter 3
Your computer’s ports and connectors
SCSI port g Connects your Macintosh to SCSI equipment such as external
hard disk drives and scanners.
Ethernet port (AAUI) G Connects your Macintosh to a high-speed Ethernet network
using an adapter.
Ethernet port (10BASE-T) G Connects your Macintosh to a high-speed 10BASE-T Ethernet
network.
Modem port (GeoPort) W Connects an external modem or GeoPort Adapter to your
Macintosh.
Printer port (GeoPort) [ Connects your Macintosh to a printer, LocalTalk network, or
GeoPort Adapter.
Monitor port ™ Connects a monitor to a monitor (video) card.
Monitor
Microphone
(optional)
Keyboard Mouse
CD-ROM drive
(optional)
Floppy disk drive
Hard disk drive
(internal)
Power-on light
A green light
indicates that the
computer is on.
Power button
CD-ROM drive
Open/Close button
Power key
Use this key
to turn your
computer
on and off.
P
Connecting Additional Equipment 35
Apple Desktop Bus V Connects your Macintosh to an input device, such as a
(ADB) port keyboard or a trackball.
Sound input port ≈ Connects your Macintosh to an Apple PlainTalk Microphone
or other audio input equipment.
Sound output port - Connects your Macintosh to headphones, externally
powered (amplified) speakers, or other audio output
equipment.
Access covers for Your Macintosh supports up to six Peripheral Component
expansion slots (6) Interconnect (PCI) cards.
Security lock ports F You can attach a security lock to your Macintosh. See your
computer products retailer for security lock devices that
work with your computer.
Monitor power socket
Monitor port (optional)
SCSI port
Ethernet port (AAUI)
Sound output port
Apple Desktop Bus (ADB) port
Sound input port
Power socket
Access covers for
expansion slots (6)
Security lock ports
Modem port (GeoPort)
Printer port (GeoPort)
g
G
GEthernet port (10BASE-T)
W
[
™
≤
V
≈
-
F
Connecting audio equipment
Your Macintosh can play and record stereo sound from a variety of sources.
You can listen to or reproduce stereo sound by connecting audio equipment to
the sound input and output ports on the computer. If you have an internal
CD-ROM player, you can also use your computer to play and record sound
from audio compact discs (CDs).
For information on using Macintosh system software to choose audio input
and output options, record an alert sound, or play audio CDs, see the “Sound”
topic of Macintosh Guide, available in the Guide (h) menu.
About your computer’s sound ports
The sound input port is marked with an icon of a microphone. The sound
output port is marked with an icon of a speaker.
Sound input port
Sound output port
36 Chapter 3
Connecting Additional Equipment 37
The computer’s sound ports accept these 3.5 mm audio connectors:
The stereo miniplug is found most often on stereo equipment (for example,
personal headphones). The extended miniplug is slightly longer and is
found on voice-quality microphones (for example, the Apple PlainTalk
Microphone). If your equipment has a different type of connector, you can
purchase an adapter at an electronics supply store.
Connecting audio equipment
To play or record sound with your Macintosh, you can attach a microphone,
amplifier, tape recorder, or a pair of speakers.
For specific instructions on connecting a microphone, skip to the next
section, “Connecting and Positioning a Microphone.” For specific instructions
on connecting speakers, see “Connecting External Stereo Speakers,” later in
this section.
Follow these steps to connect audio equipment to the Macintosh:
1 Make sure that the audio equipment has a cable with a stereo miniplug connector.
If it does not, attach an adapter that has a stereo miniplug.
2 Place the audio equipment near the Macintosh.
3 Shut down the Macintosh and turn off the audio equipment.
4 Attach the cable to the audio equipment and to the appropriate sound port on the
Macintosh.
To record incoming sound on the computer, connect the audio equipment to
the sound input port (X).
To record the sound produced by the computer or play that sound through
external speakers, connect the audio equipment to the sound output port (-).
5 Turn on the computer and the audio equipment.
Stereo miniplug Extended miniplug
You’re now ready to begin listening to and working with sound. For more
information on working with sound, see the “Sound” topic of Macintosh
Guide, available in the Guide (h) menu.
Connecting and positioning a microphone
With appropriate software, you can use the Apple PlainTalk Microphone that
comes with some Macintosh computers (or a compatible line-level
microphone) to record your voice or other sounds.
You can’t use the round, omnidirectional microphone supplied with some
other Macintosh models.
Follow these steps to connect and position the microphone:
1 Shut down the Macintosh.
2 Plug the microphone’s connector into the sound input port (X) on the back of the
computer.
3 Place the microphone at the top center of the monitor, so that the microphone’s
Apple (K) icon is facing you.
Apple PlainTalk Microphone
38 Chapter 3
Connecting Additional Equipment 39
If you can’t place the microphone on top of the monitor, position the
microphone according to these guidelines:
m The microphone should be between 1 and 3 feet away from you.
m The microphone should be directly in front of you to minimize the
effect of background noises.
4 Turn on the computer.
You’re now ready to begin using your microphone.
Connecting external stereo speakers
You can take advantage of your computer’s stereo sound output by attaching
externally powered (amplified) speakers.
1 Assemble the speakers and the cable you need.
You need a cable with a stereo miniplug at one end to connect one or both
speakers to the computer. (Some speakers require a dual-plug adapter.
Others, like those shown in the next illustration, accept a single stereo
miniplug and are joined by standard speaker wires.) See the documentation
that came with your speakers for more information.
2 Turn off the Macintosh.
3 Plug a stereo miniplug into the sound output port (-) on the Macintosh.
4 Connect the speakers together with speaker wires, if necessary.
Your finished connections should look something like this:
Audio In port
Sound
output
port
-
Externally
powered
speakers
5 Turn on the computer.
Now you hear the computer’s sound through the external speakers.
Note: To control the volume of your external speakers, open the Sound
control panel and choose Volumes in the pop-up menu. Use the Built-in
Headphones slider to adjust the volume for your external speakers. If you are
playing an audio CD, you may also need to adjust the volume control in the
program you’re using to play CDs.
Connecting external SCSI devices
Your computer has a port for connecting devices that use the Small Computer
System Interface (SCSI, pronounced “skuh-zee”). The SCSI port permits
high-speed communication between the computer and the device. The SCSI
icon appears above the port on the computer’s back panel.
You can connect SCSI devices to the SCSI port in a chain. The first device in
the chain plugs into the SCSI port; the second device plugs into the first
device, and so on. SCSI devices commonly used with the Macintosh include
hard disk drives, CD-ROM players, scanners, printers, and tape or cartridge
backup drives. You can attach up to seven SCSI devices to the external SCSI
port of your computer.
Note: In addition to the external SCSI port, your computer has a second,
internal SCSI interface. The internal hard disk drive that came with the
computer and the optional CD-ROM player are connected to this internal
SCSI interface. You can have an Apple-authorized dealer attach an additional
device to the internal SCSI interface. For more information about the SCSI
interfaces, see the Technical Information booklet that came with your
computer.
SCSI port
SCSI icon
40 Chapter 3
IMPORTANT “Before You Connect a Device” and “Connecting a SCSI Device”
contain general instructions for attaching SCSI devices to your computer. Be
sure also to follow the specific instructions that came with your external hard
disk drive or other SCSI device when connecting the device to your
Macintosh.
Before you connect a device
Before you connect a SCSI device to your Macintosh, be sure to complete
these tasks:
m Install any necessary device drivers (software that makes a device work
with your computer). Drivers needed for a SCSI device usually come on a
floppy disk with the device. (If no drivers come with the device, then the
device doesn’t need drivers.) Be sure the drivers are designed for Power
Macintosh.
m Make sure each SCSI device connected to your Macintosh has its own,
unique ID number from 0 to 6 (or from 1 to 6 if you have a second internal
hard disk installed). See the instructions that came with each SCSI device
for information on checking and setting its SCSI ID number.
IMPORTANT If you use two or more devices with the same ID number, your
equipment could malfunction and you could lose data as a result.
m Make sure you have the appropriate cable for attaching the SCSI device to
your Macintosh.
If the device is the first or only one you’re connecting, use a SCSI system
cable to connect it to the computer’s SCSI port.
Connecting Additional Equipment 41
If the device is not the first one, use a SCSI peripheral interface cable to
connect it to the last device in the chain.
IMPORTANT The total length of the cables in a SCSI chain should not exceed
6 meters (20 feet). SCSI cables must have a 110-ohm impedance. For best
results, use SCSI cables manufactured by Apple Computer.
m Make sure that the last (or only) device in the SCSI chain has a terminator.
Make sure that no other external SCSI device has a terminator.
To ensure accurate transmission of information, a terminator must be at
each end of a SCSI chain.
Some external SCSI devices from manufacturers other than Apple have
built-in terminators. (Check the information that came with the device.) If
the device at the end of the SCSI chain does not have a built-in terminator,
you need to attach an external terminator.
If your SCSI device has a built-in terminator, you may choose to use it as
your first or last device in the chain, or you may have your Apple-authorized
service provider remove any extra built-in terminators. You can attach or
remove external terminators yourself.
SCSI terminator
42 Chapter 3
Connecting a SCSI device
Use these general instructions in conjunction with the instructions that came
with your SCSI device:
1 Turn off your Macintosh.
2 Make sure the SCSI device is switched off.
3 Use a SCSI cable to connect the device either to the computer’s SCSI port or to the last
SCSI device already in the chain.
4 Turn on the devices in your SCSI chain.
IMPORTANT Always turn on any external SCSI devices connected to your
Macintosh before turning on the computer itself. Otherwise, your computer
won’t be able to recognize that the SCSI devices are connected to it and your
computer may not be able to start.
Note: If you experience problems after connecting a SCSI device, see the
troubleshooting information in Chapter 6 for possible solutions.
WARNING Do not connect or disconnect any device while the device or
your Macintosh is turned on. Doing so could damage the device, your
computer, or both.
Connecting Additional Equipment 43
Expanding memory
The dynamic random-access memory (DRAM) in your computer can be
expanded. Installing additional DRAM adds more memory to your computer
and expands its capabilities. The Technical Information booklet that came with
your computer describes how much additional memory can be installed in
your Power Macintosh.
Memory for your computer is provided in packages called DRAM Dual Inline
Memory Modules (DIMMs). The DIMMs must be the correct type for your
computer.
The memory used to display images on the screen (called video RAM, or
VRAM) can also be expanded.
It is very important that the DRAM DIMMs be correctly installed in your
Power Macintosh, because incorrect installation can result in errors,
unpredictable results, and damage to your equipment and data.
Installing internal drives
Your Macintosh can hold up to four internal storage devices. Possible
configurations could include a floppy disk drive, a CD-ROM player, and two
hard disk drives (several capacities are available) or a CD-ROM player, a
floppy disk drive, a removable hard drive, and a DAT drive. Depending on the
configuration you purchased, these storage devices may already be installed.
If you want to add an internal drive to your Macintosh, see your Appleauthorized
dealer. Refer to the Technical Information booklet that came with
your Macintosh for more information about internal drives.
WARNING To avoid damage to your computer, Apple recommends that
only an Apple-certified technician install additional DRAM. Consult the
service and support information that came with your computer for
instructions on how to contact an Apple-authorized service provider or
Apple for service. If you attempt to install additional DRAM yourself,
any damage you may cause to your equipment will not be covered by
the limited warranty on your computer. See an Apple-authorized dealer
or service provider for additional information about this or any other
warranty question.
44 Chapter 3
Connecting Additional Equipment
Connecting network cables
Your Macintosh can be connected to a high-speed Ethernet network via an
AAUI Ethernet connector or a high-speed 10BASE-T Ethernet connector. You
can also connect to a LocalTalk network.
It is possible to be physically connected to more than one kind of network at
the same time, but you can use only one of your connections at a time. If both
10BASE-T and AAUI networks are connected, your Macintosh automatically
uses the 10BASE-T connection. If 10BASE-T and LocalTalk are connected,
your Macintosh uses the 10BASE-T connection. If AAUI and LocalTalk are
connected, your Macintosh uses the AAUI connection.
About Macintosh networking
Your Power Macintosh can connect to a network that consists of as few as two
computers or as many as thousands or even millions of computers and other
devices. The network allows you and the other people connected to it to share
information, access remote services, and share computing resources such as
printers and modems.
A network extends the features of your Macintosh by extending your reach to
the services and resources provided on the network. For example, your
computer alone lets you store, retrieve, and modify information on floppy
disks, hard disks, and CD-ROM discs. On a network, however, you can also
store and retrieve information on the hard disks and CD-ROM discs of other
computers, access information that other people have stored for you, or use
mail or other network services.
Your computer comes equipped with two built-in network interfaces:
LocalTalk and Ethernet. You can also purchase additional Peripheral
Component Interconnect (PCI) cards for alternative networks such as
TokenRing, ISDN, or FDDI.
To connect your computer to a network you need to do two things: connect
your computer to the network using the appropriate cable, and set up your
network configuration in the AppleTalk control panel, the TCP/IP control
panel, or both.
45
To set up your network configuration, open the AppleTalk control panel to
choose the physical network interface you are using. (The AppleTalk control
panel also contains zone information—a default zone is chosen for you.) If
you plan to use TCP/IP on your Power Macintosh, you also need to choose
settings in the TCP/IP control panel. You can set up your connection in two
ways: manually, by entering a static Internet address, or automatically by
using a network service to connect with a dynamic Internet address. Refer to
the “Networks” or “Networking & Communications” topic of Macintosh
Guide, available in the Guide (h) menu for more information on setting up
network configurations.
If you’re using a static Internet address, you’ll need the following information
before configuring your system (your network administrator or Internet
access provider can provide this information):
m Internet (IP) address: for example, 192.3.232.55
m Domain name and domain name server address: A domain connects an Internet
address to a name for your site, for example, acme.com. Enter your Domain
name or type a period (.).
m Gateway address: This address provides the path the information will take
through the network at your site to reach the Internet.
m Subnet mask: A subnet mask further defines the location of your machine.
You don’t need to change the default unless instructed to do so by your
network administrator.
If you’re using a server on the network that will be issuing you an Internet
address using a technique called bootstrapping, then you need to decide what
protocol you will use: BOOTP (BOOTstrap Protocol), or DHCP (Dynamic
Host Configuration Protocol). Your network administrator will tell you which
to choose.
If you see an error message after configuring your AppleTalk and TCP/IP
control panels, such as, “Unable to locate host,” or “Could not create a
socket,” this could indicate a problem in the TCP/IP configuration. Contact
your network administrator for additional assistance.
46 Chapter 3
47
Read this chapter for information on
installing and working with application
programs on your computer.
Your computer has several application programs already installed, as well as
some programs that need to be installed before you can use them. The
programs that come with your computer include
m AppleScript, which allows you to automate any actions you perform
repeatedly on your Macintosh
m Drive Setup, which enables you to initialize, test, and update hard disks and
other storage media. Drive Setup lets you partition very large disks (up to 2
terabytes)
m PowerTalk, which provides built-in mail and collaboration services
m QuickDraw GX, which gives your computer more powerful printing and
typographical capabilities
m Text-to-speech software that allows your Macintosh to speak typed text in
compatible applications such as SimpleText
You’ll find most of these plus other programs in the Apple Extras folder on
your hard disk. (Drive Setup is in the Utilities folder.) To find out if a program
needs to be installed, look inside the program’s folder for an icon labeled
Installer. If you find an Installer icon and want to use that program, doubleclick
the Installer and follow the instructions on the screen.
4 Installing and Using Application Programs
IMPORTANT If your computer did not come with a CD-ROM player and you
did not get the CD-ROM disc that contains system software, be sure to make a
backup copy of the programs in the Apple Extras folder. Backup copies allow
you to restore your software if anything should go wrong. It is always a good
idea to make backup copies of application programs and other software.
Installing application programs
You’ll probably want to buy and install additional programs. See the manuals
you receive with your programs for instructions on installing and using them.
In most cases, you’ll install an application program on your internal hard disk
from a CD-ROM disc that contains the program. The illustration shows how
to insert a CD-ROM disc into your computer’s disk drive, with the disc lying
flat, label side up.
For instructions on how to eject CD-ROM discs, see “Ejecting a CD-ROM
Disc” in Chapter 5. Some application programs come on floppy disks. See the
“Disks” topic of Macintosh Guide, available in the Guide (h) menu for
information on inserting and ejecting floppy disks.
48 Chapter 4
To use your programs most effectively, follow these guidelines:
m To avoid installation problems, turn off virus protection programs and use
Apple Extensions Manager to turn off system extensions (except for
Macintosh Easy Open) before you install any software. To start Apple
Extensions Manager, restart your computer while holding down the space
bar. Use Apple Extensions Manager to turn off all system extensions except
Macintosh Easy Open (this extension is needed to rebuild the desktop
correctly). To turn extensions back on, use Apple Extensions Manager to
turn them on, then restart your computer.
m Put only one copy of each program on your hard disk. Having more than
one copy can cause errors.
m Whenever you copy a program disk to your hard disk, be careful not to
copy a System Folder. Always check to see what you’ve copied, and drag
any extra System Folders to the Trash.
m If a program malfunctions consistently, try installing a fresh copy. If that
doesn’t help, find out from the software manufacturer whether your version
of the program is compatible with the hardware and system software you’re
using.
Working with several programs at a time
You can open as many application programs and desk accessories as your
computer’s memory allows.
All open programs are listed in the Application menu at the right end of the
menu bar. The name of the active program (the one you’re using right now)
has a checkmark next to it, and its icon appears in the menu bar.
Installing and Using Application Programs 49
The Finder icon
Commands to hide or
display open windows
A checkmark Open programs
indicates the active
program.
50
Finding out which programs are open
If you have several programs and windows open, you can find out which
program is active and which other programs are open by pulling down the
Application menu.
Switching programs
You can switch to another open program or desk accessory by choosing its
name from the Application menu.
If a program’s icon is dimmed in the menu, that means its windows are
hidden. Choosing the program from the Application menu displays its
windows.
You can also switch to another program by clicking in a window that belongs
to an open program, by double-clicking a program icon, or by double-clicking
the icon of a document that was created with the program.
Hiding and showing windows on the desktop
You can hide all windows except those of the active program by choosing
Hide Others from the Application menu.
The other programs remain open even though their windows are hidden.
When you switch to another program, its windows become visible again.
If you want to see all the open windows, choose Show All from the
Application menu.
Chapter 4
Backing up your files
Making backup copies of important files is good protection against possible
damage to the originals.
m You can back up files stored on your hard disk by copying them to floppy
disks.
m You can back up an entire floppy disk by copying it to another floppy disk
of the same capacity or larger, or by copying it to a hard disk.
m You can use a commercial backup program to copy new and changed files
from a hard disk to another hard disk, to a tape drive, or to a series of
floppy disks.
m If your computer is on a network, you may be able to back up files by
copying them to a shared disk on the network.
Using Power Macintosh application programs
Your Power Macintosh is compatible with most application programs
intended for use with Macintosh computers. But certain programs are
designed especially for Power Macintosh computers. (These are sometimes
called “native” applications.) You’ll find that these programs take best
advantage of your computer’s speed.
Special memory requirements
Some Power Macintosh programs may be slightly larger than other programs
and may take up more memory. If you find that you are running out of
memory when you use your Power Macintosh programs, you can use space
on your computer’s hard disk as additional memory. For instructions on how
to use hard disk space as memory, see the “Memory” topic of Macintosh
Guide, available in the Guide (h) menu.
You can also have more memory added to your computer, as described in
“Expanding Memory” in Chapter 3.
Installing and Using Application Programs 51
Shared libraries
Power Macintosh programs use special files called shared libraries. These files
help Power Macintosh programs to run more efficiently, and can be used by
more than one Power Macintosh program simultaneously. Any necessary
shared libraries are installed automatically in the System Folder when you
install Power Macintosh programs.
If a Power Macintosh program requires a shared library and there is not
enough memory available for the shared library, you’ll see a message that
the program could not be opened because of insufficient system memory. If
this happens, see the “Memory” topic of Macintosh Guide, available in the
Guide (h) menu, for instructions on turning on virtual memory.
If a required shared library is missing, you’ll see a message that the program
could not be opened because the shared library could not be found. If this
happens, follow the directions that came with your program to reinstall the
program. If the shared library is still missing, contact the program’s
manufacturer for assistance.
52 Chapter 4
53
This chapter provides information on the optional CD-ROM player. Refer to
Appendix A, “Health, Safety, and Maintenance Tips” for information on the
proper handling of these discs.
Your internal CD-ROM (Compact Disc Read-Only Memory) player for
Macintosh computers works with CD-ROM discs, standard audio compact
discs (CDs), and single-session or multisession Photo CDs. Your CD-ROM
player provides access to large amounts of information. However, you cannot
save information on CD-ROM discs. ROM stands for read-only memory,
meaning that the player cannot “write” information onto CD-ROM discs.
A wide selection of CD-ROM discs is available for entertainment, education,
and business. A typical disc can hold over 650 megabytes (MB) of
information—the equivalent of 270,000 pages of text, up to 8 hours
of speech or music (depending on the sound quality), hundreds of highresolution
images, or any combination of text, sound, and graphics.
5 Using the Optional CD-ROM Player
Read this chapter for information on
using the internal CD-ROM player,
if your computer has one.
54 Chapter 5
Inserting a CD-ROM disc
Follow these instructions to insert a CD-ROM disc into your CD-ROM
player. Then follow the instructions provided with your disc, as well as the
instructions in this manual.
1 Start up your Macintosh computer, if it’s not already on.
2 Press the Open/Close button to open the tray of the CD-ROM player.
The tray opens.
3 Place a CD-ROM disc in the tray, with the disc label facing up.
Make sure the disc is lying flat and centered in the tray. If you are using a
small (8 cm) disc, make sure it is centered within the inside ring on the tray.
4 Push the tray in, or press the Open/Close button, to close the tray.
In a few moments, an icon for the CD-ROM disc appears on your screen.
Open/Close button
Using the Optional CD-ROM Player 55
Ejecting a CD-ROM disc
Follow these instructions to open the tray and eject a CD-ROM disc from
your computer.
IMPORTANT You may not be able to eject a disc if it is being shared. To turn
off file sharing, use the Sharing Setup control panel.
1 Open the tray.
There are several ways to open the tray of your CD-ROM player.
If a CD-ROM disc icon appears on your screen:
m Select the disc icon on your screen and drag the icon to the Trash.
m Click the disc icon, then choose the Put Away command in the File menu.
m While the AppleCD Audio Player window is active, choose Eject CD from
the File menu, or simultaneously press the x and E keys. (AppleCD Audio
Player is a program that allows you to control your CD-ROM player and is
available in the Apple [K] menu.)
If no CD-ROM disc icon appears on your screen:
m Press the Open/Close button for your CD-ROM player.
2 Take the CD-ROM disc out of the tray.
Store your disc in a safe place, away from heat, dust, and moisture.
3 Push the tray in, or press the Open/Close button, to close the tray.
To avoid possible damage to the tray or the CD-ROM player, keep the tray
closed when you are not using it.
Playing audio CDs
With your CD-ROM player and your computer’s built-in speaker, you can play
audio compact discs (CDs) or audio tracks on CD-ROM discs. You can also
attach headphones or speakers to the computer to listen to audio CDs and
audio tracks. See Chapter 3, “Connecting Additional Equipment,” for
information on connecting sound equipment to your computer.
To start, stop, and otherwise control audio discs, use the AppleCD Audio
Player program, available in the Apple (K) menu. Your audio CD software
will only play tracks that contain audio information. You can listen to an
audio CD or audio tracks in the background while you do other work on
your computer. For more information about playing audio CDs, see the
“CD-ROM Discs” topic of Macintosh Guide, available in the Guide (h)
menu.
56 Chapter 5
Using the Optional CD-ROM Player 57
Working with Photo CDs
You can use your CD-ROM player to open Photo CD images stored on Photo
CDs. A Photo CD image is a digitized version of a standard photograph that
you can open and view on your computer screen.
You can do many things with the images on your Photo CDs:
m Open and view the images individually on your computer screen.
m View the images on your computer screen in a series, as you would view
a slide presentation.
m Copy and save the images, print them, paste them into word-processing
documents or other documents that accept graphics, and edit them with
a graphics application program.
Photo CD images are an excellent source of graphics for desktop
publishing, multimedia presentations, business documents, and
professional-quality graphic design. For more information on working with
Photo CD images, see the “CD-ROM Discs” topic of Macintosh Guide,
available in the Guide (h) menu.
Sharing a CD-ROM disc over a network
You can share a CD-ROM disc using your computer’s file-sharing feature. If
the disc has audio portions, you will be able to hear the audio yourself, but
other people on the network will not. Likewise, you cannot hear the audio
portions of discs you access over a network.
For further information about file sharing, see the “Networks and
Telecommunications” or “Sharing Files” topic of Macintosh Guide, available
in the Guide (h) menu.
58 Chapter 5
IpaIrt
Chapter 6 Troubleshooting
61
Consult this chapter if you experience
problems using your computer.
When you have questions
If you want to know how to do a particular task with your computer, refer to
Macintosh Guide in the Guide (h) menu. For instructions on using
Macintosh Guide, see Chapter 2 of this manual.
If you have trouble
While you’re using your computer, you may occasionally see a bomb icon
or an error message, or the pointer (8) may “freeze” on the screen. If you have
trouble with your computer, take a few minutes to read the information in this
chapter. If your problem is related to a particular procedure, you should also
look for information on that procedure in Macintosh Guide, available in the
Guide (h) menu. For additional troubleshooting information and a list of
common questions relating to your system software, see the “Troubleshooting”
topic of Macintosh Guide.
If you are unable to access Macintosh Guide (for example, if your screen
is “frozen”), refer to this chapter to see if you can resolve the problem.
6 Troubleshooting
Take your time
When you see an error message, you don’t have to take action immediately.
The message stays on the screen until you click the OK (or Restart) button or
turn off the Macintosh.
To help diagnose and correct the problem, gather as much information on the
situation as you can. Then follow the instructions in the next section, “Start
Over.”
m Make a note of exactly what you were doing when the problem occurred.
Write down the message on the screen and its ID number (if any). Also list
the programs you were using and the names of any items you know have
been added to the System Folder since the system software was installed.
This information will help a service person diagnose the problem. (It is
helpful to keep a printed copy of the items in your System Folder. For
instructions on printing the contents of a folder, see the “Printing” or
“Printing & Fonts” topic of Macintosh Guide, available in the Guide [h]
menu.)
m Check the screen for any clues. Is a menu selected? What programs and
document icons are open? Note anything else that seems relevant.
m If you were typing text and were not able to save it before the problem
occurred, you can write down the parts of the text still visible on the
screen so that some of your work will be easy to replace.
m Ask other Macintosh users about the problem you’re having; they may have
a solution for it.
If you need repair service, consult the service and support information that
came with your computer for instructions on how to contact an Appleauthorized
service provider or Apple for assistance.
If you know that the problem is with a particular application program, contact
the manufacturer of that software for assistance.
62 Chapter 6
Start over
Often you can eliminate a problem simply by clearing the computer’s memory
and starting over.
If you can, save any open documents before restarting the Macintosh. If your
system is frozen and does not respond to anything you do, or if you have a
“bomb” message on the screen, saving may not be possible. You can try
pressing x-Option-Esc to quit the program in use when the problem
occurred; if this works, you can then save the documents open in other
programs before restarting. (Be sure to restart the computer immediately after
you save your documents; quitting a program using x-Option-Esc may leave
corrupt data in the computer’s memory. This corrupt data is erased when you
restart the computer.)
To restart your Macintosh, try the following solutions:
m If you can, choose Restart from the Special menu or from the dialog box that’s on the
screen.
Dialog boxes contain messages from the computer. If something goes
wrong, a message may appear on the screen, asking you to restart the
computer.
m If you can’t choose Restart, hold down the x and Control keys while you press the
Power key on the keyboard (marked with a triangle).
This key combination restarts the computer. (Use this key combination
only when you can’t choose Restart from the Special menu.)
m Turn off your computer with the power button on the front panel of the computer, wait
at least 10 seconds, and then turn it on again.
If the computer does not turn off, try pressing and holding down the power
button for 3–4 seconds.
m If the power button doesn’t turn off the computer, unplug your Macintosh.
m If you suspect that the problem is with other equipment, such as a printer or an
external hard disk that’s attached to your computer, turn that equipment off for
10 seconds or longer, then turn it on again and restart the Macintosh.
Troubleshooting 63
Rebuild your desktop regularly
A process known as “rebuilding the desktop” helps your Macintosh keep
track of data on your startup disks. Although you usually use the hard disk in
your computer as a startup disk, you can also start up from any other disk that
has system software installed. It’s a good idea to rebuild the desktop of your
startup disks regularly.
To rebuild the desktop of a startup disk, follow these steps:
1 Hold down the Option and x keys while you start up your computer.
Do not release the keys until you see a message asking whether you want to
rebuild the desktop.
2 Click OK.
Solutions to common problems
This section contains descriptions of problems you could experience with
your computer. Some problems may be caused by your CD-ROM player, so if
you don’t find your problem here, be sure to check the section, “Solutions to
CD-ROM Problems,” later in this chapter.
The computer is turned on but the screen is dark.
One of the following is probably the cause:
m You have a screen saver program that darkens the screen when the
computer has not been used for a certain period.
Press a key or move the mouse to turn off the screen saver.
m The computer is in sleep mode. Press a key on the keyboard and/or move
the mouse.
m The monitor’s brightness control (¤) is not adjusted properly.
Check the monitor’s brightness control and turn it up if necessary.
64 Chapter 6
m The Macintosh or the monitor is not getting power.
If you have a separate monitor, check that the monitor is plugged in and
turned on, and that the monitor cable is firmly connected to both the
computer and the monitor.
Check that the computer’s power cord is firmly connected to the computer
and plugged into a grounded electrical outlet, and that the outlet has power.
If you have more than one monitor, and only one is dark, check that it is
set up correctly in the Monitors control panel. For information on using
more than one monitor, see the “Monitors” topic of Macintosh Guide,
available in the Guide (h) menu.
m If none of these steps solves the problem, you may need to reset your
computer’s Parameter RAM (PRAM). Reset PRAM by turning off the
computer and disconnecting all external SCSI devices. Next, restart the
Macintosh while holding down the key combination x-Option-p-r. Wait for
the second startup chime, then release the keys. (Note that the “caps lock”
key must be in the up position. This procedure won’t work with the
uppercase “P” and “R” keys.)
If you are displaying video from your computer on a television screen, it is
normal for your computer monitor to be dark.
The computer’s clock keeps time inaccurately.
Your computer has a clock that runs continuously. When the computer is
turned off, a battery keeps the clock running. If your clock begins to keep
time inaccurately, have an Apple-authorized service provider replace the
battery. Consult the service and support information that came with your
computer for instructions on how to contact an Apple-authorized service
provider or Apple for assistance.
Troubleshooting 65
When you start up, a disk icon with a blinking question mark appears in the middle of
the screen.
This icon indicates that your Macintosh cannot find the system software it
needs to start up. One of the following is probably the cause:
m Your computer may be having a problem recognizing external equipment
that uses the Small Computer System Interface (SCSI).
Shut down the computer, turn off all external SCSI equipment, and
disconnect the first SCSI device in the chain from your computer’s SCSI
port. Then restart the computer. If the computer starts up after you
disconnect your SCSI equipment, refer to the manuals that came with the
equipment for information on the proper way to connect SCSI equipment
and assign SCSI ID numbers.
If you have a printer connected to your computer’s SCSI port, make sure
your printer is not supposed to be connected to the printer port instead.
Check the manuals that came with your printer for information on how to
properly connect it.
m System software may not be installed on the startup hard disk, the system
software may be damaged, or the hard disk may not be working properly.
Start up your computer using the Disk Tools floppy disk or (if you have a
built-in CD-ROM player) with the CD-ROM disc that contains system
software. (For instructions on how to start up your computer from the
CD-ROM disc, see “Starting Up From a CD-ROM Disc” in the section
“Initializing a Hard Disk” later in this chapter.) Then follow the
instructions in “Repairing a Damaged Disk” later in this chapter to test
your startup hard disk and repair any damage.
If repairing the disk doesn’t help, follow the instructions in “Installing or
Reinstalling System Software” later in this chapter to reinstall system
software on your startup hard disk.
66 Chapter 6
When you try to start up from a floppy disk, a disk icon with an X appears in the middle
of the screen and the floppy disk is ejected.
This icon indicates that the floppy disk you tried to start up from is not a
startup disk.
Wait a few seconds. The computer should start up from its internal hard disk.
Make sure you insert floppy disks only after the computer has begun starting up.
A “sad Macintosh” icon appears and the computer won’t start up.
This icon indicates that your Macintosh cannot start up because of a problem
with the system software or the computer hardware.
Eject any floppy disks by turning off the computer and then holding down
the mouse button while you turn the computer on again. Try starting up with
the Disk Tools floppy disk or (if you have a built-in CD-ROM drive) with the
CD-ROM disc that contains system software. (For instructions on how to start
up your computer from the CD-ROM disc, see “Starting Up From a CD-ROM
Disc” in the section “Initializing a Hard Disk” later in this chapter.) If the “sad
Macintosh” icon appears again, consult the service and support information
that came with your computer for information on contacting an Appleauthorized
service provider or Apple for assistance.
Troubleshooting 67
The hard disk icon does not appear on the desktop.
If you don’t see a hard disk icon on the desktop, try the following:
m Use the Drive Setup program to make the disk available. Drive Setup is
located in the Utilities folder on your hard disk. For instructions, start Drive
Setup, then choose Drive Setup Guide from the Guide (h) menu.
m If the hard disk is internal, shut down your computer, wait at least 10
seconds, and then turn it on again.
m If the hard disk is external, make sure that it is turned on and that its cable
is connected firmly; then restart the Macintosh.
m Check the ID numbers of all SCSI equipment connected to your computer.
No two SCSI devices on the same SCSI chain can have the same ID
number. In addition, there are special requirements for assigning SCSI ID
numbers that don’t conflict with your computer or its internal storage
devices. See Chapter 3 and the manuals that came with your SCSI
equipment for information on setting SCSI ID numbers.
m If the hard disk is your startup disk, start your computer using the Disk Tools
floppy disk or (if you have a built-in CD-ROM player) with the CD-ROM
disc that contains system software. (For instructions on how to start up your
computer from the CD-ROM disc, see “Starting Up From a CD-ROM Disc”
in the section “Initializing a Hard Disk” later in this chapter.) Then follow
the instructions in “Repairing a Damaged Disk” later in this chapter to test
your startup hard disk and repair any damage.
If repairing the disk doesn’t help, follow the instructions in “Installing or
Reinstalling System Software” later in this chapter to reinstall system
software on your startup hard disk.
Icons do not appear correctly on your screen.
You need to rebuild the desktop—a process that helps your Macintosh keep
track of files and folders on your hard disk. For instructions, see “Rebuild
Your Desktop Regularly” in the section “If You Have Trouble” earlier in this
chapter.
If icons do not appear correctly after you rebuild the desktop, restart your
computer while pressing the Shift key to temporarily turn off system
extensions. When you see the “Welcome to Macintosh—extensions off”
message, release the Shift key and press the Option and x keys simultaneously
until you see a message asking if you want to rebuild the desktop.
68 Chapter 6
Your Macintosh can’t read a floppy disk.
If you see a message that a floppy disk is unreadable, try one of the following:
m If the disk has never been used, you may simply need to initialize it. For
instructions, see the “Disks” topic of Macintosh Guide, available in the
Guide (h) menu.
m The disk may be damaged. See “Repairing a Damaged Disk” later in this
chapter for information on testing and repairing disks.
m If the disk is a high-density disk previously used on another computer, the
disk may have been formatted incorrectly as an 800K disk rather than as a
1440K (high-density) disk. If so, use the other computer to copy the disk’s
contents onto a properly formatted disk.
m The disk may have been formatted for use on another kind of computer.
You may be able to use a program that lets you work with such disks on
your Macintosh.
If you are trying unsuccessfully to use a DOS floppy disk, consider the
following:
m Make sure Macintosh PC Exchange is installed and turned on. Macintosh
PC Exchange is a control panel that allows your Macintosh to read files
from DOS computers.
m When formatting floppy disks on a DOS computer for use in a Macintosh,
you need to format standard double-sided disks as 720K disks and highdensity
disks as 1440K disks. Double-sided disks formatted in 1440K
format and high-density disks formatted in 720K format may not work in a
Macintosh.
If you think your DOS floppy disk might have a format that doesn’t work
with a Macintosh, use a DOS computer to copy the contents of the disk
onto a properly formatted disk.
Troubleshooting 69
You can’t eject a floppy disk
If you can’t eject a floppy disk in the usual way, try the following in order:
m Hold down the x and Shift keys and press the number 1 key on your
keyboard to eject a disk in the internal disk drive.
m Turn off the computer. If the disk isn’t ejected, then hold down the button
on your mouse or other pointing device while you turn the computer on
again.
m Locate the small hole near the disk drive’s opening, and carefully insert the
end of a large straightened paper clip into it. Push gently until the disk is
ejected. Do not use excessive force.
If none of these solutions work, take the computer or disk drive to your
Apple-authorized service provider to have the disk removed.
You installed a CD-ROM player after you bought your computer and your computer won’t
restart after you’ve copied software for your CD-ROM player to the System Folder.
m If you attempt to install software for your CD-ROM player without using
the Installer, you may not be able to restart your computer. Restart the
computer with the Shift key held down (to turn off system extensions), then
remove any CD-ROM software files you copied by dragging them to the
Trash. Reinstall the software according to the instructions that came with
the drive.
If this procedure doesn’t solve the problem, start your computer using the
Disk Tools floppy disk or the CD-ROM disc containing system software that
came with your computer. (For instructions on starting your computer
using a floppy disk, see “Starting Up From a Floppy Disk” in the section
“Initializing a Hard Disk,” later in this chapter.)
70 Chapter 6
Your computer won’t restart and there is a CD-ROM disc inside the CD-ROM player.
m Your computer may be trying to start up from the CD-ROM disc. Press the
Open/Close button on the front of the computer to open the tray, and
remove the CD-ROM disc. Close the tray, then restart your computer.
Your computer starts up and you see large folder-shaped areas, containing labeled
pictorial buttons, instead of the usual Macintosh desktop.
m Your computer may have started up from a CD-ROM disc containing
At Ease, an alternative to the Macintosh desktop. You need to have the
Macintosh desktop on your screen before you can use the installation
instructions in this manual.
To return to the Macintosh desktop, choose Shut Down from the Special
menu. When your computer is off, press the Open/Close button of your
CD-ROM player to open the tray, then remove the CD. Close the tray. Then
start up your computer again.
To avoid having the computer start up from a CD-ROM disc, remember to
remove any disc in the drive before you shut down your computer.
You can’t start an application program or it quits unexpectedly. Or, when you try to open
a program, you see a message that not enough memory is available.
One of the following is probably the cause:
m The Macintosh ran out of memory.
Quit the programs that you have open and then open the program you want
to use, or restart your Macintosh.
Use the Memory control panel to turn on virtual memory. (This is
especially important if you have a Power Macintosh computer or Power
Macintosh upgrade card and are using programs designed specifically for
the Power Macintosh.) For more information on virtual memory, see the
“Memory” topic of Macintosh Guide, available in the Guide (h) menu.
m The program needs more memory.
Use the program’s Info window to give it more memory. For more
information on increasing a program’s memory, see the “Memory” topic of
Macintosh Guide, available in the Guide (h) menu.
Troubleshooting 71
m The program is a 68K application running in emulation mode that requires
a separate floating-point unit (FPU). It cannot use the built-in FPU on your
computer’s microprocessor.
Check the documentation that came with the program to find out if the
program requires the FPU found in the 68K chip. If it does, you may need
to upgrade to a Power Macintosh version of the program, or install
software that emulates the 68K FPU.
m Sometimes incompatible system extensions or control panels can cause
software problems. Restart while holding down the Shift key to temporarily
turn off all system extensions.
If your program works normally after you do this, use the Extensions
Manager control panel to turn off individual extensions and control panels.
For detailed instructions, see the “Customizing Your Computer” or
“Setting Options” topic of Macintosh Guide, available in the Guide (h)
menu.
If your program performs better when a particular extension or control
panel is turned off, contact the software’s manufacturer for information or
an upgrade.
A dialog box with a bomb appears.
Your system has a software problem.
m Write down what you were doing when the message appeared, and write
down the message.
m Restart your Macintosh. (See “Start Over” in the section “If You Have
Trouble,” earlier in this chapter, for instructions.) Most software problems
are temporary, and restarting usually corrects the problem.
m Check the startup disk and application program you were using when the
dialog box appeared. Make sure that all programs, desk accessories, and
system extensions you’re using are compatible with the system software.
Reinstalling the system software may correct the problem.
m If the bomb only occurs in one application program, try reinstalling the
program from the original disks. If reinstalling doesn’t solve the problem,
contact the manufacturer of the program.
72 Chapter 6
m Sometimes incompatible system extensions or control panels can cause
system software problems. Restart while holding down the Shift key to
temporarily turn off all system extensions.
If your computer works normally after you do this, use the Extensions
Manager control panel to turn off individual extensions and control panels.
For detailed instructions, see the “Customizing Your Computer” or
“Setting Options” topic of Macintosh Guide, available in the Guide (h)
menu.
If your computer performs better when a particular extension or control
panel is turned off, contact the extension’s or control panel’s manufacturer
for information or an upgrade.
m If the problem recurs, you may need to reinstall system software. See
“Installing or Reinstalling System Software” later in this chapter for
instructions.
The pointer (8) doesn’t move when you move the mouse.
One of the following situations is probably the cause:
m Your system has a software problem.
Press x-Option-Esc to quit the application program in use when the
problem occurred. If this works, you can save the documents open in other
programs before restarting.
If that doesn’t solve the problem, follow the suggestions in the previous
section, “A Dialog Box With a Bomb Appears.”
m Your keyboard or mouse cable connection may have been loosened or
disconnected. Turn the computer off using the power button on the front of
the computer, check that the mouse and keyboard cables are connected
properly, and then restart the computer.
IMPORTANT Do not connect or disconnect the mouse or keyboard while the
computer is turned on. You may damage your computer.
Troubleshooting 73
m Signals from the mouse are not reaching the computer, either because the
mouse needs cleaning or because there is something wrong with the
mouse.
Clean the mouse according to the instructions in Appendix A of this book.
If you have another mouse or pointing device, try connecting and using it.
(Turn off the computer before connecting it.) If the new device works, there
is probably something wrong with the mouse you replaced.
If none of these procedures solves the problem, consult the service and
support information that came with your computer for instructions on how to
contact an Apple-authorized service provider or Apple for assistance.
Typing on the keyboard produces nothing on the screen.
One of the following is probably the cause:
m If the computer beeps every time you press a key, Easy Access is probably
turned on.
Open Easy Access from the control panels listed under the Apple ()
menu and turn it off.
m You haven’t selected any text or set the insertion point (i).
Make sure the program you want to type in is the active program. Then
place the pointer (8) in the active window and click to set an insertion
point (i) or drag to select text (if you want to replace the text with your
typing).
m The keyboard is not connected properly.
Turn off the computer using the power button on the front of the computer,
then check that the keyboard cable is connected properly at both ends.
If you have a keyboard with an ADB port (marked with the ◊ icon) on
each end, turn off the Macintosh using the power button and plug the
keyboard cable into the other ADB port on the keyboard. (You may have to
unplug the mouse to do this.) Then restart the computer.
m The keyboard is damaged.
If you have access to another keyboard, try using it instead. (Turn the
computer off before connecting it.) If the new keyboard works, there is
probably something wrong with the one you replaced.
74 Chapter 6
m Your system has a software problem.
Restart your Macintosh. For instructions, see “Start Over” in the section
“If You Have Trouble” earlier in this chapter.
Check the startup disk and application program you were using when the
problem occurred. Make sure that all programs, desk accessories, and
system extensions you’re using are compatible with the system software.
If the problem recurs, try restarting the computer with system extensions
turned off. (To turn system extension off, hold down the Shift key while
restarting the computer.) If that doesn’t work, you may need to reinstall
system software. See “Installing or Reinstalling System Software” later in
this chapter for instructions.
If none of these procedures solves the problem, consult the service and
support information that came with your computer for instructions on how
to contact an Apple-authorized service provider or Apple for assistance.
You can’t open a document, or you see a message that an application program can’t
be found.
m Some documents can be opened by more than one application program.
Try starting a program that you think might be able to open the document,
then choose Open from the program’s File menu to try to open the
document.
m Purchase and install the correct software to use the document, or find out
if the creator of the document can convert it to a form that one of your
programs can use.
m Don’t try to open the files in your System Folder. Most of the files in your
System Folder are used by your computer for internal purposes and are not
intended to be opened.
m Rebuild your desktop by holding down the Shift key while starting up your
computer. Keep holding down the Shift key until you see a message that
extensions are turned off; then hold down the Option and x keys. Keep
holding down the Option and x keys until you see a message asking
whether you want to rebuild the desktop. Click OK.
m If the document is from a DOS computer, use the PC Exchange control
panel to specify which Macintosh program will open the document. For
information about working with DOS documents on your Macintosh,
see the information about DOS in Macintosh Guide, available in the
Guide (h) menu.
Troubleshooting 75
You experience problems using a document from a DOS computer.
If you can’t open a DOS document using a Macintosh program, try the
following:
m Open the document from within the program by choosing Open in the
program’s File menu.
m Use the PC Exchange control panel to specify which Macintosh program
will open the document.
If a DOS document is displayed incorrectly, or you see strange codes or
characters in the document, try one of the following:
m Your application program may have special procedures for opening and
saving documents with different file formats. See the information that
came with your program.
m Try opening the document in another program.
Note: Some characters that can be displayed on the Macintosh are not
accurately displayed on DOS computers, and vice versa.
For more information about working with DOS documents on your
Macintosh, see the information about DOS in Macintosh Guide, available in
the Guide (h) menu.
You see a message that your application program can’t be opened because a file can’t
be found.
Power Macintosh programs use special files called shared libraries. Any
necessary shared libraries should be installed automatically when you install
Power Macintosh programs.
Follow the directions that came with your program to reinstall the program. If
the shared library is still missing, contact the software program’s manufacturer
for assistance.
76 Chapter 6
77
You experience problems using an older Macintosh program.
Some older Macintosh programs are not completely compatible with Power
Macintosh computers. Check with the program’s manufacturer for
compatibility and upgrade information.
Open the Memory control panel and turn off Modern Memory Manager. For
more detailed instructions, see the “Working with Programs” topic of
Macintosh Guide, available in the Guide (h) menu.
Solutions to CD-ROM problems
Problems using the CD-ROM player
The CD-ROM player icon does not appear on screen.
m If you have other internal SCSI devices attached to your computer, make
sure that each device has a unique SCSI ID number. (If your CD-ROM
player was installed in your computer at the factory, it has SCSI ID 3.)
Refer to the documentation that came with your SCSI devices if you need
to reset SCSI ID numbers.
Note: Your computer also has an external SCSI connector. All devices on the
same SCSI chain must have unique ID numbers, but devices on different SCSI
chains may use the same SCSI ID number. (For example, you could have a
CD-ROM player with ID number 3 connected to the internal SCSI chain and
a tape drive with ID number 3 connected to the external SCSI chain.)
m If you installed a CD-ROM player after you bought your computer, make
sure the CD-ROM software that came with the drive is installed. See the
manual that came with the CD-ROM player for software installation
instructions.
m If you reinstall the CD-ROM software, make sure to restart your computer
after you reinstall the software.
Troubleshooting
If you installed a CD-ROM player after you bought your computer and your computer
won’t restart after you’ve copied software for your CD-ROM player to the System Folder.
m If you attempt to install software for your CD-ROM player without using
the Installer, you may not be able to restart your computer. Restart the
computer while holding down the Shift key (to turn off system extensions),
and then remove any CD-ROM software files you copied by dragging them
to the Trash. Reinstall the software according to the instructions that came
with the drive.
If this procedure doesn’t solve the problem, start your computer using the
Disk Tools floppy disk. (For instructions on starting your computer using a
floppy disk, see “Starting Up From a Floppy Disk,” later in this chapter.)
Your computer starts up and you see large folder-shaped areas, containing labeled
pictorial buttons, instead of the usual Macintosh desktop.
m Your computer may have started up from a CD-ROM disc containing At
Ease, an alternative to the Macintosh desktop. You need to have the
Macintosh desktop on your screen before you can use any of the
installation instructions in this manual.
To return to the Macintosh desktop, choose Shut Down from the Special
menu. When your computer is off, press the Open/Close button of your
CD-ROM player to open the tray, then remove the CD-ROM disc. Close the
tray. Then start up your computer again.
To avoid having the computer start up from a CD-ROM disc, remember to
remove any disc in the CD-ROM player before you shut down your computer.
78 Chapter 6
The tray of your CD-ROM player won’t open.
If a CD-ROM disc icon appears on your screen:
m Drag the disc icon to the Trash, or select it and choose Put Away from the
File menu. If the AppleCD Audio Player program is active, choose Eject
CD from the File menu.
If you see a message that a disc can’t be put away because it is being
shared, turn off file sharing, then try again to put away the disc.
If no CD-ROM disc icon appears on your screen:
m Press the Open/Close button for your CD-ROM player.
m The signal to open the tray may not be reaching the computer. Turn off
your computer and locate the small pinhole to the lower right of the
CD-ROM tray opening. Insert the end of a large, straightened paper clip
firmly and horizontally into the pinhole. Push gently until the tray is
released, then carefully pull the tray open. Do not force the tray open; wait
until the paper clip has dislodged it or you may break the front of the tray.
If neither of these suggestions works, your CD-ROM player may be damaged.
Contact an Apple-authorized service provider or Apple for further assistance.
Your computer won’t restart, and a CD-ROM disc is in the CD-ROM player.
m Your computer may be trying to start up from the CD-ROM disc. Press the
Open/Close button of your CD-ROM player to open the tray, and remove
the CD-ROM disc. Close the tray, then restart your computer.
WARNING Turn off your computer before you attempt to eject the tray
using a paper clip. If you don’t, you may damage the CD-ROM player.
Troubleshooting 79
Problems with CD-ROM discs
You insert a CD-ROM disc, but its icon doesn’t appear on the Macintosh desktop.
m Make sure that the disc label is facing up and the disc is centered in the
tray. If you’re using a small (8 cm) disc, make sure it is within the tray’s
inner ring.
m Make sure the tray is closed all the way.
m Try restarting your computer.
m Try starting your computer from the CD-ROM disc that contains system
software while holding the “c” key down. If only the hard drive icon
appears on the desktop, then there may be a hardware problem with your
CD-ROM player. If the CD-ROM icon appears above the hard drive icon,
try reinstalling your CD-ROM software following the instructions in
“Installing or Reinstalling CD-ROM Software.”
m If you installed the CD-ROM player after you bought your computer, make
sure the CD-ROM software is installed. (Refer to the documentation that
came with the CD-ROM player.)
CD-ROM software is already installed on Macintosh computers that come
with CD-ROM players. You can reinstall it by following the procedure in
“Installing or Reinstalling CD-ROM Software” later in this chapter.
Your computer displays the message “This is not a Macintosh disk: Do you want to
initialize it?” when you insert a CD-ROM disc in the CD-ROM player.
m Make sure that the Foreign File Access and/or Audio CD Access CD-ROM
extensions are installed in your System Folder and are turned on. (If they
are not turned on, use the Extensions Manager control panel to turn them
on and then restart your computer.)
m Make sure the CD-ROM software is installed. (The CD-ROM software is
already installed on Macintosh computers that come with CD-ROM
players.) If you installed a CD-ROM player after buying your computer,
see the manual that came with your player.
m The disc may use a format that the Macintosh cannot recognize.
80 Chapter 6
Your computer ejects a CD-ROM disc without giving you any error message.
m Make sure the disc is flat in the tray and the disc label is facing up. If
you’re using a small (8 cm) disc, make sure it’s centered within the tray’s
inner ring.
m The disc may need to be cleaned. (See “Handling CD-ROM Discs” in the
section “Handling Your Equipment” in Appendix A.) If there are visible
scratches on the shiny side of the disc, you may be able to remove them
with a CD polishing kit (available from your audio CD dealer). If the
scratches can’t be removed, you’ll need to replace the disc.
m The disc may be damaged. Try another disc in the drive, and try the
original disc in another drive. If the original drive reads other discs or if
the original disc doesn’t work in another drive, the disc is probably
damaged. You’ll need to replace the disc.
You can’t open a document on a CD-ROM disc.
m Try opening the application program first; then open the document.
m Read the manual that came with your CD-ROM disc. Some discs come
with software that you need to install on your computer before using
the disc.
You can’t save changes you make to information on a CD-ROM disc.
m CD-ROM is a read-only medium. This means that information can be read
(retrieved) from it, but not written (stored) on it. You can save the changed
information on a hard disk or floppy disk.
Problems using ISO 9660 or High Sierra discs
You cannot access files on a CD-ROM disc that uses the ISO 9660 or High Sierra format.
m Discs in the ISO 9660 and High Sierra disc formats have version numbers
attached to file names. Some application programs need these version
numbers in order to work with files. To make the version numbers
available to programs on your computer, follow these instructions:
Drag the CD icon to the Trash. When the tray opens, hold down the Option
key and push the tray back in, continuing to hold down the Option key
until the disc is fully in the drive. The program you are using should now
be able to locate file names on that CD-ROM disc.
Troubleshooting 81
Problems playing audio CDs
You don’t hear any sound when you play an audio CD or an audio track on a CD-ROM
disc using the AppleCD Audio Player.
m If your CD-ROM player was installed after you bought your computer,
make sure the audio cable is properly connected. See the documentation
that came with the CD-ROM player for more information.
m If you have headphones or speakers connected to the computer, adjust the
connector to make sure they are firmly connected. Make sure the volume
control on your headphones or speakers is not turned down too low.
m If you do not have headphones or speakers connected to the computer,
make sure that nothing else is plugged into the sound output port on your
computer.
m Some programs change the sound options to suit their needs. You may need
to reset the sound options in a control panel. Refer to the “Sound” topic of
Macintosh Guide available in the Guide (h) menu.
m If you are using a CD-ROM disc over a network, you won’t be able to hear
the audio portion.
m Make sure the volume is turned up in the AppleCD Audio Player. With the
Audio Player open, drag the volume control slider up or press the Up
Arrow key on your keyboard.
m The CD may have been paused. Click the Play/Pause button once or twice.
While playing an audio track on a CD-ROM disc that combines audio tracks and data,
you double-click the disc icon and the audio track stops playing.
m You can’t open data files on a CD-ROM disc and listen to audio tracks on
that disc at the same time.
You are unable to record sound from an audio CD.
m Check your computer’s sound input port to see if a microphone or other
device is connected.
m You may need to reset the sound options in a control panel. Refer to the
“Sound” topic of Macintosh Guide, available in the Guide (h) menu.
82 Chapter 6
Problems using Photo CDs
Your CD-ROM player will not open Photo CDs.
m Reinstall the CD-ROM software (available through the “MultiMedia
Software” option in Custom Install when you reinstall system software).
Your computer does not display color icons for individual images on a Photo CD.
m Your system may be low on memory. To view color icons, restart your
computer and then reopen the Photos folder. See the “Memory” topic of
Macintosh Guide, available in the Guide (h) menu for more information
on managing memory.
After you open an image on a Photo CD, the image is scrambled, colors are displayed
incorrectly, or no image appears in the window.
m The program you are using may not be designed to work with large (highresolution)
image files. You can open the image with another program or
you can assign more memory to the program. (For more information on
managing memory, see the “Memory” topic of Macintosh Guide, available
in the Guide (h) menu.)
After you open an image on a Photo CD, your system is “frozen” and does not respond
to any input, or you have a “bomb” message on your screen.
m Restart your Macintosh. The program you are using may not be designed
to work with large (high-resolution) image files. You can open the image
with another program or you can assign more memory to the program. (For
more information on managing memory, see the “Memory” topic of
Macintosh Guide available in the Guide (h) menu.)
Troubleshooting 83
If your computer’s performance decreases
If you notice a decrease in your computer’s speed and general performance
after you add special software like a control panel, system extension, or
custom utility, it may be because this software does not work well with Power
Macintosh computers.
m To find out if a system extension is the problem, hold down the Shift key
while you restart the computer. This temporarily turns off system
extensions. If the computer performs better without this software, one of
the system extensions is likely to be the problem. (If you just added a new
system extension, it is the most probable cause of the problem.) Return the
system extensions to the System Folder one at a time, restarting and
checking your computer’s performance each time until you identify the
extension that is causing problems. Contact the software’s manufacturer for
information or an upgrade.
m To find out if a new control panel or custom utility you’ve added is the
problem, drag it out of the System Folder. (This software may be in the
Control Panels or elsewhere inside the System Folder.) Next, restart your
computer and check its performance. If there’s an improvement, the new
software was probably the cause of the problem. Contact the software’s
manufacturer for information or an upgrade.
If you don’t know which control panel or custom utility is causing the
problem, you can drag all of these items out of the System Folder and
restart the computer. If the computer performs better when the software is
removed, you need to find out which item is causing the problem. Return
the control panels and custom utilities to the System folder one at a time,
restarting and checking your computer’s performance each time until you
identify the one that is causing problems.
If you still do not notice an improvement, follow the instructions in
“Installing or Reinstalling System Software” later in this chapter to reinstall
system software on your startup hard disk.
84 Chapter 6
Solving printer problems
m All printers: Check your printer settings in the Chooser, making sure you
have selected the correct printer. Next, turn off the computer and printer
and check the printer cable connections. If neither of these suggestions
solves the problem, reinstall your printer driver (this software probably
came with your printer on a floppy disk).
m Personal LaserWriter LS, LaserWriter Select 300, and Personal LaserWriter
300: The system software installed on your computer includes a new
version (version 1.2) of the Personal LaserWriter 300 printer driver. This
driver works with all three of these printers. Do not install your older
Personal LaserWriter LS or LaserWriter Select 300 drivers; the older
printer drivers are not compatible with Power Macintosh computers.
m StyleWriter and StyleWriter II printers: The system software installed on
your computer includes a new version (version 2.0) of the StyleWriter I/II
printer driver. This driver works with both the StyleWriter II and the
StyleWriter printers. Do not install your older StyleWriter driver; the older
driver is not compatible with Power Macintosh computers.
If your printer is different from the ones just mentioned, its driver may not
be included on the Power Macintosh hard disk. You should install the driver
for your printer if you encounter printing problems. Install the driver from the
disks that came with the printer.
Troubleshooting 85
Obtaining updated Apple software
Apple software updates include all of the latest versions of Apple software,
including most printer drivers, System Enablers, and updates to utilities,
networking, and communication software.
IMPORTANT Be sure to read the posted Apple Software License Agreement
before installing any software.
Currently, Apple’s Customer Service Division (CSD) posts Apple software
updates to the following online services:
m AppleLink
m CompuServe
m Internet: Apple Computer Higher Education gopher server
m Internet: ftp.info.apple.com (formerly ftp.austin.apple.com)
m Internet: ftp.support.apple.com
Specific paths and details for each service follow.
AppleLink
Apple software updates are posted to the APPLE SW UPDATES board
located in the following path:
AppleLink Services (main window)
Software Sampler
Apple SW Updates
eWorld
Apple software updates are posted to the Apple Software Updates board
located in the following path:
Computer Center
Apple Customer Center
Apple Software Updates
86 Chapter 6
CompuServe
Apple software updates are posted to two separate areas on CompuServe:
Apple Support Forum and Apple New Updates. All updates are posted
simultaneously to both areas. Updates are removed from the Apple New
Updates area after three weeks.
Apple Support Forum (GO APLSUP) contains all software and information
libraries. Software is organized by category into separate libraries, including
m System Software
m Apple II
m Newton
m System Enablers
m Printing
m Display & Peripheral Software
m Networking & Communications
m DOS & Windows
Apple New Updates (GO APLNEW) contains all recently published Apple
software updates, allowing you to download the latest and most popular
Apple Software Updates quickly and easily.
Troubleshooting 87
Internet: Apple Computer Higher Education gopher server
Apple recommends using TurboGopher client software to access the Apple
Computer Higher Education gopher server. The “Apple Support Area” folder
is located in the following path:
Home Gopher Server
Computer Information
Apple Computer Higher Education gopher server
Apple Support Area
Apple SW Updates
TurboGopher Client software is available via anonymous File Transfer
Protocol (ftp) to boombox.micro.umn.edu in the /pub/gopher directory.
m Host name: info.hed.apple.com
Internet: ftp.info.apple.com
This is a File Transfer Protocol (ftp) server with all of the latest Apple
software updates. (This ftp site was formerly called ftp.austin.apple.com)
m Host name: ftp.info.apple.com, IP number is: 204.96.16.4
m Path: ftp/Apple.Support.Area/Apple.SW.Updates
You can also download Apple software updates via Apple’s Worldwide Web
server, www.info.apple.com. The Apple web site allows you an easy way to
download Apple software updates from ftp.info.apple.com.
m URL for the Apple web site is: http://www.info.apple.com
m IP number for the Web site is: 204.96.16.2
88 Chapter 6
Internet: ftp.support.apple.com
This is a File Transfer Protocol (ftp) server with all of the latest Apple
software updates.
m Host name: ftp.support.apple.com.
m IP number: 130.43.6.3
m Path: /pub/Apple SW Updates
America Online ftp (file transfer protocol) gateway
You can log onto our ftp.info.apple.com server via the America Online ftp
gateway. You need an America Online account. Once online, follow these
steps:
1 Use the keyword “ftp” to take you to the ftp area.
2 Click the FTP button (icon of disk with sunglasses).
3 In the favorite sites list, double-click “ftp.info.apple.com”.
A dialog box will appear with the ftp.info.apple.com welcome screen.
4 Click the OK button.
5 Double-click the Apple.Support.Area folder to open it.
6 Double-click the Apple.Software.Updates folder to open it.
Each time you open a folder, a new Macintosh window opens.
Troubleshooting 89
Initializing a hard disk
Before you can use a new disk, the disk must be prepared so that the
computer knows where to store information on the disk. This preparation is
called initializing (or formatting) the disk.
When do you need to initialize a hard disk?
The hard disk inside your computer was initialized at the factory, so you
shouldn’t need to initialize it. You need to initialize a hard disk only if
m you purchase a hard disk that has not been initialized at the factory
m your hard disk is damaged
If a hard disk needs to be initialized, the disk’s icon does not appear on the
desktop when you start up the computer using another disk.
If the hard disk you want to initialize is not the startup disk, you can use the
Drive Setup program to initialize it. Drive Setup is located on the floppy disk
labeled Disk Tools that came with your computer. If your computer came with
a CD-ROM player and you didn’t receive floppy disks, you can find Drive
Setup on the CD-ROM disc that contains system software. For instructions,
start Drive Setup and choose Drive Setup Guide from the Guide (h) menu.
If the hard disk you want to initialize is the startup disk, follow the
instructions in this chapter.
WARNING Initializing a disk erases any information that may be on it.
Before you initialize a damaged disk, try to repair it as described in
“Repairing a Damaged Disk” later in this chapter.
90 Chapter 6
Starting up from a CD-ROM disc
To initialize, test, or repair a hard disk, or to install system software on a hard
disk, you need to start up your computer from another disk. If your computer
has a CD-ROM player, you can start up your computer using the CD-ROM
disc containing system software that came with the computer.
To start up the computer using the CD-ROM disc, follow these steps:
1 Turn your computer on.
2 When you see the desktop on your screen, press the Open/Close button on your
CD-ROM player, and insert the CD-ROM disc containing system software into the player.
3 Turn your computer off.
The CD-ROM disc will remain in the CD-ROM player.
4 Hold down the C key on your keyboard and restart your computer.
Continue to hold down the key until you see the “Welcome to Macintosh”
message.
Starting up from a floppy disk
To initialize, test, or repair a hard disk, or to install system software on a hard
disk, you need to start up your computer from another disk. If you don’t have
a built-in CD-ROM player, you can start up the computer using either the
Disk Tools or disk 1 from the set of system software disks that came with your
computer.
To start up your computer using a floppy disk, follow these steps:
1 Shut down your computer.
2 Insert the floppy disk into the disk drive.
If you want to initialize, test, or repair your hard disk, use the Disk Tools
disk to start up your computer. If you want to install system software, use
disk 1 from the set of system software disks that came with your computer.
3 Turn on the computer.
Troubleshooting 91
How to initialize a hard disk
You initialize an Apple SCSI hard disk by using a program called
Drive Setup, which is on the floppy disk labeled Disk Tools that came with
your computer. If your computer came with a CD-ROM player and you didn’t
receive floppy disks, you can find Drive Setup on the CD-ROM disc that
contains system software. (To initialize a hard disk from another
manufacturer, use the utility software that came with the hard disk.)
1 Start up your computer from the Disk Tools disk or the CD-ROM disc that contains
system software.
See “Starting Up From a CD-ROM Disc” or “Starting Up From a Floppy
Disk” earlier in this section.
2 Open the Drive Setup icon.
You may need to look in a folder called Utilities to find Drive Setup.
3 In the list of drives, click the disk you want to initialize.
4 Click Initialize to initialize the hard disk.
5 Click Quit when you see a message reporting that initialization was successful.
If a message reports that initialization failed, try again. If initialization
fails a second time, take the disk to your Apple-authorized service provider
for repair.
92 Chapter 6
Click the drive you want to initialize...
...then click Initialize.
Repairing a damaged disk
Disks can become damaged by repeated use and handling.
When do you need to repair a disk?
If you see a message reporting that a disk is damaged or unreadable, you may
need to repair the disk.
Try these suggestions first
If you can’t start up from a hard disk or you don’t see the hard disk icon on the
desktop, try the following:
m If the hard disk is internal, shut down your Macintosh, wait at least 10
seconds, and then turn it on again.
m If the hard disk is external, make sure that it is turned on and that its cable
is connected firmly; then restart the Macintosh.
m If the hard disk is your startup disk, start up with a different startup disk. If
the hard disk’s icon appears on your desktop, reinstall system software on
the hard disk. See “Installing or Reinstalling System Software” later in this
chapter.
m Check the ID numbers of all SCSI equipment connected to your computer.
Your computer has two SCSI chains, an internal one and an external one.
All devices on the same SCSI chain must have unique ID numbers, but
devices on different SCSI chains may use the same SCSI ID number. (For
example, you can have a CD-ROM player with ID number 3 connected to
the internal SCSI chain and a tape drive with ID number 3 connected to
the external SCSI chain. You cannot have 2 SCSI devices connected to the
external SCSI chain that both use ID number 3.)
On the internal SCSI chain, the computer itself has the ID number 7, and
the factory-installed hard disk has the number 0. If your computer came
with a CD-ROM player installed, it is also connected to the internal SCSI
chain and has ID number 3.
On the external SCSI chain, SCSI devices are numbered either 0 to 6, or
1 to 6 if you have an additional hard drive installed (its number is 0).
Troubleshooting 93
Check that both chains of devices are terminated properly. For information
on setting SCSI ID numbers and terminating a SCSI chain, see Chapter 3
of this manual and the manuals that came with your SCSI equipment.
m Test the disk following the instructions that come next.
How to test a hard disk
You can test an Apple SCSI hard disk with the Drive Setup program, which is
on the floppy disk labeled Disk Tools that came with your computer. If your
computer has a built-in CD-ROM player, and you didn’t receive floppy disks,
you can find the Drive Setup program on the CD-ROM disc that contains
system software.
1 Start up your computer from the Disk Tools disk or the CD-ROM disc that contains
system software.
See “Starting Up From a CD-ROM Disc” or “Starting Up From a Floppy
Disk” in the section “Initializing a Hard Disk” earlier in this chapter.
2 Open the Drive Setup icon.
You may need to look in a folder called Utilities to find Drive Setup.
94 Chapter 6
3 In the list of drives, click the disk you want to test.
4 Pull down the Functions menu and choose Test Disk.
5 When a message tells you that testing is complete, click Quit.
If the test reveals a problem, you may be able to correct it by using Disk First
Aid or another disk repair program (see the instructions in the next section),
or you may need to reinitialize the disk (see “Initializing a Hard Disk” earlier
in this chapter). Consult an Apple-authorized service provider for assistance if
necessary. If you had a hard disk from another manufacturer installed after
you bought your computer, use the software that came with the disk or contact
the disk vendor to get the latest version of software.
How to repair a hard disk or floppy disk
You can repair some types of disk damage by using the Disk First Aid
program, which is included either on the Disk Tools floppy disk or on the
CD-ROM disc containing system software that came with your computer.
1 Start up your computer from the Disk Tools disk or the CD-ROM disc that contains
system software.
See “Starting Up From a CD-ROM Disc” or “Starting Up From a Floppy
Disk” in the section “Initializing a Hard Disk” earlier in this chapter.
Troubleshooting 95
2 Open the Disk First Aid icon.
You may need to look in a folder called Utilities to find Disk First Aid.
3 Click the icon of the disk you want to test.
Disk icons appear in a box at the top of the Disk First Aid window.
4 Click Repair to begin testing and repairing the disk.
You can’t repair the startup disk or the disk that contains the Disk First Aid
program, but you can test these disks by clicking Verify. If the program
reveals a problem with either of these disks, start up the computer from
another disk so that you can repair the damaged disk.
If you want to test and repair another disk, click its icon and then click
Repair.
5 When testing and repair are finished, choose Quit from the File menu.
96 Chapter 6
Troubleshooting 97
If Disk First Aid cannot correct the problem
m Try repairing the disk again. Sometimes repeating the process corrects the
problem.
m Use another disk repair or recovery program. Some disk repair programs
let you recover information from a damaged disk.
m Consult a computer repair specialist for help.
m Once you have recovered all the information you can, erase (reinitialize)
the disk. If initialization doesn’t work, discard the damaged disk (if it’s a
floppy disk), or take it to your Apple-authorized service provider for repair
(if it’s a hard disk).
Installing or reinstalling system software
System software is the set of programs and other files that your computer uses
to start itself up, keep track of your files, and run the application programs
you use. System software is kept in the folder called the System Folder. When
you turn on your computer, it looks for a startup disk, which is a disk that
contains the system software. The startup disk is usually the hard disk that’s
inside your computer, though another hard disk or a floppy disk can also be a
startup disk.
The accessory kit that came with your Macintosh provides system software on
either a set of floppy disks or a CD-ROM disc. You can use the floppy disks
or the CD-ROM disc to install the system software on your Macintosh if you
need to do so.
When should you install system software?
Your Macintosh came with all the necessary system software installed on its
internal hard disk, so you don’t need to install system software on that disk
unless you encounter software problems.
If you have a new hard disk or a newly initialized hard disk that doesn’t
contain system software, or if you want to upgrade to a more recent version of
system software on a hard disk, follow the instructions in “Installing System
Software” later in this section.
When should you reinstall system software?
If you have a problem with your system software, you may see this icon in the
middle of the screen:
If this icon appears, follow the instructions in “Repairing a Damaged Disk”
earlier in this chapter to test your startup hard disk and repair any damage.
If repairing the disk doesn’t help, follow the instructions in the next section,
“Installing System Software,” to reinstall system software on your startup
hard disk.
Installing system software
Follow the steps in this section to do what is commonly called a “normal”
installation of system software.
If you’re installing system software on a hard disk for the first time, make sure
that your hard disk has been initialized, a process that prepares the disk to
store information. If you see the hard disk’s icon on the desktop when you
start up the computer, the disk has been initialized. If no disk icon appears
when you start up, see “Initializing a Hard Disk” earlier in this chapter for
instructions.
To do a normal installation, follow these steps:
1 Start up your computer from the Disk Tools disk or the CD-ROM disc that contains
system software.
See “Starting Up From a CD-ROM Disc” or “Starting Up From a Floppy
Disk” in the section “Initializing a Hard Disk” earlier in this chapter.
2 Find and open the Disk First Aid icon.
You may need to look in a folder called Utilities to find Disk First Aid.
98 Chapter 6
After Disk First Aid starts, follow the instructions on the screen. Disk First
Aid checks your hard disk for any problems.
3 When Disk First Aid has finished checking your hard disk, choose Quit from the
File menu.
4 Open the Drive Setup program.
You use the Drive Setup program to update your hard disk.
5 In the list of drives, click your startup disk.
6 Pull down the Functions menu and choose Update Driver.
7 When the update process is finished, quit Drive Setup.
8 Shut down your computer.
9 Start up your computer from disk 1 from your set of system software disks, or from the
CD-ROM disc that contains system software.
See “Starting Up From a CD-ROM Disc” or “Starting Up From a Floppy
Disk” in the section “Initializing a Hard Disk” earlier in this chapter.
The Installer’s Welcome screen appears. You may have to double-click the
System Software Installer icon to open the Installer program.
10 Click OK.
The Easy Install dialog box appears.
Troubleshooting 99
Disk on which
system software
will be installed
Click here to install the
software you need.
Click here to install on
a different disk.
You may have
a later version
of system
software.
11 Make sure that the hard disk named in the box is the one on which you want to install
system software.
If it isn’t, click Switch Disk until the correct disk name appears.
12 Click Install.
13 Follow the instructions that appear on the screen.
If you’re installing system software from floppy disks, you see messages
asking you to insert different disks.
14 When you see a message reporting that the installation was successful, click Restart.
If a message reports that installation was not successful, try installing again.
(Follow the instructions on the screen.)
If, after reinstalling system software by doing a normal installation, you still
experience problems with your computer, follow the steps in the next section
for doing a “clean” installation of system software.
IMPORTANT Certain system extensions or application programs that were
originally on your hard disk may not be installed with the Installer program.
If you notice that a certain extension or program was not installed, you may
need to install it separately. You can find these additional extensions and
programs on the CD-ROM disc that contains system software. (Application
programs from other vendors can be reinstalled from backup copies you
made.) If you don’t have a CD-ROM player, see the service and support
information that came with your computer for information on how to contact
Apple directly for assistance.
100 Chapter 6
Doing a clean installation of system software
The steps in this section outline what is commonly called a “clean”
installation of system software. A clean installation allows you to discover
which item in your System Folder is causing a problem. A clean installation
creates a brand new System Folder and saves everything in your original
System Folder in a different location. You can then follow the instructions in
“Replacing Special Software,” later in this section, to reinstall system
extensions, control panels, and other special software one at a time from the
old System Folder to the new System Folder. This procedure allows you to
determine which item in the old System Folder was the source of the
problem.
Do a clean installation if you can’t determine what is damaged in your System
Folder (especially if you think any special software, such as control panels,
system extensions, or custom utilities, may be causing the problems you’re
experiencing). You should also do a clean installation if you’re still having
problems with your computer after you’ve reinstalled system software by
doing a normal installation.
To do a clean installation, follow these steps:
1 Start up your computer from the Disk Tools disk or the CD-ROM disc that contains
system software.
See “Starting Up From a CD-ROM Disc” or “Starting Up From a Floppy
Disk” in the section “Initializing a Hard Disk” earlier in this chapter.
2 Find and open the Disk First Aid icon.
You may need to look in a folder called Utilities to find Disk First Aid.
After Disk First Aid starts, follow the instructions on the screen. Disk First
Aid checks your hard disk for any problems.
3 When Disk First Aid has finished checking your hard disk, choose Quit from the
File menu.
Troubleshooting 101
4 Open the Drive Setup program.
You use the Drive Setup program to update your hard disk.
5 In the list of drives, click your startup disk.
6 Pull down the Functions menu and choose Update Driver.
7 When the update process is finished, quit Drive Setup.
8 Shut down your computer.
9 Start up your computer from disk 1 of the set of system software disks that came with
your computer, or from the CD-ROM disc that contains system software.
See “Starting Up From a CD-ROM Disc” or “Starting Up From a Floppy
Disk” in the section “Initializing a Hard Disk” earlier in this chapter.
The Installer’s Welcome screen appears. You may have to double-click the
System Software Installer icon to open the Installer program.
10 Click OK.
The Easy Install dialog box appears.
102 Chapter 6
For a clean installation,
DO NOT click the
Install button.
If you need to install on a
different disk, click this button.
Disk on which
system software
will be installed
11 Make sure that the hard disk named in the Destination Disk box is the one on which you
want to install system software.
If it isn’t, click Switch Disk until the correct disk name appears.
12 Hold down Shift–x–K to start the clean installation.
The following dialog box appears.
13 Click the Install New System Folder button and click OK.
The Easy Install dialog box appears. The Install button has changed to Clean
Install, and the contents of your old System Folder have been moved to a new
folder named Previous System Folder.
14 Click Clean Install.
15 Follow the instructions that appear on the screen.
It takes a few minutes to complete the installation.
Troubleshooting 103
Click here to install the
software you need.
16 When you see a message reporting that the installation was successful, you may need to
click Restart.
You need to click Restart only if you installed software onto the startup disk.
If a message reports that installation was not successful, try repeating the
clean installation procedure.
IMPORTANT Certain system extensions or application programs that were
originally on your hard disk may not be installed with the Installer program.
If you notice that a certain extension or program was not installed, you may
need to install it separately. You can find these additional extensions and
programs on the CD-ROM disc that contains system software. (Application
programs from other vendors can be reinstalled from backup copies you
made.) If you don’t have a CD-ROM player, see the service and support
information that came with your computer for information on how to contact
Apple directly for assistance.
Replacing special software
Special software consists of items such as control panels, system extensions,
custom utilities, fonts, or Apple menu items that you may have added to your
old System Folder. To make sure that special software does not create any
conflicts with other programs on your computer, follow this procedure to
safely replace these items in your new System Folder:
1 Copy any special software items from the Previous System Folder back to your System
Folder one item at a time, restarting the computer after copying each item.
IMPORTANT Be very careful not to replace (copy over) any of the files in the
System Folder with files from the Previous System Folder.
2 Check after each restart to make sure your computer is not having any software
problems.
If any of your special software items cause software problems, contact the
software manufacturer for assistance or an upgrade.
104 Chapter 6
Doing a custom installation
For most Macintosh users, the Easy Install procedure described in the
previous sections is appropriate, because it automatically installs all the items
you need. However, if you’d like to select a combination of system software
files for your specific needs, you can customize your system software
installation. You use custom installation to install or update one or more
specific files, or to save space on your hard disk by installing only the files
you want.
To install customized system software, follow these steps:
1 Start up your computer from disk 1 of the set of system software disks that came with
your computer, or from the CD-ROM disc that contains system software.
See “Starting Up From a CD-ROM Disc” or “Starting Up From a Floppy
Disk” in the section “Initializing a Hard Disk” earlier in this chapter.
2 Click OK.
The Easy Install dialog box appears.
3 Choose Custom Install from the pop-up menu.
Troubleshooting 105
The Custom Install dialog box appears, listing all available system
software components.
4 Scroll through the list of components, clicking the checkbox next to each component
you want to install.
You can see and select individual items within each component by clicking
the arrow to the left of the component, then clicking the item you want to
install. To get additional information about each component listed, click the
box with the letter i in it to the right of the component.
5 Click Install.
6 Follow the instructions that appear on the screen.
7 When you see a message reporting that the installation was successful, click Quit.
If a message reports that installation was not successful, try installing again.
(Follow the instructions on the screen.)
8 Restart your Macintosh.
The system software is installed and your computer is ready to use. Don’t
forget to eject the CD-ROM disc or floppy disk containing system software
when you are finished.
106 Chapter 6
Installing or reinstalling CD-ROM software
CD-ROM software is a set of programs and files that allow your CD-ROM
player to work correctly with your computer and allow it to play different
kinds of CDs, like Photo CDs or audio CDs. If your computer came with a
CD-ROM player installed, the CD-ROM software is part of system software
and was pre-installed for you on your computer’s hard disk. (It is also
available on floppy disks and a CD-ROM disc that came with your
Macintosh.)
If you added a CD-ROM player after you bought your computer, the
CD-ROM software is probably on floppy disks that came with the player.
When should you install or reinstall CD-ROM software?
If your Macintosh came with the CD-ROM player already installed, you don’t
need to install the CD-ROM software unless you encounter problems. (See
“Solutions to CD-ROM Problems” earlier in this chapter for descriptions of
the kinds of problems you might encounter.)
If you added a CD-ROM player after you bought your computer, you should
install the CD-ROM software before you attempt to use the CD-ROM player.
Reinstalling CD-ROM software
1 Start up your computer from disk 1 of the set of system software disks that came with
your computer.
See “Starting Up From a Floppy Disk” in the section “Initializing a Hard
Disk” earlier in this chapter.
2 Click OK.
The Easy Install dialog box appears.
3 Choose Custom Install from the pop-up menu.
Troubleshooting 107
The Custom Install dialog box appears, listing all available system software
components.
4 Select Multimedia Software by clicking the checkbox next to it.
To get additional information about each component listed, click the box with
the letter i in it to the right of the component.
5 Click Install.
6 Follow the instructions that appear on the screen.
7 When you see a message reporting that the installation was successful, click Quit.
If a message reports that installation was not successful, try installing again.
(Follow the instructions on the screen.)
8 Restart your Macintosh.
The CD-ROM software is reinstalled and your computer is ready to use. Don’t
forget to eject the CD-ROM disc or floppy disk containing system software
when you are finished.
108 Chapter 6
IpIarIt
Appendix A Health, Safety, and Maintenance Tips
AppendixB Installing an Expansion Card
Appendix C Special Keys on Your Keyboard
111
For your own safety and that of your equipment, follow all the instructions in
this chapter. Keep these instructions available for reference by you and others.
Health-related information about computer use
Muscle soreness, eye fatigue, and other discomforts and injuries sometimes
associated with using computers can occur from performing any number of
activities. In fact, misuse of the same muscles during multiple activities can
create a problem that might not otherwise exist. For example, if you engage in
nonwork activities that involve repetitive stress on the wrist—such as
bicycling—and also use your computer’s keyboard improperly, you may
increase your likelihood of developing wrist problems. Some individuals are
at greater risk of developing these problems because of their health,
physiology, lifestyle, and general exposure to stress. Work organization and
conditions, such as workstation setup and lighting, also play a part in your
overall health and comfort. Preventing health problems is a multifaceted task
that requires careful attention to the way you use your body every hour of
every day.
The most common health effects associated with using a computer are
musculoskeletal discomfort and eye fatigue. We’ll discuss each area of
concern.
Appendix A
Health, Safety, and Maintenance Tips
Read this appendix for important
health and safety instructions,
as well as tips on keeping your
computer in good working order.
Musculoskeletal discomfort
As with any activity that involves sitting for long periods of time, using a
computer can make your muscles sore and stiff. To minimize these effects, set
up your work environment carefully, using the guidelines that follow, and take
frequent breaks to rest tired muscles. To make working with your computer
more comfortable, allow enough space in your work area so that you can
change position frequently and maintain a relaxed posture.
Another type of musculoskeletal concern is repetitive stress injuries (RSIs),
also known as cumulative trauma disorders (CTDs). These problems can
occur when a certain muscle or tendon is repeatedly overused and forced into
an unnatural position. The exact causes of RSIs are not totally understood, but
in addition to awkward posture, such factors as the amount of repetition, the
force used in the activity, the individual’s physiology, workplace stress level,
and lifestyle may affect the likelihood of experiencing an RSI.
RSIs did not suddenly arise when computers were invented; tennis elbow and
writer’s cramp, for example, are two RSIs that have been with us for a long
time. Although less common than other RSIs, one serious RSI discussed more
often today is a wrist problem called carpal tunnel syndrome, which may be
aggravated by improper use of computer keyboards. This nerve disorder
results from excessive pressure on the median nerve as it passes through the
wrist to the hand.
This section offers advice on setting up your work area to enhance your
comfort while you use your computer. Since the effects of repetitive
movements associated with using a computer can be compounded by those of
other work and leisure activities to produce or aggravate physical problems,
proper use of your computer system must be considered as just one element
of a healthy lifestyle.
No one, of course, can guarantee that you won’t have problems even when you
follow the most expert advice on using computer equipment. You should
always check with a qualified health specialist if muscle, joint, or eye
problems occur.
112 Appendix A
Eye fatigue
Eye fatigue can occur whenever the eyes are focused on a nearby object for a
long time. This problem occurs because the eye muscles must work harder to
view an object that’s closer than about 20 feet (6 meters). Improper lighting
can hasten the development of eye fatigue. Although eye fatigue is annoying,
there’s no evidence that it leads to permanent damage.
Whenever you’re engaged in an activity that involves close-up work—such as
reading a magazine, doing craft work, or using a computer—be sure to have
sufficient glare-free lighting and give your eyes frequent rest breaks by
looking up and focusing on distant objects. Remember to have your eyes
examined regularly.
To prevent discomfort and eye fatigue:
m Arrange your work space so that the furniture is properly adjusted for you
and doesn’t contribute to an awkward working posture.
m Take frequent short breaks to give your muscles and eyes a chance to rest.
Arranging your office
Here are some guidelines for adjusting the furniture in your office to
accommodate your physical size and shape.
m An adjustable chair that provides firm, comfortable support is best. Adjust
the height of the chair so your thighs are horizontal and your feet flat on
the floor.
The back of the chair should support your lower back (lumbar region).
Follow the manufacturer’s instructions for adjusting the backrest to fit your
body properly.
m When you use the computer keyboard, your shoulders should be relaxed.
Your upper arm and forearm should form an approximate right angle, with
your wrist and hand in roughly a straight line.
Health, Safety, and Maintenance Tips 113
You may have to raise your chair so your forearms and hands are at the
proper angle to the keyboard. If this makes it impossible to rest your feet
flat on the floor, you can use a footrest with adjustable height and tilt to
make up for any gap between the floor and your feet. Or you may lower
the desktop to eliminate the need for a footrest. Another option is to use a
desk with a keyboard tray that’s lower than the regular work surface.
m Position the mouse at the same height as your keyboard. Allow adequate
space to use the mouse comfortably.
m Arrange the monitor so the top of the screen is slightly below your eye
level when you’re sitting at the keyboard. The best distance from your eyes
to the screen is up to you, although most people seem to prefer 18 to 28
inches (45 to 70 cm).
m Position the monitor to minimize glare and reflections on the screen from
overhead lights and windows. You may want to use a tiltable monitor
stand. The stand lets you set the monitor at the best angle for viewing,
helping to reduce or eliminate glare from lighting sources you can’t move.
Thighs horizontal
Shoulders relaxed
Screen positioned to avoid
reflected glare
Forearms and hands
in a straight line
Forearms level
or tilted up slightly
Lower back supported
Feet flat on the floor
Top of the screen at or slightly
below eye level (You may need
to adjust the height of your
monitor by placing something
under it or by raising your
work surface.)
Clearance under work surface
45–70 cm (18–28 in.)
114 Appendix A
Avoiding fatigue
m Change your seated position, stand up, or stretch whenever you start to feel
tired. Frequent short breaks are helpful in reducing fatigue.
m Use a light touch when typing or using a mouse and keep your hands and
fingers relaxed.
m Some computer users may develop discomfort in their hands, wrists, or
arms after intensive work without breaks. If you begin to develop chronic
pain or discomfort in your hands, wrists, or arms, consult a qualified
health specialist.
m Allow adequate work space so that you can use your keyboard and mouse
comfortably. Place papers or other items so you can view them easily while
using your computer. A document stand may make reading papers more
comfortable.
m Eye muscles must work harder to focus on nearby objects. Occasionally
focus your eyes on a distant object, and blink often while you work.
m Clean your screen regularly. Keeping the screen clean helps reduce
unwanted reflections.
What about electromagnetic emissions?
There has been recent public discussion of the possible health effects of
prolonged exposure to extremely low frequency (ELF) and very low
frequency (VLF) electromagnetic fields. Such fields are associated with
electromagnetic sources such as television sets, electrical wiring, and some
household appliances—as well as computer monitors.
Apple has reviewed scientific reports and sought the counsel of government
regulatory agencies and respected health organizations. Based on the
prevailing evidence and opinions, Apple believes that the electric and
magnetic fields produced by computer monitors do not pose a health risk.
In response to those customers who wish to reduce their exposure to
electromagnetic fields, Apple has lowered the emission levels of our products.
We are also actively encouraging further scientific research so we can
continue to promote the health and safety of our customers and employees.
Health, Safety, and Maintenance Tips 115
Safety instructions
For your own safety and that of your equipment, always take the following
precautions.
Turn off the computer completely and disconnect the power plug (by pulling
the plug, not the cord) if any of the following conditions exists:
m the power cord or plug becomes frayed or otherwise damaged
m you spill something into the case
m your Macintosh is exposed to rain or any other excess moisture
m your Macintosh has been dropped or the case has been otherwise damaged
m you suspect that your Macintosh needs service or repair
m you want to clean the case (use only the recommended procedure
described later in this chapter)
Be sure that you always do the following:
m Keep your Macintosh away from sources of liquids, such as wash basins,
bathtubs, shower stalls, and so on.
m Protect your Macintosh from dampness or wet weather, such as rain, snow,
and so on.
m Read all the installation instructions carefully before you plug your
Macintosh into a wall socket.
m Keep these instructions handy for reference by you and others.
m Follow all instructions and warnings dealing with your system.
WARNING Electrical equipment may be hazardous if misused. Operation
of this product, or similar products, must always be supervised by an
adult. Do not allow children access to the interior of any electrical
product and do not permit them to handle any cables.
116 Appendix A
Handling your computer equipment
Follow these guidelines for handling your computer and its components:
m When setting up your computer, place components on a sturdy, flat surface,
and carefully follow all setup instructions.
m When connecting or disconnecting a cable, always hold the cable by its
connector (the plug, not the cord).
m Turn off your computer and all its components before connecting or
disconnecting any cables to add or remove any component. Failure to do so
could seriously damage your equipment.
m Never force a connector into a port. If the connector and port do not join
with reasonable ease, they probably don’t match. Make sure that the
connector matches the port and that you have positioned the connector
correctly in relation to the port.
m Take care not to spill any food or liquid on the computer, keyboard, mouse,
or other components. If you do, turn your computer off immediately and
unplug it before cleaning up the spill. Depending on what you spilled and
how much of it got into your equipment, you may have to bring your
equipment to an Apple-authorized service provider.
m Protect the computer and its components from direct sunlight and rain or
other moisture.
m Keep all ventilation openings clear and unobstructed. Without proper air
circulation, components can overheat, causing damage or unreliable
operation.
WARNING This equipment is intended to be electrically grounded. Your
Macintosh is equipped with a three-wire grounding plug—a plug that
has a third (grounding) pin. This plug will fit only a grounded AC
outlet. This is a safety feature. If you are unable to insert the plug into
the outlet, contact a licensed electrician to replace the outlet with a
properly grounded outlet. Do not defeat the purpose of the grounding
plug!
Health, Safety, and Maintenance Tips 117
Handling the monitor
Follow these procedures for handling a monitor:
m Turn down the screen brightness control if you leave the computer turned
on for extended periods. If the brightness is not turned down, the image on
the screen could “burn in” and damage the screen.
You can also use a “screen saver” program, which dims or varies the image
on the screen when the computer has been idle for a specified period of
time. These programs are available from independent suppliers and user
groups.
m Make sure that the ventilation openings on the computer and the monitor
are clear and unobstructed.
m Some large monitors cannot safely be placed on top of the computer.
Check the instructions that came with the monitor for setup information.
m If there is interference on the monitor’s screen or on a television or radio
near your computer, move the affected equipment farther away.
Handling the keyboard
Take care not to spill any liquid on the keyboard. If you do, turn off your
computer immediately.
m If you spill liquid that is thin and clear, unplug the keyboard, turn it upside
down to let the liquid drain out, and let it dry for 24 hours at room
temperature. If, after you take these steps, the keyboard doesn’t work, take
it to an Apple-authorized service provider for repair.
m If you spill liquid that is greasy, sweet, or sticky, unplug the keyboard and
take it to an Apple-authorized service provider for repair.
118 Appendix A
Handling floppy disks
125° F (52° C)
50° F (10° C)
Keep disks dry.
Do not use a
pencil or an
eraser on a disk
or disk label.
Store disks at
temperatures
between 50° F
and 125° F.
Do not touch the
exposed part of the
disk behind the
metal shutter.
Keep disks away
from magnets.
Avoid exposing
disks to extremely
hot temperatures.
Health, Safety, and Maintenance Tips 119
Handling CD-ROM discs
Keep these important safety instructions in mind as you use CD-ROM discs:
m Hold a disc by the edges or by one edge and the center hole. Do not touch
the disc surface.
m To clean discs, wipe the shiny surface with a soft damp cloth, working in
straight lines from center to edge. Do not use any form of cleaning agent.
m To avoid damage to your discs, keep these points in mind:
Do not put tape
on discs.
Do not scratch
discs.
Do not write on
discs.
Do not spill liquids
on discs.
Do not get
dust on discs.
Do not expose discs
to direct sunlight.
120 Appendix A
Other important safety instructions to keep in mind as you use your
CD-ROM player:
m Position your computer so that when the tray opens, it doesn’t bump
into anything.
m Do not leave the disc tray open. If dust gets on the lens of the CD-ROM
player, the player may have problems reading your compact discs.
m Do not put anything (for instance, a cup) on top of the tray when it is open.
m Do not force the tray open by hand.
m Do not wipe the lens with a paper towel or other abrasive surface. If you
need to clean the lens, see an Apple-authorized service provider for a lens
cleaner.
m Never transport your computer with a disc inside the CD-ROM player.
m Keep your computer equipment away from any source of liquid (such as
wash basins, bathtubs, and shower stalls). If you drink coffee or other
beverages while you’re at your computer, take care not to spill.
m Avoid exposing your equipment to damp or wet weather. If your system is
near a window, be sure the window is closed in rainy weather.
The tray on your CD-ROM player automatically closes when you shut down
your computer. You may want to open the tray and take out your CD-ROM
disc before shutting down.
Health, Safety, and Maintenance Tips 121
122 Appendix A
Ejecting a floppy disk
For instructions on ejecting a floppy disk or a removable media disk, see the
“Disks” topic of Macintosh Guide, available in the Guide (h) menu.
If you can’t eject a floppy disk
If you can’t eject a floppy disk in the usual way, try the following in order:
m Hold down the x and Shift keys and press the number 1 key on your
keyboard to eject a disk in the internal disk drive.
m Turn off the computer. If the disk isn’t ejected, then hold down the button
on your mouse or other pointing device while you turn the computer on
again.
m Locate the small hole near the disk drive’s opening, and carefully insert the
end of a large straightened paper clip into it. Push gently until the disk is
ejected. Do not use excessive force.
If nothing works, take the computer or disk drive to your Apple-authorized
service provider to have the disk removed.
Power supply
The power supply in your computer is a high-voltage component and should
not be opened for any reason, even when the computer is off. If the power
supply needs service, contact your Apple-authorized dealer or service
provider.
Cleaning your equipment
Follow these general rules when cleaning the outside of your computer and
its components:
m Use a damp, soft, lint-free cloth to clean the computer’s exterior. Avoid
getting moisture in any openings.
m Don’t use aerosol sprays, solvents, or abrasives.
Cleaning the computer case
To clean the case, do the following:
1 Turn off the computer completely and then disconnect the power plug. (Pull the plug, not
the cord.)
2 Wipe the surfaces lightly with a clean, soft cloth dampened with water.
Cleaning the monitor
To clean the screen, put household glass cleaner on a soft cloth and wipe the
screen. Don’t spray the cleaner directly on the screen, because the liquid
might drip into the monitor or computer.
Cleaning the mouse
The mouse contains a small ball that must roll smoothly for the mouse to
work properly. You can keep this ball free of dirt and grease by using the
mouse on a clean, lint-free surface and cleaning it occasionally.
You need a few cotton swabs and a clean, soft, lint-free cloth.
1 Turn off your computer.
Health, Safety, and Maintenance Tips 123
2 Turn the mouse upside-down and turn the plastic ring on the bottom counterclockwise
to disengage it.
If you have an older mouse, you may need to press the plastic ring (rather
than turn it) to disengage it.
If the mouse is locked, see the next section, “Locking and Unlocking the
Mouse,” for instructions on how to unlock it.
3 Turn the mouse right-side up with one hand and catch the ring and the ball with your
other hand.
4 Clean the three small rollers inside the mouse with a cotton swab moistened with water.
Rotate the rollers to clean all around them.
124 Appendix A
5 Wipe the mouse ball with a clean, soft, dry, and lint-free cloth.
6 If necessary, wash the mouse ball with warm soapy water (use a mild soap such as a
dishwashing liquid) and then dry the mouse ball thoroughly.
7 Gently blow into the mouse case to remove any dust that has collected there.
8 Put the ball and the ring back in place.
Your mouse should roll smoothly across your mouse pad or desk. If it doesn’t,
repeat these instructions carefully.
Health, Safety, and Maintenance Tips 125
Locking and unlocking the mouse
Some mouse devices can be locked so that the ball can’t be removed. A
locking mouse has a small hole on the plastic ring.
To lock the mouse, follow these steps:
1 Insert a straightened paper clip into the hole on the plastic ring.
2 Press down on the paper clip while you turn the ring clockwise.
Turn the ring a very short distance, until it stops. When the recessed area on
the ring is not lined up with the recessed area surrounding the ring, the
mouse is locked.
The mouse ring is locked when the recessed area on the ring
does not line up with the recessed area surrounding the ring.
Recessed area on ring
Recessed area surrounding ring
Insert a straightened paper clip into this hole.
(The hole may be located here on your mouse.)
126 Appendix A
To unlock the mouse, follow these steps:
1 Insert a straightened paper clip into the hole on the plastic ring.
2 Press down on the paper clip while you turn the ring counterclockwise.
Turn the ring a very short distance. When the recessed area on the ring is
lined up with the recessed area surrounding the ring, the mouse is unlocked.
The mouse ring is unlocked when the recessed area on the
ring lines up with the recessed area surrounding the ring.
Recessed area on ring
Recessed area surrounding ring
Insert a straightened paper clip into this hole.
(The hole may be located here on your mouse.)
Health, Safety, and Maintenance Tips 127
You can install printed circuit boards (called cards) for video and graphics
applications, networking and communications, additional processing power,
or other purposes. The cards fit into expansion slots inside the computer.
Your Macintosh has six expansion slots, each designed to accept a Peripheral
Component Interconnect (PCI) card. There is also an expansion slot that
contains the computer’s processor card. (The processor card can be upgraded
by replacing it with a more powerful processor card.)
IMPORTANT Some cards may need to be installed by an Apple-authorized
service provider. Check the information that came with the card.
WARNING If an expansion card requires an adapter, be sure to use the
adapter card designed specifically for your model of the computer.
Failure to do so could damage the card and your computer.
129
Appendix B
Installing an Expansion Card
Read this appendix for instructions
on installing an expansion card
in your computer.
Expansion card power requirements
The combined power consumption of expansion cards must not exceed the
limits specified for your Macintosh model. If you have more than one
expansion card installed, check the information that came with your cards to
make sure that their power consumption is within the limits specified in the
Technical Information booklet.
Installing an expansion card
IMPORTANT Some cards may need to be installed by an Apple-authorized
service provider. Check the information that came with the card.
1 Turn off the computer.
Leave the computer plugged in to ground it.
2 Loosen the six large screws at the corners and sides of the back panel.
Do not completely remove the screws or the back panel.
130 Appendix B
3 Remove the cover from the computer.
Slide the cover away from the back panel an inch or two. Then raise the cover
straight up and off the computer.
Installing an Expansion Card 131
4 Touch the metal part of the power supply case inside the computer to discharge static
electricity.
Always do this before you touch any parts, or install any components, inside
the computer.
Power supply
132 Appendix B
5 Lower the auxiliary fan.
Squeeze the sides of the fan and pull down.
To lower the auxiliary fan, squeeze the sides to unlatch it.
Installing an Expansion Card 133
6 Being careful not to touch the sharp edges, pull out the metal access port cover behind
the expansion slot you want to use, and set the access port cover aside.
7 Remove the card from its static-proof bag.
Hold the card by its edges to avoid touching the connector.
Connector
1 Press the two levers
apart that are next to
the card access port
to release the access
port cover.
2 Slide the access port cover out and away from the access port.
134 Appendix B
8 Align the connector end of the card with the expansion slot.
9 Press the card gently but firmly until the connector is fully inserted.
m Slide the card between the two levers that held the access port cover you
removed earlier. You may need to press the levers apart slightly to guide the
card between them.
m Don’t force the card. If you meet a lot of resistance, pull the card out and
try again.
m To see if the card is properly connected, pull it gently. If it resists and stays
in place, it’s connected. (Make sure you don’t pull the card so much that
you accidentally disconnect it.)
If you have other cards to install, put them in now by repeating steps 6
through 9.
Connector Expansion slot
If your expansion card is
full-length, be sure that
it engages the card guide
in the computer’s interior.
Installing an Expansion Card 135
10 Lift the auxiliary fan back into place.
When the card is properly seated, the levers
snap into place and secure the card.
Snap the auxiliary
fan back into place.
Processor card
This guide on the auxiliary
fan housing engages the
processor card in the computer.
136 Appendix B
11 Replace the cover on the computer.
Lower the cover all the way down onto the case. Push the cover back until it
touches the back panel.
12 Tighten the screws on the back panel.
You are now finished installing the card. You may turn on the computer and
start using the new card.
WARNING Always replace the cover before turning the computer on.
Installing an Expansion Card 137
Upgrading the processor
Your computer’s processor can be upgraded with the installation of a
processor upgrade card.
To upgrade your processor, remove the old processor card, then follow the
procedure in this chapter for installing expansion cards to install the new
processor card. (Note that you do not need to remove the access port cover as
described in step 6.)
Refer to the documentation that came with the processor upgrade card for
instructions specific to the card.
Processor card (behind auxiliary fan)
138 Appendix B
139
Your computer keyboard contains certain special keys that typewriter
keyboards don’t have. Many of these keys allow you to give commands to the
computer without using the mouse. For example, in many application
programs, you can press the x (Command) key at the same time as the Q key
to quit a program.
The following table describes what you can do with the special keys on your
keyboard. The special keys on your keyboard depend on the model of
keyboard you have; some keyboards do not have all the keys listed here.
Special keys on Apple keyboards
Arrow keys Use to move the insertion point, as an alternative to using the
pointer. In some programs, the arrow keys have other functions.
Caps Lock key Use to capitalize a series of letters (numbers and symbols
aren’t affected).
Clear key Use to delete the current selection (or use the Delete key).
In some programs, Clear has other functions.
x (Command) key Use in combination with other keys as an alternative to
choosing a menu command.
continued .
Read this appendix to learn
how to use the special
keys on your keyboard.
caps
lock
num
lock
clear
Appendix C
Special Keys on Your Keyboard
Special keys on Apple keyboards (continued)
Control key In combination with other keys, this key provides shortcuts or
modifies other actions.
Delete key Use to delete selected material, or the character to the left of the
insertion point.
Enter key In a dialog box, pressing Enter is the same as clicking the
outlined button. In some programs, pressing this key confirms
information you have provided.
Escape key The function of this key depends on the program you’re using.
Function keys Some programs allow you to use the 12 function keys to give
commands. You can assign commands or action sequences to
function keys with special utility programs.
Option key Use in combination with other keys to produce special
characters or modify actions.
Numeric keys Use to produce numbers and mathematical symbols; some
programs use these keys as function keys to initiate actions.
Power key On some models, press to turn on the computer. Also press to
shut down the computer on certain models.
Return key Use to move the insertion point to the beginning of the next line.
In a dialog box, pressing Return is the same as clicking the
outlined button.
Shift key Use to produce capital letters (or the upper character
on the key).
Tab key Use to move the insertion point to the next stopping place
(such as a tab stop or field in a dialog box or program).
Other special keys The function of these keys depends on the operating system
and program you’re using.
140 Appendix C
delete
enter
esc
F1
option
alt
num
lock
clear = / *
7
4
0
8
5
2
9
6
3
enter
1
.
return
shift
help home
end
ins
del
page
up
page
down
tab
control
Typing special characters and symbols
You can type a variety of international and other special symbols and
characters (including characters with diacritical marks, such as accents)
by pressing combinations of keys.
The Key Caps program, which is installed with your system software, shows
you the characters produced when you type certain keys and key
combinations in the fonts available on your computer. Choose Key Caps from
the Apple (K) menu, then choose the font from the Key Caps menu.
To have Key Caps show more options for special characters, press each of
these keys or key combinations: Option, Shift, Shift-Option, Shift-x, and
Option-x.
Special Keys on Your Keyboard 141
Characters available
in the Chicago font
Characters appear
here when you press
keys on the keyboard
or click them in
the window.
Characters available
in the Chicago font
when the Option key
is pressed
The highlighted key represents the
key held down on the keyboard—
in this case, the Option key.
If you press the Option key, Key Caps outlines lightly the keys that you can
use in combination with letter keys to type letters with accents or other
diacritical marks.
If you see rectangles: If you see rectangles instead of diacritical marks on
some of the pictures of keys in Key Caps, try pressing Option-x to see the
diacritical marks. However, you only need to use the Option key (not
Option-x) in combination with the other keys to type letters with diacritical
marks.
If you press the Option key at the same time as a key for a specific diacritical
mark and then release both keys, Key Caps outlines in bold the keys for
letters that can be typed with that mark. (You’ll see that most key
combinations for diacritical marks can be used with the Space bar as well
as letter keys—producing the mark without a letter.)
The most common diacritical marks and how to create them are summarized
next.
Diacritical mark Key combination
Grave accent ( ` ) Option-`, then type the character
Acute accent ( ´ ) Option-e, then type the character
Circumflex (^) Option-i, then type the character
Tilde (~) Option-n, then type the character
Umlaut ( ¨ ) Option-u, then type the character
The letter “c” with a cedilla (ç) Option-c
m To type a letter or a space with a specific diacritical mark, press the Option key and
the key for the mark simultaneously. Then type the letter that needs the mark.
If you are having trouble getting a mark and letter to appear together, try
again. Be sure to press the Option key before (or at the same time as) the key
for the mark; then, after you release both keys, type the letter to be marked.
142 Appendix C
Special key combinations
If difficulties with your mouse or computer don’t allow you to use standard
methods of quitting a program or restarting your computer, you can try using
these special key combinations.
To do this... …press this key combination
Force a program to quit x-Option-Esc
Force the computer to restart x-Control-Power key
Here are other key combinations you may find useful.
To do this... …press this key combination
Start a “debugging” application used by software programmers* x-Power key
Start the computer from a CD-ROM disc C key (at startup)
Rebuild desktop Shift key (while starting up)
release, then hold Option-x
*If you do not have a debugging program installed, your screen displays a caret prompt (>). To return to the desktop,
type “G.”
Special Keys on Your Keyboard 143
A
AAUI network, connecting to 45
accent marks, typing 141–142
access covers for expansion slots 35, 134
active program 16, 49, 50
acute accent (´), typing 142
adapter for expansion card 129
ADB port. See Apple Desktop Bus
(ADB) port
America Online, obtaining Apple
software updates 89
amplifier, connecting 37–38
Apple-authorized service providers,
contacting. See also
troubleshooting
attaching devices to the internal SCSI
interface 40
connecting additional equipment 33
disk initialization failure 92, 97
installing additional DRAM 44
installing expansion cards 129, 130
interference with radio and television
reception vi
lens cleaner for CD-ROM lens 121
liquid or other spills on computer
equipment 117, 118
pointer doesn’t move when you move
the mouse 74
problems ejecting a floppy disk
70, 122
problems opening tray of CD-ROM
player 79
problems starting up the computer 67
reinstalling system extensions or
application programs 100, 104
removing built-in terminators 42
repair service 62, 75
replacing the clock battery 65
servicing the power supply 122
AppleCD Audio Player 56, 82
Apple Desktop Bus (ADB) port 8, 9,
35, 74
Apple Extensions Manager 49
Apple Extras folder
application programs contained in 47
as a source of help 19
AppleLink software updates,
obtaining 86
Apple (K) menu, Key Caps program
141–142
Apple PlainTalk Microphone 2. See also
microphone
AppleScript program 47
Apple software updates, obtaining 86–89
AppleTalk control panel 45–46
145
Index
If you can’t find what you’re looking for
in this index, look in Macintosh Guide—
available in the Guide (h) menu
on your computer.
Application menu
Hide Others/Show All commands 50
using 16
working with several programs at a
time 49–50
application programs
backing up 48
can’t be found 75
can’t be opened 76
compatibility issues with older
Macintosh programs 77
icons for 17
included with your computer 47
installing and using 48–50
opening/saving documents with
different file formats 76
Power Macintosh “native”
applications 51–52
reinstalling 72, 100, 104
won’t start or quit unexpectedly
71–72
arrow keys 139
arrow pointer on screen
moving 14–15
what to do if it “freezes” 61, 63,
73–74
At Ease 71, 78
Audio CD Access CD-ROM
extension 80
audio CDs 56, 82
audio equipment, connecting 36–40
auxiliary fan 133, 136
B
backing up
application programs 48
files and disks 51
Balloon Help 30
battery in clock, replacing 65
blinking question mark icon 66, 98
“bomb” message/icon on screen 61, 63,
72, 83
brightness control 13, 64, 118
BOOTP bootstrapping protocol 46
C
cables
audio equipment 37, 82
Ethernet 45
external stereo speaker 39
keyboard 2, 8, 9, 73, 74
monitor 2, 7, 65
mouse 8, 9, 73
network 45
printer 85
safe handling of 117
SCSI peripheral interface 42
SCSI system 41
Caps Lock key 139
cards. See expansion cards
carpal tunnel syndrome 112
cartridge backup drives, connecting
40–43
CD-ROM discs. See also CD-ROM
system software disc
cleaning 120
ejecting 55
guidelines for handling 120
icon doesn’t appear on desktop 80
inserting 48, 54
problems with 80–81
sharing over a network 58
starting up from 91, 143
storage capacity of 53
using ISO 9660 or High Sierra
discs 81
CD-ROM drive/player
connecting 40–43
icon doesn’t appear on screen 77
illustration 34
installing 44
installing software for 107–108
opening/closing 54, 55, 79
overview 53
playing audio CDs 56, 82
problems using 77–79
safety instructions vii, 121
software installation problems 70, 77,
78, 80
working with Photo CDs 57
146 Index
CD-ROM system software disc, starting
up from
basic instructions 91
installing system software 99,
102, 105
for troubleshooting 66, 67, 68, 70, 80
to use Disk First Aid 95, 98, 101
to use Drive Setup 90, 94
cedilla (ç), typing 142
chains, SCSI 40, 42, 43
chair, adjusting for computer use
113, 114
Chooser, printer settings 85
circumflex (^), typing 142
C key (at startup) to start from a
CD-ROM disc 143
cleaning computer equipment 120,
123–125
clean installation of system software
101–104
Clear key 139
clock in computer keeps time
inaccurately 65
close box 17
in Macintosh Guide window 28, 29
x-Control-Power key to restart the
computer 63
x key 139
x-Option-Esc to quit a program 63, 73,
143
x-Option-p-r to reset PRAM 65
x-Power key to start a debugging
application 143
x-Shift-1 keys to eject a floppy disk 70
compatibility issues with system
extensions or control panels 72,
73, 84
CompuServe, obtaining Apple software
updates 87
computer case, cleaning 123
computer equipment. See equipment
connecting. See also installing
audio equipment 36–40
computer 3
external stereo speakers 39–40
keyboard 8–9
microphone 38–39
monitor 4–7
mouse 8–9
SCSI devices 40–43
to a network 45–46
Control key 140
control panels
AppleTalk 45–46
Extensions Manager 72, 73
Memory 71, 77
Monitors 65
PC Exchange 75, 76
performance problems and 84
Sharing Setup 55
TCP/IP 45–46
turning off 72, 73, 74
cumulative trauma disorders (CTDs) 112
customer support hotline 19. See also
Apple-authorized service
providers
custom installation of system software
105–106
Custom Install dialog box 106, 108
custom utilities, performance problems
and 84
Index 147
D
dampness, protecting the computer from
116, 117, 121
DAT drive, installing 44
Delete key 140
desktop
At Ease 71, 78
hard disk icon doesn’t appear 68
hiding/showing windows on 50
looks unusual 71, 78
rebuilding 64, 68, 75, 143
device drivers for SCSI devices,
installing 41
diacritical marks, typing 141–142
DIMMs 44
disconnecting power to the computer 4
Disk First Aid program 95–97,
98–99, 101
disk repair/recovery programs 97
Disk Tools disk, starting up from
basic instructions 91
for troubleshooting 66, 67, 68, 70, 78
to use Disk First Aid 98, 101
to use Drive Setup 90, 94, 95
documents. See also files
can’t open 75, 76, 81
icons for 17
DOS disks, using in the Macintosh 69
DOS documents, problems opening on
the Macintosh 75, 76
DRAM Dual Inline Memory Modules
(DIMMs) 44
Drive Setup program
initializing a hard disk 90, 92
making a hard disk available 68
overview 47
testing a hard disk 94–95
updating a hard disk 99, 102
dual-plug adapter 39
dynamic random-access memory
(DRAM), expanding 44
E
Easy Access 74
Easy Install dialog box 99, 102, 103
ejecting
CD-ROM discs 55
floppy disks, problems with 122
electromagnetic emissions, health effects
of exposure to 115
Empty Trash command (Special
menu) 17
Enter key 140
equipment
arranging and adjusting for optimal
use 112, 113–114
cleaning 123–125
guidelines for handling 117–121
illustration 2, 34–35
safety precautions 116
error messages. See under
troubleshooting
Escape key 140
Ethernet cables 45
Ethernet network 45
connecting to 45–46
Ethernet ports (AAUI, 10BASE-T)
34, 35
expansion cards
installing 4, 129–137
power requirements 130
expansion slots 129, 135
access covers for 35, 134
Extensions Manager control panel 72, 73
external stereo speakers, connecting
39–40
eye fatigue associated with computer use
111, 113, 115
148 Index
F
fatigue from computer use, avoiding
113, 115
FDDI networks 45
files. See also documents
backing up 51
file sharing
ejecting CD-ROM discs and 55
sharing a CD-ROM disc 58
Finder
activating 22, 29
icon 49
floating-point unit (FPU)
requirements 72
floppy disk drive
illustration 34
installing (internal) 44
floppy disks
backing up 51
can’t eject 70
can’t start up from 67
ejecting 122
format/density issues 69
guidelines for handling 119
repairing 95–97
starting up from 91
unreadable 69
folders
Apple Extras 19, 47–48, 68
icons for 17
Previous System Folder 103, 104
System Folder 49, 52, 84, 97,
101–104
Utilities 68, 92, 94, 96, 98, 101
Foreign File Access CD-ROM
extension 80
formatting a hard disk 90–92
Function keys 140
furniture for computer use, arranging
113–114
G
graphics, Photo CD images as a source
for 57
grave accent (`), typing 142
grounding the computer 3, 117
Guide (h) menu. See also
Macintosh Guide
displaying 15, 16, 22
Hide Balloons command 30
Shortcuts command 31–32
Show Balloons command 30
H
hard disk
backing up 51
icon 12, 17
icon does not appear on the desktop
68, 90, 93
initializing 90–92
making available 68
repairing 93, 95–97
testing 94–95
updating 99, 102
hard disk drive
connecting 40–43
illustration 34
installing (internal) 44
hard disk space, using as memory 51
health-related information about
computer use 111–115
help. See Apple-authorized service
providers; Balloon Help;
customer support hotline;
Guide (h) menu; Macintosh
Guide; troubleshooting
Hide Balloons command (Guide [h]
menu) 30
Hide Others command (Application
menu) 50
hiding/showing windows on the
desktop 50
High Sierra CD-ROM discs 81
“Huh?” button, Macintosh Guide
window 29
Index 149
I, J
icons
ADB 8, 9
application program 17
blinking question mark 66, 98
defined 17
Disk First Aid 96, 98, 101
disk with an X 67
document 17
do not appear correctly on screen 68
Finder 49
folder 17
hard disk 12, 17
ports 34–35
“sad Macintosh” 67
SCSI 40
Trash 17
Index button, Macintosh Guide 23,
25–26
initializing a hard disk 90–92
inserting a CD-ROM disc 48
Installer program
clean installation of system software
101–104
custom installation of system software
105–106
installing CD-ROM software 70, 78,
107–108
normal installation of system software
99–100
installing. See also connecting
additional DRAM 44
CD-ROM software 107–108
device drivers for SCSI devices 41
expansion card 4, 129–137
internal storage devices 44
monitor card 4
processor upgrade card 138
system extensions 100, 104
system software 97–106
interference with radio and television
reception vi, 118
international characters and symbols,
typing 141–142
Internet
configuring your system for 45–46
ISDN networks 45
obtaining Apple software updates
88–89
ISO 9660 CD-ROM discs 81
K
keyboard
connecting 8–9
correct posture for using 113–114
guidelines for handling 118
illustration 2, 34
ports 8, 9
typing produces nothing on screen 74
keyboard cable
checking connections 73, 74
illustration 2
plugging in 8, 9
keyboard shortcuts 31–32
keyboard tray 114
Key Caps program (Apple [K] menu)
141–142
key combinations
for common diacritical marks 142
for special functions 143
150 Index
L
LaserWriter Select 300 model, printer
driver compatibility 85
liquid spills on computer equipment 116,
117, 118, 121
LocalTalk network, connecting to 45
locking the mouse 126
Look For button, Macintosh Guide 23,
27–28
M
Macintosh Easy Open 49
Macintosh Guide. See also Guide (h)
menu
activating 22
closing 28, 29
Index button 23, 25–26
Look For button 23, 27–28
moving the window out of the way 29
returning to main window 24, 26, 29
tips for using 29
Topics button 23–24
Macintosh Tutorial 14–15
memory
allocating more 71
DRAM 44
expanding 44
“not enough memory” message 71–72
PRAM 65
using hard disk space as 51
virtual memory 71
VRAM 44
Memory control panel 71, 77
memory requirements for Power
Macintosh applications 51
menu bar 16
menus 15, 16
microphone
connecting 38–39
illustration 2, 34
modem port (GeoPort) 34, 35
Modern Memory Manager, turning
off 77
moisture, protecting the computer from
116, 117, 121
monitor
brightness control 13, 64, 118
cleaning the screen 115, 123
guidelines for handling 118
illustration 2, 34
placement and position of 5, 114
turning on 12
monitor cable 2, 7, 73
monitor card 4
monitor port 7, 34, 35
monitor power cord 5–6
monitor power cord socket 6, 35
Monitors control panel 65
mouse
cleaning 123–125
connecting 8–9
how to use 14–15
illustration 2, 34
locking/unlocking 126–127
problems with 73–74
mouse button 14, 15
mouse cable 8, 9, 73
mouse ports 8, 9
mouse shortcuts 31–32
musculoskeletal discomfort associated
with computer use 111, 112
N
network cables 45
networks
connecting to 45–46
sharing a CD-ROM disc
and 58
normal installation of system software
98–101
“not enough memory” message 52
Numeric keys 140
Index 151
O
Option-x keys to rebuild the desktop 64,
68, 143
Option key 140
combined with other keys for typing
diacritical marks 142
P
Parameter RAM (PRAM), resetting 65
PC Exchange control panel 69, 75, 76
performance issues 84
Peripheral Component Interconnect (PCI)
cards 45, 129
Personal LaserWriter LS and 300 models,
printer driver compatibility 85
Photo CDs 57, 83
plugging in the computer 3
pointer. See arrow pointer on screen
ports
Apple Desktop Bus (ADB) 8, 9,
35, 74
Ethernet (AAUI) 34, 35
Ethernet (10BASE-T) 34, 35
joining connectors to 117
keyboard 8, 9
modem (GeoPort) 34, 35
monitor 7, 34, 35
mouse 8, 9
printer (GeoPort) 34, 35
SCSI 34, 35, 40
security lock 35
sound input/output 35–39
power button 18, 34, 63
power cords
checking connections 65
connecting the monitor 5–6
disconnecting the computer’s cord 4
illustration 2, 3
power cord sockets 3, 6, 35
Power key
illustration 11, 34, 140
restarting the computer 63
turning on the computer 11, 18,
34, 140
Power Macintosh “native” application
programs 51–52
Power-on light 34
PowerPC microprocessor ix
power supply 122, 132
power switch on monitor 12
PowerTalk program 47
precautions. See safety instructions
Previous System Folder 103, 104
printer driver compatibility issues 85
printer port (GeoPort) 34, 35
printers
connecting 40–43
problems with 85
problems. See troubleshooting
processor upgrade card, installing 138
programs. See application programs and
names of specific programs
Q
QuickDraw GX program 47
R
radio and television reception,
interference with vi, 118
RAM. See memory
Read Me file 19
rebuilding the desktop 64, 68, 75, 143
Reduced Instruction Set Computing
(RISC) technology ix
reinstalling
CD-ROM software 107–108
system software 97–106
152 Index
repairing disks 93–97
repetitive stress injuries (RSIs) 112
replacing special software in new System
Folder 104
replacing the clock battery 65
Restart command (Special menu) 63
restarting the computer
methods for 63, 143
troubleshooting and 66–67, 70–73,
75, 78, 80
Return key 140
S
“sad Macintosh” icon 67
safety instructions
CD-ROM discs 120
CD-ROM drive/player vii, 121
cleaning equipment 120, 123–125
connecting a SCSI or ADB device 33
floppy disks 119
general precautions 116
handling equipment 117–118
installing additional DRAM 44
scanners, connecting 40–43
screen. See also monitor
appears dark 64
cleaning 115, 123
minimizing glare and reflections
114, 115
screen saver programs 64, 118
scroll arrows 17
scroll bar, Macintosh Guide Index
window 25
SCSI chains 40, 42, 43
SCSI devices
computer doesn’t recognize 66
connecting 40–43
SCSI ID numbers 41, 66, 68, 77, 93
SCSI interface (internal) 40
SCSI peripheral interface cable 42
SCSI port 34, 35, 40
SCSI system cable 41
SCSI terminators 42
security lock ports 35
shared libraries for Power Macintosh
applications 52, 76
Sharing Setup control panel 55
Shift key 140
Shortcuts command (Guide [h] menu)
31–32
Show All command (Application
menu) 50
Show Balloons command (Guide [h]
menu) 30
showing/hiding windows on the
desktop 50
Shut Down command (Special menu)
18, 71, 78
size box 17
sleep mode 64
slider, Macintosh Guide Index
window 25
software license agreement 86
software updates, obtaining 86–89
sound input/output ports 35–39
special characters and symbols, typing
141–142
special keys 140, 143
Special menu
Empty Trash command 17
Restart command 63
Shut Down command 18, 71, 78
spills on computer equipment 116, 117,
118, 121
startup disk, defined 97
static electricity, discharging 132
stereo miniplug 37, 39
stereo speakers, connecting 39–40
StyleWriter and StyleWriter II models,
printer driver compatibility 85
switching to another program 50
symbols and international characters,
typing 141–142
Index 153
system extensions
performance problems and 84
reinstalling 100, 104
turning off
before installing application
programs 49
to rebuild the desktop 68, 75
to resolve software problems 70,
72, 73, 78
System Folder
creating a new one 101–104
decreased performance and 84
discarding extras 49
replacing special software items 104
shared libraries and 52
system software and 97
system software
installing/reinstalling 97–106
problems starting up the computer 66
System software floppy disks, starting up
from
basic instructions 91
installing CD-ROM software 107
installing system software 99,
102, 107
T
Tab key 140
tape backup drives, connecting 40–43
tape recorder, connecting 37–38
TCP/IP control panel 45–46
television and radio reception,
interference with vi, 118
temperature ranges for storing floppy
disks 119
10BASE-T network, connecting to 45
terminators for SCSI chains 42
testing a hard disk 94–95
text box, Macintosh Guide Look For
window 27
Text-to-speech program 47
tilde (~), typing 142
title bar, Macintosh Guide window 29
TokenRing networks 45
Topics button
Macintosh Guide 23–24, 26, 29
Macintosh Shortcuts 31–32
Trash, dragging items to 17
troubleshooting. See also Appleauthorized
service providers
arrow pointer “freezes” on screen 61,
63, 73–74
audio CD problems 82
CD-ROM disc problems 80–81
CD-ROM player problems 77–79
computer’s clock keeps time
inaccurately 65
diagnosing problems 62–63
error messages
“application program can’t be
found” 75
“application program can’t be
opened because a file can’t be
found” 76
blinking question mark icon 66, 98
“bomb” message/icon on screen
61, 63, 72, 83
“Could not create a socket” 46
“not enough memory” message
52, 71
resolving 61, 62
“This is not a Macintosh disk: Do
you want to initialize it?” 80
“Unable to locate host” 46
floppy disks
can’t eject 70, 122
can’t read 69
can’t start up from 67
format/density issues 69
repairing 95–97
hard disk
icon does not appear 68
repairing 93–97
icons
CD-ROM disc icon doesn’t appear
on desktop 80
do not appear correctly on
screen 68
154 Index
network configuration problems 46
Photo CD problems 83
printer problems 85
restarting the computer
can’t restart after installing
software for CD-ROM player
70, 78
can’t restart with CD-ROM disc
inside the player 71, 79
using x-Control-Power key to
restart 63
screen is dark 64
starting up
computer can’t find system
software to start up 66
computer doesn’t recognize SCSI
equipment 66
disk with an X appears on
screen 67
“sad Macintosh” icon appears 67
turning on the computer 13
unusual desktop appears after
computer starts up 71, 78
system is “frozen” 61, 63, 73, 83
system software problems 66
working with programs
application won’t start or quits
unexpectedly 71–72
can’t open a DOS document on the
Macintosh 75, 76
compatibility issues with older
Macintosh programs 77
performance problems 84
typing produces nothing on screen
74–75
using x-Option-Esc to quit a
program 63
turning off Easy Access 74
turning off system extensions. See system
extensions
turning off the computer 18, 34, 116,
117, 140
turning on the computer 11, 13, 18,
34, 140
turning on the monitor 12
tutorial, starting the Macintosh Tutorial
14–15
typing produces nothing on screen 74
U
umlaut (¨), typing 142
unlocking the mouse 127
updated Apple software, obtaining
86–89
updating the hard disk 99, 102
Utilities folder
Disk First Aid program 96, 98, 101
Drive Setup program 68, 92, 94
V
ventilation for computer equipment
117, 118
video RAM (VRAM), expanding 44
viewing PhotoCD images 57
virtual memory 71
virus-protection programs 49
volume control of external speakers 40
W, X, Y
warranty on computer 44
windows, viewing and moving 17
work space, arranging 113–114
Z
zoom box, Macintosh Guide window 29
Index 155
Apple Computer, Inc.
1 Infinite Loop
Cupertino, California 95014-2084
408.996.1010
030-8760-A
Printed in U.S.A.
iPhone 4
Guida alle informazioni
importanti sul prodotto
Questa Guida alle informazioni importanti sul prodotto contiene
informazioni sulla licenza software, sulla normativa, la sicurezza
e la garanzia di iPhone.
Consulta le informazioni sullo smaltimento e il riciclaggio e altre
informazioni sull’ambiente nel Manuale Utente di iPhone all’indirizzo:
support.apple.com/it_IT/manuals/iphone
± Per evitare lesioni, leggi tutte le istruzioni relative al
funzionamento e le informazioni di sicurezza prima di
utilizzare iPhone. Per istruzioni dettagliate sul funzionamento,
leggi il Manuale Utente di iPhone direttamente dal dispositivo
andando all’indirizzo help.apple.com/iphone o utilizzando
il preferito Manuale Utente di iPhone in Safari. Per versioni
scaricabili del Manuale Utente di iPhone e per l’ultima versione
di questa Guida alle informazioni importanti sul prodotto, vai su:
support.apple.com/it_IT/manuals/iphone
Informazioni importanti sull’uso e la sicurezza
ATTENZIONE: la mancata osservanza di queste istruzioni sulla
sicurezza potrebbe essere causa di incendio, scosse elettriche o altri
danni e lesioni a iPhone o ad altre proprietà.
Trasportare e utilizzare iPhone iPhone contiene componenti delicati.
Non fare cadere, non smontare, esporre a microonde, incenerire,
dipingere iPhone e non inserirvi oggetti estranei. Non utilizzare
iPhone se è stato danneggiato, ad esempio se si è rotto, forato o
è stato danneggiato dall’acqua.
I rivestimenti anteriore e posteriore di iPhone sono in vetro. Tale parte
in vetro potrebbe rompersi se iPhone fosse lasciato cadere su una
superficie dura, se ricevesse un forte colpo o se venisse schiacciato,
piegato o deformato. Se il vetro si scheggia o si frantuma, evita di toccare
o di rimuovere la parte danneggiata. Non utilizzare iPhone finché il vetro
non viene sostituito da Apple o da un fornitore di servizi autorizzato da
Apple. La garanzia non risponde dei vetri frantumati a causa di un utilizzo
scorretto o eccessivo.
Puoi proteggere iPhone da eventuali graffi o abrasioni utilizzando una
custodia venduta separatamente.
Mantenere pulito l’esterno di iPhone Pulire iPhone immediatamente
se viene a contatto con agenti contaminanti che possano provocare
macchie,—come ad esempio inchiostro, tinture, trucco, sporcizia, cibo,
olio e lozioni. Per pulire iPhone, scollega tutti i cavi e spegnilo (premi
e tieni premuto il pulsante Sospensione/Riattivazione e fai scorrere il
cursore su schermo). Quindi, usa un panno morbido non sfilacciato e
leggermente umido. Evita di fare entrare umidità nelle aperture. Evita
di usare detergenti per vetri, prodotti generici per la pulizia della casa,
prodotti a spruzzo, solventi, alcol, ammoniaca o sostanze abrasive per
pulire iPhone. La superficie anteriore in vetro è dotata di un rivestimento
oleorepellente. Per rimuovere le impronte, passa un panno morbido
e non sfilacciato su queste superfici. La capacità oleorepellente di tale
rivestimento diminuisce con l’uso normale e diminuisce ulteriormente
strofinando lo schermo con materiale abrasivo; quest’ultima azione può
inoltre graffiare il vetro.
Evitare l’acqua e i luoghi umidi Non esporre iPhone a contatto con
acqua o pioggia, né utilizzarlo in prossimità di luoghi umidi come ad
esempio lavandini o bagni. Fai attenzione a non versare alcun cibo o
liquido su iPhone. Nel caso in cui iPhone si bagni, scollega tutti i cavi,
spegnilo prima di pulirlo e lascialo asciugare completamente prima di
riaccenderlo. Evita di asciugare iPhone con una fonte di calore esterna,
come un forno a microonde o un asciugacapelli. I danni causati a iPhone
dal contatto con liquidi non vengono coperti dalla garanzia.
Riparare o modificare iPhone Non tentare di riparare o modificare
iPhone da solo. iPhone non contiene parti che possano essere
sostituite dall’utente, a eccezione della scheda SIM e dello sportello
SIM, se è il caso. Se disassembli iPhone, compresa la rimozione delle
viti esterne e del rivestimento posteriore, potresti provocare danni
non coperti dalla garanzia. Se iPhone è stato immerso in acqua, è
forato o ha subito un grave danno, evita di utilizzarlo e recati presso
un fornitore di servizi autorizzato da Apple. L’assistenza deve essere
prestata solo da Apple o da un fornitore di servizi autorizzato da
Apple. In caso di dubbi, contatta Apple o un fornitore di servizi
autorizzato da Apple. Per informazioni sull’assistenza, visita il
sito: www.apple.com/it/support/iphone/service/faq
Sostituzione della batteria Non cercare di sostituire la batteria
ricaricabile di iPhone da solo. La batteria deve essere sostituita solo da
Apple o da un fornitore di servizi autorizzato da Apple. Per ulteriori
informazioni sul servizio di sostituzione della batteria, vai su:
www.apple.com/it/batteries/replacements.html
Caricare iPhone Per caricare iPhone, utilizza soltanto il connettore Apple
da Dock a USB con seguenti elementi: (i) un alimentatore di corrente USB
di Apple, (ii) un altro prodotto o accessorio Apple compatibile con iPhone,
(iii) a accessorio di terze parti certificato per l’uso del logo “Works with
iPhone” o “Made for iPhone”, (iv) una porta USB ad alta velocità su un altro
dispositivo compatibile con lo standard USB 2.0 o 1.1, (v) un alimentatore
di corrente conforme a uno dei seguenti standard EN 301489-34, IEC
62684, YD/T 1591-2009, CNS 15285, ITU L.1000 o un altro standard di
interoperabilità applicabile per alimentatori di corrente di telefoni cellulari.
Per collegare iPhone ad alcuni alimentatori di corrente compatibili,
potrebbe essere necessario l’alimentatore Micro USB per iPhone
(disponibile separatamente in alcune regioni) o un altro alimentatore.
Nota: sono compatibili solo gli alimentatori di corrente micro USB
conformi agli standard di interoperabilità applicabili in alcune regioni per
alimentatori di corrente per telefoni cellulari. Per sapere se l’alimentatore
di corrente micro USB usato è conforme a tali standard, contatta il
fabbricante dell’alimentatore.
Leggi le istruzioni di sicurezza relative a tutti i prodotti e accessori prima
di utilizzarli con iPhone. Apple non è responsabile del funzionamento
di accessori di terzi, di eventuali danni da essi causati o della loro
conformità agli standard sulla sicurezza e le normative.
Quando utilizzi l’alimentatore di corrente USB di Apple per caricare
iPhone, assicurati che l’alimentatore sia completamente montato
prima di collegarlo a una presa elettrica. Quindi, inserisci saldamente
l’alimentatore di corrente USB di Apple nella presa elettrica. Non
collegarlo o scollegarlo con le mani bagnate.
L’alimentatore di corrente USB di Apple può scaldarsi durante l’uso. Lascia
sempre un adeguato spazio di ventilazione intorno all’alimentatore di
corrente USB di Apple e manipolalo con cura. Scollega l’alimentatore di
corrente USB di Apple se si verifica una delle seguenti condizioni:
ÂÂ Il cavo e/o la spina di alimentazione sono consumati o danneggiati.
ÂÂ L’alimentatore è stato esposto alla pioggia, a liquidi o a eccessiva
umidità.
ÂÂ L’involucro dell’alimentatore è danneggiato.
ÂÂ Ti sembra che l’alimentatore debba essere riparato.
ÂÂ Desideri pulire l’alimentatore.
Evitare danni all’udito Se utilizzi il ricevitore, gli auricolari, le cuffie o
l’altoparlante a volume elevato, potresti subire una perdita permanente
dell’udito. Utilizza solo ricevitori, auricolari, cuffie o altoparlanti
compatibili con il dispositivo. Attiva l’audio e controlla il volume prima
di inserire gli auricolari o le cuffie nelle orecchie. Col tempo, potresti
adattarti a un volume audio più elevato che potrebbe sembrarti
normale, ma che può danneggiarti l’udito. Se senti fischi o rumori
attutiti, interrompi l’ascolto ed effettua un controllo dell’udito. Più alto
è il volume e in meno tempo l’udito potrebbe subire dei danni. Per
proteggere l’udito gli esperti consigliano di:
ÂÂ Ridurre l’utilizzo di ricevitore, auricolari, cuffie, o altoparlante ad un
volume elevato.
ÂÂ Evitare di aumentare il volume in ambienti rumorosi.
ÂÂ Abbassare il volume se non riesci a sentire le persone che parlano
accanto a te.
Per informazioni su come impostare un limite massimo per il volume su
iPhone, consulta il Manuale Utente di iPhone.
Chiamate di emergenza Non fare affidamento sui dispositivi wireless
per chiamate di importanza fondamentale, come ad esempio le
emergenze mediche. Potrebbe non essere sempre possibile effettuare
chiamate ai servizi d’emergenza con iPhone. I numeri e i servizi di
emergenza variano da regione a regione e talvolta potrebbe essere
impossibile realizzare una chiamata di emergenza a causa della mancata
disponibilità del network o di interferenze ambientali. Alcuni network
cellulari potrebbero non accettare chiamate di emergenza da iPhone
se il dispositivo non è attivato, se non è compatibile o configurato per
funzionare su un determinato network cellulare, se non dispone di
scheda SIM o se la SIM è protetta da PIN, se è il caso.
Guidare o andare in bicicletta in modo sicuro Quando sei alla guida o
in bicicletta, l’utilizzo di iPhone potrebbe provocare distrazioni. Se ritieni
che l’utilizzo di iPhone sia motivo di distrazione o disturbo mentre guidi
o vai in bicicletta, fermati e parcheggia prima di effettuare o rispondere
a una chiamata. Quando sei alla guida o in bicicletta, l’utilizzo di iPhone,
con o senza gli auricolari (anche in un solo orecchio), è sconsigliato; in
alcune zone è vietato per legge. Considera l’utilizzo di un dispositivo
vivavoce compatibile con iPhone. In alcune zone potrebbe essere
necessario l’utilizzo di un dispositivo vivavoce. Controlla e rispetta le leggi
e la normativa relativa all’uso di dispositivi portatili come iPhone nelle
zone in cui stai guidando o andando in bicicletta.
Navigazione sicura Non fare affidamento sulle applicazioni di iPhone
che forniscono mappe, indicazioni tramite bussola, informazioni
sull’orientamento, informazioni sul traffico, indirizzi o navigazione basata
sulla localizzazione per stabilire posizioni, prossimità, distanze, condizioni
del traffico e indicazioni con precisione. Tali applicazioni dovrebbero
essere utilizzate solo per un’assistenza di navigazione basica.
Mappe, gli indirizzi e le applicazioni di localizzazione dipendono dai
servizi di dati. Tali servizi sono soggetti a modifiche e cambiamenti e
potrebbero non essere disponibili in tutte le aree; per questo motivo, le
mappe, le indicazioni tramite bussola digitale, gli indirizzi, le condizioni
del traffico o informazioni di localizzazione potrebbero essere imprecisi,
incompleti o non essere disponibili.
iPhone contiene una bussola digitale interna situata nell’angolo
superiore destro del dispositivo. La precisione delle rotte indicate dalla
bussola digitale potrebbe essere alterata da interferenze magnetiche o
da altre interferenze ambientali, compresa l’interferenza causata dalla
vicinanza ai magneti contenuti negli auricolari di iPhone. Non fare
affidamento esclusivamente sulla bussola digitale per determinare gli
indirizzi con precisione. Confronta sempre le informazioni fornite da
iPhone con le informazioni presenti nella zona in cui ti trovi e utilizza
la segnaletica stradale per risolvere eventuali problemi.
Non utilizzare applicazioni di localizzazione mentre svolgi attività
che richiedono un’attenzione totale. Assicurati di rispettare sempre
la segnaletica stradale, le leggi e la normativa prevista nei paesi in cui
utilizzi iPhone.
Per i veicoli dotati di airbag Un airbag si gonfia con grande potenza.
Non posizionare iPhone o i suoi accessori nell’area sopra l’airbag o nella
zona in cui è previsto che si gonfi.
Convulsioni, svenimenti e dolore agli occhi Una ridotta percentuale
di persone potrebbe essere soggetta a svenimenti o convulsioni (anche
qualora non abbia mai sperimentato prima episodi di questo tipo)
quando esposta a luci intermittenti o a motivi luminosi come quelli
prodotti da videogiochi o durante la riproduzione di un video. Se hai
antecedenti personali o familiari di svenimenti o convulsioni, dovresti
consultare un medico prima di giocare con i videogiochi (se disponibili)
o di guardare video su iPhone. Se vieni colpito da mal di testa,
svenimenti, convulsioni, spasmi muscolari o agli occhi, perdita di
conoscenza, movimenti involontari o disorientamento, sospendi l’utilizzo
di iPhone e consulta un medico. Per ridurre il rischio di mal di testa,
svenimenti, convulsioni e dolore agli occhi, evita l’utilizzo prolungato,
mantieni iPhone ad una certa distanza dagli occhi, utilizzalo in ambienti
ben illuminati e fai pause frequenti.
Pericolo di soffocamento iPhone i relativi accessori contengono parti
piccole, che potrebbero rappresentare un rischio di soffocamento per i
bambini. Tenere tali parti fuori dalla portata dei bambini.
Movimenti ripetuti Attività ripetitive come digitare testo o giocare con
videogiochi su iPhone possono provocare disturbi occasionali a mani,
braccia, spalle, collo o altre parti del corpo. Fai delle pause frequenti e, se
riscontri dei disturbi durante o dopo tale utilizzo, interrompi l’utilizzo e
consulta un medico.
Atmosfere potenzialmente esplosive Spegni iPhone, se ti trovi in
una zona con atmosfera potenzialmente esplosiva. Non caricare iPhone
e segui attentamente le indicazioni fornite. In tali zone la presenza di
scintille potrebbe causare esplosioni o incendi, causando lesioni gravi
o persino la morte.
Le zone con atmosfera potenzialmente esplosiva sono solitamente,
ma non sempre, segnalate chiaramente. Le zone potenzialmente
esplosive potrebbero includere: aree di rifornimento di carburante
(come distributori di benzina); interni delle barche; impianti di
immagazzinamento o trasferimento di combustibile o sostanze
chimiche; veicoli che utilizzano gas liquido (come propano o butano);
zone la cui aria contiene sostanze chimiche o particelle (come granelli,
polvere o polveri di metallo) e qualsiasi altra zona in cui è generalmente
consigliabile spegnere il motore dell’auto.
Utilizzare connettori, porte e tasti Non forzare mai un connettore in
una porta, né esercitare una pressione eccessiva su un tasto; ciò potrebbe
causare danni non coperti dalla garanzia Se il connettore e la porta non
si collegano con facilità, probabilmente non corrispondono. Verifica
eventuali ostruzioni e accertati che il connettore corrisponda alla porta
e che sia posizionato correttamente rispetto alla porta.
Accessori e prestazioni wireless Non tutti gli accessori di iPod sono
completamente compatibili con iPhone. L’attivazione della modalità
di uso in aereo su iPhone potrebbe eliminare le interferenze audio tra
iPhone e un accessorio. Quando la modalità di uso in aereo è attivata,
non puoi effettuare o ricevere chiamate e non puoi utilizzare funzionalità
che richiedono la comunicazione wireless. In alcune condizioni,
determinati accessori potrebbero compromettere le prestazioni wireless
di iPhone. Riorientare o riposizionare iPhone e l’accessorio collegato può
migliorare le prestazioni wireless.
Mantenere iPhone entro temperature accettabili iPhone è stato
progettato per funzionare a temperature comprese tra 0º e 35º C (da
32º a 95º F) e per essere conservato a temperature tra -20º e 45º C (da
-4º a 113º F). Condizioni di alta o bassa temperatura possono accorciare
temporaneamente la durata della batteria o causare il malfunzionamento
momentaneo di iPhone. Lasciare iPhone in macchina o esporlo alla
luce diretta del sole può provocare l’aumento delle temperature di
conservazione e funzionamento di iPhone. Evita di utilizzare iPhone
quando ci sono cambi drastici di temperatura o di livello di umidità
poiché potrebbe formarsi della condensa sopra o dentro iPhone.
Quando iPhone è in funzione e la batteria è in ricarica, è normale che
iPhone si surriscaldi. La parte esteriore di iPhone funge da superficie di
raffreddamento trasferendo il calore dall’interno dell’unità al suo esterno.
Esposizione all’energia a radiofrequenza iPhone trasmette e riceve
energia a radiofrequenza (RF) attraverso l’antenna. L’antenna cellulare
di iPhone si trova sul margine inferiore di iPhone, a sinistra del pulsante
Home. L’antenna Wi-Fi e Bluetooth® si trova nel margine superiore di
iPhone, a destra dell’uscita della cuffia.
iPhone è stato progettato, fabbricato e testato nel rispetto dei limiti di
esposizione all’energia a RF stabiliti dalle entità di regolamentazione
internazionali, tra cui la Federal Communications Commission (FCC) degli
Stati Uniti, la Industry Canada (IC) del Canada, il Ministero degli Affari interni
e Comunicazioni del Giappone (MIC) e il Consiglio dell’Unione Europea.
Il tasso di assorbimento specifico (Specific Absorption Rate) o SAR si
riferisce al tasso di assorbimento secondo il quale il corpo assorbe
l’energia a radiofrequenza (RF). Il limite SAR per i telefoni cellulari è di
1,6 watt per chilogrammo (W/kg) per la FCC e la Industry Canada e di
2,0 W/kg per il Consiglio dell’Unione Europea.
iPhone è stato testato1 e soddisfa i requisiti di esposizione RF stabiliti
dalla FCC, da IC e dall’Unione Europea per le operazioni realizzate tramite
cellulari, Wi-Fi e Bluetooth.
I test per il tasso SAR vengono condotti su posizioni di funzionamento
standard di iPhone e i radiotrasmettitori vengono impostati al livello
massimo di potenza. Il livelli SAR massimo di iPhone su ciascuna frequenza
operativa vengono indicati in una tabella alla fine di questo paragrafo.
I livelli del tasso SAR durante il normale utilizzo possono essere inferiori
ai livelli massimi di tale tasso. In condizioni di normale utilizzo, iPhone
regola automaticamente la potenza di trasmissione radio al livello
minimo necessario per la comunicazione con il network wireless.
Durante il trasporto, mantieni iPhone a una distanza dal corpo di almeno
1,5 cm (5/8 in.) per assicurarti che i livelli di esposizione siano pari o al di
sotto dei livelli massimi. Evitare custodie con parti in metallo.
L’esposizione all’energia a radiofrequenza (RF) è legata al tempo
di utilizzo e alla distanza. Se hai ancora preoccupazioni relative
all’esposizione all’energia a RF, riduci il tempo totale delle chiamate
su iPhone, aumenta la distanza dal dispositivo utilizzando una delle
opzioni di vivavoce disponibili,come gli altoparlanti integrati, le cuffie con
microfono integrato fornite o altri accessori di terze parti.
Per ulteriori informazioni sull’esposizione all’energia RF, consulta
la pagina sulla sicurezza relativa alla radiofrequenza della FCC
all’indirizzo: www.fcc.gov/oet/rfsafety
Per ottenere informazioni sulla ricerca scientifica relativa all’esposizione
all’energia a RF, consulta il database della ricerca sul campo
elettromagnetico (EMF) dell’Organizzazione Mondiale della Sanità sul
sito: www.who.int/peh-emf/research/database
1 Il dispositivo è stato testato secondo gli standard di misurazione
e le procedure specificate in: “FCC OET Bulletin 65, Supplement C
(Edition 01-01) and IEEE 1528-2003 and Canada RSS 102, Issue 4, March
2010”. iPhone segue le direttive del Consiglio Europeo del 12 luglio
1999 sulla limitazione dell’esposizione della popolazione ai campi
elettromagnetici [1999/519/CE].
Modello GSM
Banda di
frequenza2
Corpo3 Testa Limite SAR 1g stabilito dalla
FCC & IC (W/kg)
GSM 850 1,11 1,00 1,6
GSM 1900 0,43 1,17 1,6
UMTS II 1900 0,43 1,17 1,6
UMTS V 850 1,11 1,00 1,6
2.4 GHz Wi-Fi 0,07 0,88 1,6
Banda di
frequenza2
Corpo3 Testa Limite SAR 10g stabilito
dall’Unione Europea (W/kg)
EGSM 900 0,74 0,66 2,0
GSM 1800 0,28 0,59 2,0
UMTS I 2100 0,36 0,93 2,0
UMTS VIII 900 0,74 0,66 2,0
2.4 GHz Wi-Fi 0,05 0,36 2,0
Modello CDMA
Banda di frequenza2 Corpo3 Testa Limite SAR 1g stabilito
dalla FCC (W/kg)
800 MHz Banda
Classe 0
0,87 1,06 1,6
1900 MHz Banda
Classe 1
0,45 1,18 1,6
2.4 GHz Wi-Fi 0,15 0,54 1,6
Interferenza di radiofrequenza Le emissioni a radiofrequenza dei
dispositivi elettronici possono alterare il funzionamento di altri apparati
elettronici causandone il malfunzionamento. Nonostante iPhone sia
stato progettato, testato e prodotto in conformità alle regolamentazioni
in materia di emissioni a radiofrequenza di paesi quali gli Stati Uniti, il
Canada, l’Unione Europea e il Giappone, i trasmettitori wireless e i circuiti
2 iPhone può essere configurato per supportare una o alcune delle
bande di frequenza elencata, a seconda della tecnologia del gestore
e della disponibilità del network. La banda di frequenza utilizzata da
iPhone varia in base al fornitore di servizi wireless, alla tecnologia
wireless e alla regione.
3 iPhone posizionato a più di 10 mm (13/32 in.) di distanza dal corpo.
elettrici di iPhone potrebbero causare interferenze su altri dispositivi
elettronici. Prendi quindi le seguenti precauzioni:
In aereo L’uso di iPhone in aereo potrebbe essere proibito. Per ulteriori
informazioni sull’utilizzo della modalità di uso in aereo per disattivare
i trasmettitori wireless di iPhone, consulta il Manuale Utente di iPhone.
Veicoli Le emissioni a radiofrequenza di iPhone potrebbero alterare
i sistemi elettronici dei veicoli a motore. Rivolgiti al produttore o al
rappresentante del tuo veicolo per maggiori informazioni.
Pacemaker La Health Industry Manufacturers Association consiglia di
mantenere una distanza di almeno 15 cm (6 in.) tra un telefono palmare
wireless ed un pacemaker al fine di evitare eventuali interferenze con il
pacemaker. Persone con pacemaker:
ÂÂ iPhone dovrebbe essere sempre mantenuto a più di 15 cm (6 in.) di
distanza dal pacemaker quando il telefono è acceso
ÂÂ È meglio evitare di tenere iPhone in una tasca in prossimità del petto
ÂÂ È meglio utilizzare l’orecchio opposto al pacemaker per minimizzare
eventuali interferenze potenziali
Se hai motivo di sospettare che si stia verificando un’interferenza, spegni
immediatamente iPhone.
Compatibilità con gli apparecchi acustici iPhone è stato testato e
classificato in conformità agli standard di compatibilità degli apparecchi
acustici C63.19-2007 stabiliti dall’ANSI (American National Standard
Institute). Lo standard ANSI misura l’interferenza a radiofrequenza per
l’accoppiamento acustico (classificazione “M”) e per l’accoppiamento
induttivo con apparecchi acustici che funzionano in modalità telecoil
(classificazione “T”). Per essere considerati compatibili con gli apparecchi
acustici secondo gli standard stabiliti dalla FCC, i telefoni devono avere
una classificazione pari o superiore a M3 o pari o superiore a M4.
Il modello di iPhone 4 CDMA è compatibile con gli apparecchi acustici
in base alle regole FCC. Il modello di iPhone 4 GSM è compatibile con
gli apparecchi acustici in base alle regole FCC quando la modalità
di compatibilità con gli apparecchi acustici è attivata. Per attivare la
modalità di compatibilità con gli apparecchi acustici su iPhone 4,
vai su Impostazioni > Generali > Accessibilità. L’attivazione di questa
impostazione può ridurre la copertura rete dati cellulare di 2G. Per
ulteriori informazioni, consulta il paragrafo Compatibilità con gli
apparecchi acustici del Manuale Utente di iPhone. Per conoscere le
classificazioni di compatibilità di iPhone con gli apparecchi acustici, vai
all’indirizzo: www.apple.com/support/hac
iPhone potrebbe interferire con alcuni apparecchi acustici. In tal caso,
rivolgiti al produttore dell’apparecchio o al medico per rimedi o possibili
alternative.
Compatibilità con altre tecnologie wireless Questo telefono è stato
testato e classificato per l’utilizzo con apparecchi acustici per alcune delle
tecnologie wireless di cui fa uso. Tuttavia il telefono potrebbe utilizzare
delle tecnologie wireless più recenti non ancora testate per l’utilizzo con
apparecchi acustici. Per determinare la presenza di eventuali interferenze,
è importante provare tutte le funzionalità del telefono in diversi luoghi,
utilizzando l’apparecchio acustico o impianto cocleare. Consulta il tuo
fornitore di servizi o il produttore del telefono per informazioni sulla
compatibilità del dispositivo con apparecchi acustici. Se hai domande
relative alle politiche di cambio o restituzione, consulta il tuo fornitore di
servizi o il rivenditore del telefono.
Altri dispositivi medici Se utilizzi altri dispositivi medici, rivolgiti al
produttore del dispositivo o al tuo medico curante per determinare se
tale dispositivo sia protetto adeguatamente dalle emissioni di energia
a RF di iPhone.
Strutture sanitarie Le apparecchiature utilizzate in ospedali e strutture
sanitarie potrebbero essere sensibili all’energia alle emissioni a RF. Spegni
iPhone qualora ti venga espressamente richiesto dal personale o dai
cartelli presenti.
Zone a rischio di esplosione e locali con divieto Per evitare interferenze
con operazioni che implicano esplosioni, spegni iPhone se ti trovi
in un’atmosfera potenzialmente esplosiva o in zone segnalate con
indicazioni come “Spegnere ricetrasmittenti”. Attenersi alle segnalazioni
e alle istruzioni.
Certificazione e conformità
Consulta iPhone per i marchi di certificazione e conformità specifici
del dispositivo. Per visualizzarli, scegli Impostazioni > Generali >
Info > Normative.
Australia/
Nuova
Zealanda
Russia
Brasile Taiwan
Canada IC ID: 579C-E2380A
IC ID: 579C-E2380B
Unione
Europea
Giappone AD 10-0008 202
202XY10671311
202MW10671311
202WW10671312
202WW10671311
202GZ10671311
AD 10-0009 202
202XY10671321
202MW10671321
202WW10671322
202WW10671321
202GZ10671321
Sudafrica Costa Rica
00065-2010
Messico
Cofetel: RTIAPA 108-
0752-A2
Singapore
Argentina CNC: 25-8540, 25-8541, 25-8542
Corea del Sud
Filippine
Indonesia
Tailandia CLASS B
NTC ID. B38504-10-0242
Emirati Arabi
Uniti
Stati Uniti FCC ID: BCG-E2380A FCC ID: BCG-E2422A
FCC ID: BCG-E2380B FCC ID: BCG-E2422B
Importante: cambiamenti o modifiche a questo prodotto non
autorizzati da Apple potrebbero annullare la conformità agli standard
sulla compatibilità elettromagnetica (EMC) e wireless così come la tua
autorizzazione a utilizzare il prodotto. La conformità del prodotto agli
standard EMC è stata dimostrata in condizioni che comprendevano l’uso
di dispositivi periferici e cavi schermati tra i componenti di sistema. L’uso
di dispositivi periferici e cavi schermati a norma tra i componenti di
sistema è importante per ridurre la possibilità di causare interferenze con
radio, televisioni e altri dispositivi elettronici.
Dichiarazione di conformità FCC
This device complies with part 15 of the FCC rules. Operation is subject
to the following two conditions: (1) this device may not cause harmful
interference, and (2) this device must accept any interference received,
including interference that may cause undesired operation.
Note: This equipment has been tested and found to comply with the
limits for a Class B digital device, pursuant to part 15 of the FCC Rules.
These limits are designed to provide reasonable protection against harmful
interference in a residential installation. This equipment generates, uses,
and can radiate radio frequency energy and, if not installed and used in
accordance with the instructions, may cause harmful interference to radio
communications. However, there is no guarantee that interference will
not occur in a particular installation. If this equipment does cause harmful
interference to radio or television reception, which can be determined by
turning the equipment off and on, the user is encouraged to try to correct
the interference by one or more of the following measures:
ÂÂ Reorient or relocate the receiving antenna.
ÂÂ Increase the separation between the equipment and receiver.
ÂÂ Connect the equipment into an outlet on a circuit different from that
to which the receiver is connected.
ÂÂ Consult the dealer or an experienced radio/TV technician for help.
Dichiarazione di conformità del Canada (Modello GSM)
Complies with the Canadian ICES-003 Class B specifications. Cet appareil
numérique de la Classe B est conforme à la norme NMB-003 du Canada.
This device complies with RSS 210 of Industry Canada. This Class B
device meets all the requirements of the Canadian interference-causing
equipment regulations. Cet appareil numérique de la Classe B respecte
toutes les exigences du Règlement sur le matériel brouilleur du Canada.
This device complies with Industry Canada license-exempt RSS
standard(s). Operation is subject to the following two conditions: (1) this
device may not cause interference, and (2) this device must accept any
interference, including interference that may cause undesired operation
of the device.
Cet appareil est conforme aux normes CNR exemptes de licence
d’Industrie Canada. Le fonctionnement est soumis aux deux conditions
suivantes : (1) cet appareil ne doit pas provoquer d’interférences et (2) cet
appareil doit accepter toute interférence, y compris celles susceptibles de
provoquer un fonctionnement non souhaité de l’appareil.
Conformità alla normativa UE (Modello GSM)
Il dispositivo è conforme ai requisiti di esposizione RF 1999/519/
EC, raccomandazione del Consiglio del 12 luglio 1999 riguardanti la
limitazione all’esposizione del pubblico ai campi elettromagnetici (0–300
GHz). Questo dispositivo soddisfa i seguenti standard:
EN 300 328, EN 301 489-17, EN 301 511, EN 301 908, EN 50385
Questo dispositivo wireless soddisfa le direttive R&TTE.
Dichiarazione di conformità UE (Modello GSM)
Български Apple Inc. декларира, че това устройство с клетъчен,
Wi-Fi и Bluetooth предавател е в съответствие със съществените
изисквания и другите приложими правила на Директива 1999/5/ЕС.
Česky Společnost Apple Inc. tímto prohlašuje, že toto mobilní zařízení s
technologií Wi-Fi a Bluetooth vyhovuje základním požadavkům a dalším
příslušným ustanovením směrnice 1999/5/ES.
Dansk Undertegnede Apple Inc. erklærer herved, at følgende udstyr
cellular, Wi-Fi og Bluetooth overholder de væsentlige krav og øvrige
relevante krav i direktiv 1999/5/EF.
Deutsch Hiermit erklärt Apple Inc., dass sich Mobiltelefon, Wi-Fi und
Bluetooth in Übereinstimmung mit den grundlegenden Anforderungen
und den übrigen einschlägigen Bestimmungen der Richtlinie 1999/5/EG
befinden.
Eesti Käesolevaga kinnitab Apple Inc., et see mobiil-, Wi-Fi- ja
Bluetooth-seade vastab direktiivi 1999/5/EÜ põhinõuetele ja nimetatud
direktiivist tulenevatele teistele asjakohastele sätetele.
English Hereby, Apple Inc. declares that this cellular, Wi-Fi, and
Bluetooth device is in compliance with the essential requirements and
other relevant provisions of Directive 1999/5/EC.
Español Por medio de la presente Apple Inc. declara que este
dispositivo celular, Wi-Fi y Bluetooth cumple con los requisitos
esenciales y cualesquiera otras disposiciones aplicables o exigibles de
la Directiva 1999/5/CE.
Ελληνικά Mε την παρούσα, η Apple Inc. δηλώνει ότι αυτή η συσκευή
κινητού, Wi-Fi και Bluetooth συμμορφώνεται προς τις βασικές
απαιτήσεις και τις λοιπές σχετικές διατάξεις της Οδηγίας 1999/5/ΕΚ.
Français Par la présente Apple Inc. déclare que l’appareil cellulaire,
Wi-Fi, et Bluetooth est conforme aux exigences essentielles et aux
autres dispositions pertinentes de la directive 1999/5/CE.
Islenska Apple Inc. lýsir því hér með yfir að þetta tæki, sem er farsími,
þráðlaus og með blátannartækni (e: cellular, Wi-Fi and Bluetooth,)
fullnægir lágmarkskröfum og öðrum viðeigandi ákvæðum
Evróputilskipunar 1999/5/EC.
Italiano Con la presente Apple Inc. dichiara che questo dispositivo
cellulare, Wi-Fi e Bluetooth è conforme ai requisiti essenziali ed alle altre
disposizioni pertinenti stabilite dalla direttiva 1999/5/CE.
Latviski Ar šo Apple Inc. deklarē, ka cellular, Wi-Fi un Bluetooth ierīce
atbilst Direktīvas 1999/5/EK būtiskajām prasībām un citiem ar to
saistītajiem noteikumiem.
Lietuvių Šiuo „Apple Inc.“ deklaruoja, kad korinio, „Wi-Fi“ ir „Bluetooth“
ryšio įrenginys atitinka esminius reikalavimus ir kitas 1999/5/EB
Direktyvos nuostatas.
Magyar Alulírott, Apple Inc. nyilatkozom, hogy a mobil, Wi-Fi és
Bluetooth megfelel a vonatkozó alapvetõ követelményeknek és az
1999/5/EC irányelv egyéb elõírásainak.
Malti Hawnhekk, Apple Inc. tiddikjara li dan l-apparat ċellulari, Wi-Fi,
u Bluetooth huwa konformi mar-rekwiżiti essenzjali u dispożizzjonijiet
oħra relevanti tad-Direttiva 1999/5/KE.
Nederlands Hierbij verklaart Apple Inc. dat het toestel cellular, Wi-Fi, en
Bluetooth in overeenstemming is met de essentiële eisen en de andere
bepalingen van richtlijn 1999/5/EG.
Norsk Apple Inc. erklærer herved at dette mobiltelefon-, Wi-Fi- og
Bluetooth-apparatet er i samsvar med de grunnleggende kravene og
øvrige relevante krav i EU-direktivet 1999/5/EF.
Polski Niniejszym Apple Inc. oświadcza, że ten telefon komórkowy,
urządzenie Wi-Fi oraz Bluetooth są zgodne z zasadniczymi wymogami
oraz pozostałymi stosownymi postanowieniami Dyrektywy 1999/5/EC.
Português Apple Inc. declara que este dispositivo móvel, Wi-Fi e
Bluetooth está em conformidade com os requisitos essenciais e outras
disposições da Directiva 1999/5/CE.
Română Prin prezenta, Apple Inc. declară că acest aparat celular, Wi-Fi
și Bluetooth este în conformitate cu cerinţele esenţiale şi cu celelalte
prevederi relevante ale Directivei 1999/5/CE.
Slovensko Apple Inc. izjavlja, da so celične naprave ter naprave Wi-Fi in
Bluetooth skladne z bistvenimi zahtevami in ostalimi ustreznimi določili
direktive 1999/5/ES.
Slovensky Apple Inc. týmto vyhlasuje, že toto mobilné, Wi-Fi &
Bluetooth zariadenie spĺňa základné požiadavky a všetky príslušné
ustanovenia Smernice 1999/5/ES.
Suomi Apple Inc. vakuuttaa täten, että tämä matkapuhelin-, Wi-Fija
Bluetooth-tyyppinen laite on direktiivin 1999/5/EY oleellisten
vaatimusten ja sitä koskevien direktiivin muiden ehtojen mukainen.
Svenska Härmed intygar Apple Inc. att denna mobiltelefoni-, Wi-Fi-,
och Bluetooth-enhet står i överensstämmelse med de väsentliga
egenskapskrav och övriga relevanta bestämmelser som framgår av
direktiv 1999/5/EG.
Una copia della dichiarazione di conformità dell’Unione Europea è
disponibile all’indirizzo:www.apple.com/euro/compliance
iPhone può essere utilizzato nei seguenti paesi:
Restrizioni della Comunità Europea (Modello GSM)
Français Pour usage en intérieur uniquement. Consultez l’Autorité de
Régulation des Communications Electroniques et des Postes (ARCEP)
pour connaître les limites d’utilisation des canaux 1 à 13. www.arcep.fr
Dichiarazione di conformità del Giappone—
Dichiarazione VCCI Class B (Modello GSM)
Termini e condizioni di iPhone
IMPORTANTE: UTILIZZANDO iPHONE, iPAD o iPOD TOUCH
(“DISPOSITIVO iOS”), L’UTENTE ACCETTA DI ESSERE VINCOLATO AI
SEGUENTI TERMINI E CONDIZIONI DI APPLE E DI TERZE PARTI.
A. LICENZA DEL SOFTWARE iOS APPLE
B. NOTIFICHE DA APPLE
C. TERMINI E CONDIZIONI GOOGLE MAPS
D. TERMINI E CONDIZIONI YOUTUBE
APPLE INC. LICENZA SOFTWARE iOS
Licenza per uso individuale
LEGGETE ATTENTAMENTE LA PRESENTE LICENZA SOFTWARE
(“LICENZA”) PRIMA DI UTILIZZARE IL DISPOSITIVO iOS O DI SCARICARE
L’AGGIORNAMENTO SOFTWARE CHE ACCOMPAGNA QUESTA
LICENZA. UTILIZZANDO IL DISPOSITIVO iOS O SCARICANDO UN
AGGIORNAMENTO SOFTWARE, SECONDO IL CASO, ACCETTATE I TERMINI
E LE CONDIZIONI DELLA PRESENTE LICENZA. QUALORA NON SIATE
D’ACCORDO CON LE CONDIZIONI E I TERMINI DELLA LICENZA, NON
UTILIZZATE IL DISPOSITIVO iOS E NON SCARICATE L’AGGIORNAMENTO
SOFTWARE. PER GLI ACQUIRENTI DI DISPOSITIVI iOS, QUALORA NON
SIATE D’ACCORDO CON TALI CONDIZIONI E TERMINI, RESTITUITE
IL DISPOSITIVO iOS AD APPLE STORE O AD UN DISTRIBUTORE
AUTORIZZATO ENTRO IL PERIODO DI RESTITUZIONE PER OTTENERE UN
RIMBORSO, SECONDO I TERMINI DELLA POLITICA DI RESTITUZIONE CHE
TROVERETE SU http://www.apple.com/legal/sales_policies.
1. Generale.
(a) Il software (incluso il codice Boot ROM e altro software integrato), le
interfacce, i contenuti, i font, la documentazione e tutti i dati forniti con
il dispositivo iOS (“Software originale iOS”), così come quelli aggiornati o
sostituiti dalle funzionalità aggiunte, dagli aggiornamenti software o da
software per il ripristino del sistema forniti da Apple (“Aggiornamenti del
Software iOS”), sia su memoria di sola lettura, ovvero su altri supporti o
in altra forma (il Software originale iOS e gli Aggiornamenti del Software
iOS sono denominati collettivamente il “Software iOS”), vengono
concessi in licenza, e non venduti, da Apple Inc. (“Apple”) per essere
usati unicamente nei termini di questa Licenza. Apple e i suoi licenziatari
rimangono proprietari del Software iOS e si riservano tutti i diritti non
espressamente accordati.
(b) Apple, a sua discrezione, potrebbe rendere disponibili degli
aggiornamenti futuri per il dispositivo iOS. Qualora presenti, tali
aggiornamenti potrebbero non includere necessariamente tutte le
funzionalità esistenti nel software o le nuove funzionalità fornite da
Apple per altri modelli dei dispositivi iOS o per i modelli più recenti.
I Termini e condizioni della presente Licenza regoleranno tutti gli
Aggiornamenti del Software iOS forniti da Apple per la sostituzione e/o
l’integrazione del Software originale iOS, a meno che tale Aggiornamento
del Software iOS non sia regolato da una licenza separata; in tal caso,
saranno applicabili i Termini e condizioni di questa licenza.
2. Usi consentiti e restrizioni della Licenza.
(a) Conforme ai termini e alle condizioni stabiliti nella presente Licenza,
Vi viene accordata una licenza limitata e non esclusiva per utilizzare il
Software iOS su un singolo dispositivo iOS Apple. Salvo nella misura di
quanto consentito dal paragrafo 2(b) a continuazione e salvo quanto
stabilito in un contratto separato tra Voi e Apple, la presente Licenza
non consente di utilizzare il Software iOS su più di un dispositivo iOS
Apple alla volta e non consente di distribuire o di utilizzare il Software
iOS su una rete dove potrebbe essere utilizzato da più dispositivi
contemporaneamente. La presente licenza non concede alcun diritto
relativamente all’utilizzo delle interfacce di proprietà di Apple né di
altre proprietà intellettuali per il design, lo sviluppo, la fabbricazione, la
concessione in licenza o la distribuzione di dispositivi e accessori di terze
parti né di applicazioni di terze parti da utilizzare con i dispositivi iOS.
Alcuni di tali diritti sono concessi in licenza separatamente da Apple. Per
ulteriori informazioni relativamente allo sviluppo di dispositivi e accessori
di terze parti per i dispositivi iOS, contattare madeforipod@apple.com.
Per ulteriori informazioni relativamente allo sviluppo di applicazioni per
i dispositivi iOS, contattare devprograms@apple.com.
(b) Conforme ai termini e alle condizioni stabiliti nella presente Licenza,
Vi viene accordata una licenza limitata e non esclusiva per scaricare
gli Aggiornamenti del Software iOS resi eventualmente disponibili
da Apple per il modello del dispositivo iOS al fine di aggiornare o
ripristinare il software di tutti i dispositivi iOS che possedete o controllate.
Questa Licenza non consente di distribuire o rendere disponibili gli
Aggiornamenti del Software iOS su una rete dove potrebbero essere
utilizzati da più dispositivi o computer contemporaneamente. Se
avete scaricato un Aggiornamento del Software iOS sul computer, Vi è
consentito eseguire una copia degli Aggiornamenti del Software iOS
memorizzati sul Vostro computer in formato leggibile dalla macchina
per soli scopi di backup, purché la copia di backup riporti tutte le
informazioni relative ai diritti d’autore o altri diritti di proprietà contenute
nell’originale.
(c) Non è consentito, e accettate quindi di non farlo e di non permettere
ad altri di farlo, copiare (salvo nei limiti di quanto espressamente
consentito dalla presente Licenza), decompilare, disassemblare,
riassemblare, tentare di ricavare il codice sorgente, decodificare o
modificare il Software iOS e qualunque servizio fornito dal Software
iOS o parte di esso né ricavarne prodotti derivati (salvo nei limiti di
quanto consentito dalla legge applicabile o dai termini e le condizioni
del contratto di licenza che regolano l’uso dei componenti open source
inclusi con il Software iOS). Qualsiasi tentativo di compiere una delle
suddette azioni costituisce una violazione dei diritti di Apple e dei
licenzianti del Software iOS.
(d) Archiviando dei contenuti sul Vostro dispositivo iOS, ne eseguite una
copia digitale. In alcune giurisdizioni è illegale eseguire copie digitali
senza ottenere prima il consenso da parte del detentore dei diritti.
Il Software iOS può essere utilizzato per riprodurre materiale purché
tale utilizzo sia limitato alla riproduzione di materiale non protetto da
copyright, di materiale di cui detenete il copyright, o di materiale per
cui non disponete dell’autorizzazione o del permesso legale per la
riproduzione.
(e) Accettate di utilizzare il Software iOS e i Servizi (così come stabilito
nel Paragrafo 5 a continuazione) in conformità a tutte le leggi applicabili,
comprese la legislazione locale del paese o della regione in cui risiedete
o in cui scaricate o utilizzate il Software iOS e i Servizi.
(f ) L’utilizzo e l’accesso a determinate funzionalità del Software iOS e
a determinati Servizi (così come stabilito nel Paragrafo 5) potrebbero
richiedere la registrazione per una combinazione unica di nome utente e
password, nota come ID apple. Inoltre, riconoscete che molte funzionalità
e Servizi del Software iOS eseguono la trasmissione di dati che potrebbe
ripercuotersi sul vostro piano tariffario e che la responsabilità di tali costi
ricade esclusivamente su di Voi. Per ulteriori informazioni, consultate il
Manuale utente del Vostro dispositivo iOS.
3. Trasferimento. Non Vi è consentito dare in locazione, in leasing, in
prestito, vendere, ridistribuire o concedere in sublicenza il Software
iOS. Tuttavia è consentito trasferire in maniera permanente tutti i diritti
relativi al Software iOS a terzi, in caso di trasferimento di proprietà del
dispositivo iOS, a condizione che: (a) il trasferimento riguardi il dispositivo
iOS e tutto il Software iOS, inclusi tutti i componenti, i supporti originali,
il materiale stampato e la presente Licenza; (b) non venga conservata
nessuna copia totale o parziale del Software iOS, comprese eventuali
copie memorizzate su computer o su altro dispositivo di archiviazione
dati; e (c) la parte ricevente il Software iOS legga e accetti i termini e le
condizioni della presente Licenza.
4. Consenso all’utilizzo dei dati.
(a) Dati di utilizzo e diagnosi. Se scegliete la raccolta dei dati di utilizzo e
diagnosi, accettate che Apple, le sue società affiliate i suoi agenti possano
raccogliere, conservare, processare e utilizzare informazioni tecniche, di
diagnosi, utilizzo e altre informazioni ad esse collegate, in particolare
(ma non esclusivamente) informazioni relative al dispositivo iOS, al
computer, al software di sistema e applicativo nonché alle periferiche
in uso. Questi dati vengono raccolti periodicamente per consentire ad
Apple la preparazione e la fornitura di aggiornamenti, supporto tecnico e
altri servizi relativi al Software iOS e per verificare la conformità ai termini
e alle condizioni della presente Licenza. Tali dati vengono utilizzati da
Apple in misura e forma tale che non sia possibile scoprire l’identità della
persona a cui appartengono, allo scopo di fornire e migliorare i prodotti
e servizi Apple. Se avete scelto di attivare l’opzione Localizzazione, anche
la posizione del Vostro dispositivo può essere inviata, per aiutare Apple
ad analizzare questioni relative all’esecuzione della rete dati cellulare o
wireless (ad esempio la potenza o la debolezza di un segnale cellulare
in un determinato luogo). Per consentire ai partner e agli sviluppatori
terze parti di Apple di migliorare il proprio software, hardware e i servizi
destinati all’utilizzo con i prodotti Apple, Apple può inoltre fornire a tali
partner e sviluppatori terze parti un sottoinsieme di informazioni di
diagnosi importanti per il loro software, hardware e/o servizi, così come
informazioni di diagnosi, in misura e forma tale che non sia possibile
identificarVi personalmente.
(b) Dati di localizzazione. Apple e i suoi partner potrebbero fornire
tramite il dispositivo iOS alcuni servizi che si basano su informazioni
relative all’ubicazione. Per fornire e migliorare tali servizi, dove
disponibili, Apple, i suoi partner e i suoi licenziatari potrebbero dover
trasmettere, raccogliere, gestire, elaborare e utilizzare i vostri dati relativi
all’ubicazione, comprese le informazioni sulla localizzazione geografica
in tempo reale del dispositivo iOS, informazioni sulla velocità del veicolo
su strada e le ricerche di luoghi. La raccolta dei dati di localizzazione e
sulle ricerche da parte di Apple avviene in modo da non identificarVi
personalmente e tali dati potrebbero essere utilizzati da Apple, dai
suoi partner e dai suoi licenziatari per fornire prodotti e servizi basati
sulla localizzazione. Utilizzando sul dispositivo iOS qualsiasi servizio
di localizzazione, accettate e acconsentite che Apple, i suoi partner
e i suoi licenziatari trasmettano, raccolgano, gestiscano, elaborino e
utilizzino i vostri dati relativi all’ubicazione e alle ricerche al fine di
fornirVi e migliorare i prodotti e i servizi basati sulla localizzazione e
sul traffico stradale. Potete revocare il Vostro consenso in qualunque
momento andando all’impostazione dei servizi di localizzazione
sul dispositivo iOS e disattivando tutti i servizi di localizzazione o
disattivando le impostazioni individuali di localizzazione per ogni
elemento che fa uso di tali dati sul dispositivo iOS. La disattivazione delle
funzionalità di localizzazione avrà effetto unicamente sulle funzionalità
di localizzazione del dispositivo iOS e non su quelle non relative ai servizi
di localizzazione. Quando utilizzate applicazioni o servizi di terze parti
sul dispositivo iOS che utilizza o fornisce dati di localizzazione, siete
soggetti ai termini e alla politica sulla privacy relativa all’uso dei dati di
localizzazione delle applicazioni o dei servizi di tali terze parti e siete
altresì tenuti a rivederli.
(c) Siri. Se il Vostro dispositivo iOS supporta Siri, che include la
funzionalità di dettatura, tale funzionalità Vi consente di effettuare
richieste, dare ordini e dettare del testo al dispositivo utilizzando la voce.
Quando utilizzate Siri, ciò che dite verrà registrato e inviato a Apple
al fine di elaborare le Vostre richieste. Inoltre, il dispositivo invierà ad
Apple altre informazioni, quali il Vostro nome o soprannome, i nomi, i
soprannomi e i rapporti di parentela con Voi (ad es. “il mio papà”) dei
contatti della rubrica indirizzi e i nomi dei brani della Vostra raccolta
(collettivamente “Dati utente”). Tutti questi dati vengono utilizzati per
aiutare Siri a capire e riconoscere meglio ciò che dite. Siri non è vincolato
ad altri dati che Apple potrebbe ricavare dal Vostro utilizzo di altri
servizi Apple. Utilizzando Siri, accettate e consentite a Apple, alle sue
società controllate e ai propri rappresentanti la trasmissione, la raccolta,
la conservazione, l’elaborazione e l’utilizzo di tali informazioni, incluso
l’utilizzo del Vostro input vocale e dei “Dati utente”, al fine di fornire e
migliorare Siri e altri prodotti e servizi Apple. Se l’opzione Localizzazione
è attivata, anche la posizione del dispositivo nel momento in cui eseguite
la richiesta verrà inviata a Apple, per aiutare Siri a migliorare la precisione
della propria risposta alle richieste basate sulla localizzazione. Potete
disabilitare la funzionalità basata sulla localizzazione di Siri andando
sull’impostazione Localizzazione sul dispositivo iOS e disattivando
l’opzione relativa alla posizione individuale di Siri. Potete anche
disattivare completamente Siri in qualsiasi momento. Per eseguire questa
operazione, aprite Impostazioni, toccate Generali e scorrete l’interruttore
di Siri su “off”. È inoltre possibile restringere l’utilizzo di Siri mediante
l’impostazione Restrizioni.
(d) FaceTime. Per la funzionalità di videochiamata FaceTime del software
iOS (“FaceTime”) occorre l’acceso a Internet e potrebbe non essere
disponibile in tutti i paesi o regioni. L’utilizzo di FaceTime è soggetto
all’osservanza da parte vostra del paragrafo 2(e) di cui sopra. Al fine
di configurare FaceTime, inviare e ricevere chiamate da altri utenti di
FaceTime, occorrono determinati identificatori unici per il dispositivo
iOS e un account. Tali identificatori unici possono includere il Vostro o
i Vostri indirizzi e-mail, le informazioni dell’ID Apple da Voi fornite, un
identificatore dell’hardware per il dispositivo iOS e il numero di telefono
del Vostro iPhone. Utilizzando il Software iOS, consentite ad Apple la
trasmissione, la raccolta, la conservazione, l’elaborazione e l’utilizzo
di tali identificatori, al fine di fornire e migliorare la funzionalità
FaceTime. Accettate che il numero di telefono del Vostro iPhone venga
visualizzato all’altra parte durante la videochiamata (sebbene abbiate
protetto il numero) o che venga mostrato il Vostro indirizzo e-mail, in
base all’impostazione scelta. Se utilizzate un iPad o un iPod touch che
supporta FaceTime, il Vostro indirizzo e-mail verrà visualizzato all’altra
parte durante la videochiamata. Potete disattivare la funzionalità
FaceTime accedendo all’impostazione FaceTime del dispositivo iOS
oppure accedendo all’impostazione Restrizioni e abilitando la restrizione
per FaceTime.
(e) iMessage. La funzionalità di messaggeria del Software iOS (“iMessage”)
potrebbe non essere disponibile in tutti i paesi o le regioni. L’utilizzo di
iMessage è soggetto all’osservanza del Paragrafo 2(e) di cui sopra. Al fine
di configurare iMessage, inviare e ricevere messaggi iMessage da altri
utenti del dispositivo iOS, occorrono determinati identificatori unici per
il dispositivo iOS e un account. Tali identificatori unici possono includere
il Vostro o i Vostri indirizzi e-mail, le informazioni dell’ID Apple da Voi
fornite, un identificatore dell’hardware per il dispositivo iOS e il numero
di telefono del Vostro iPhone. Utilizzando il Software iOS, consentite
ad Apple la trasmissione, la raccolta, la conservazione, l’elaborazione
e l’utilizzo di tali identificatori, al fine di fornire e migliorare il servizio
iMessage. iMessage richiede una connessione rete dati cellulare o
Wi-Fi. Per facilitare la consegna dei messaggi iMessage e consentirVi
di mantenere conversazioni mediante i dispositivi, Apple potrebbe
conservare i messaggi iMessage in formato codificato per un periodo
di tempo limitato. Se il Vostro messaggio non può essere inviato come
messaggio iMessage, questo può essere inviato come messaggio SMS
o MMS; in tal caso potrebbero essere applicate le tariffe del gestore del
servizio di messaggeria. Accettate che il numero di telefono del Vostro
iPhone venga visualizzato all’altra parte durante la videochiamata
(sebbene abbiate protetto il numero) o che venga mostrato il Vostro
indirizzo e-mail, in base all’impostazione scelta. Se utilizzate un iPad
o un iPod touch che supporta iMessage, il Vostro indirizzo e-mail
verrà visualizzato all’altra parte. Potete disattivare il servizio iMessage
accedendo all’impostazione Messaggi sul dispositivo iOS.
(f ) Photo Stream. Utilizzando la funzionalità Photo Stream di iCloud,
consentite ad Apple l’eventuale archiviazione di foto scattate sul
dispositivo iOS o caricate dal computer, per un periodo di tempo
limitato, e l’invio automatico delle foto agli altri dispositivi iOS Apple o
ai computer che supportano la funzionalità Photo Stream. È possibile
archiviare un numero limitato di foto alla volta e le vecchie foto verranno
automaticamente eliminate da Photo Stream nel corso del tempo. Tutte
le foto che desiderate conservare devono essere salvate in Rullino foto,
in un altro album o sul computer. La risoluzione delle foto può variare
a seconda del dispositivo sul quale vengono scaricare le foto. Se non
desiderate utilizzare Photo Stream, potete disattivare Photo Stream su
tutti i dispositivi iOS o sui computer che supportano tale funzionalità.
Qualsiasi utilizzo della funzionalità Photo Stream è soggetto ai Termini
e condizioni del presente contratto e ai Termini e condizioni di iCloud
disponibili all’indirizzo: http://www.apple.com/it/legal/icloud/ww/
(g) Pubblicità sulla base degli interessi. Apple può fornirVi della
pubblicità mobile sulla base dei Vostri interessi. Se non desiderate
ricevere tali annunci sul dispositivo iOS potete rinunciarvi aprendo
questo link relativo al dispositivo iOS: http://oo.apple.com. Se decidete di
rinunciare, continuerete a ricevere lo stesso numero di annunci mobili,
ma saranno meno rilevanti perché non saranno selezionati a partire
dai Vostri interessi. Potrete comunque visualizzare gli annunci relativi
al contenuto di una pagina web o di un’applicazione oppure basati su
altre informazioni non personali. La rinuncia ha valore solamente sui
servizi pubblicitari di Apple e non ha effetto sulla pubblicità basata sugli
interessi offerta da altri network pubblicitari.
(h) Politica sulla Privacy. I Vostri dati verranno trattati in ogni
momento in conformità con la politica di tutela della privacy di Apple,
integrata come riferimento alla presente Licenza e consultabile su
http://www.apple.com/it/privacy/.
5. Servizi e materiali di terze parti.
(a) Il software iOS consente l’accesso a iTunes Store, App Store, Game
Center, iCloud di Apple e ad altri siti e servizi di Apple e di terze parti
(collettivamente e individualmente, “Servizi”). Tali Servizi potrebbero
essere disponibili solo in alcune lingue o in alcuni paesi. L’utilizzo di
questi Servizi richiede l’accesso a Internet e per l’utilizzo di alcuni
Servizi potrebbero essere necessari un ID Apple e l’accettazione di
ulteriori termini e condizioni; inoltre potrebbero essere applicate tariffe
aggiuntive. L’utilizzo di questo software con un ID Apple, un account
iTunes Store, Game Center o un account iCloud comporta l’accettazione
dei termini e delle condizioni del servizio applicabili a tale account, quali
i Termini e condizioni di iTunes Store o Game Center più recenti, che
possono essere consultati e controllati su
http://www.apple.com/legal/itunes/ww/ o i Termini e condizioni di
iCloud disponibili all’indirizzo http://www.apple.com/it/legal/icloud/ww/.
(b) Se eseguite la registrazione per iCloud, alcune funzionalità iCloud,
quali “Backup” e “Trova il mio iPhone” potrebbero essere accessibili
direttamente dal Software iOS. Riconoscete e accettate che il Vostro
utilizzo di iCloud e di queste funzionalità è soggetto ai Termini e
condizioni più recenti del servizio iCloud, che possono essere consultati e
controllati su http://www.apple.com/it/legal/icloud/ww/.
(c) Riconoscete che, utilizzando uno qualunque dei Servizi, esiste la
possibilità che troviate contenuti che potreste considerare offensivi,
indecenti o discutibili, che potrebbero o meno contenere linguaggio
esplicito, e che i risultati di qualunque ricerca o l’inserimento di un URL
specifico potrebbero generare automaticamente e involontariamente dei
collegamenti o dei riferimenti a materiale discutibile. Accettate tuttavia
di utilizzare i Servizi a vostro unico rischio e riconoscete che Apple non
sarà ritenuta responsabile per contenuti che potrebbero essere giudicati
offensivi, indecenti o discutibili.
(d) Alcuni Servizi possono visualizzare, contenere o rendere disponibili
contenuti, dati, informazioni o materiali di terze parti (“Materiali di
terze parti”) oppure facilitare collegamenti ad alcuni siti web di terze
parti. Utilizzando i Servizi, riconoscete ed accettate che Apple non è
responsabile della valutazione del contenuto né dell’accuratezza, della
completezza, della divulgazione, della validità, del rispetto del copyright,
della legalità, della decenza e della qualità d tali materiali o siti web
di terze parti. Apple, i suoi direttori, le società ad essa affiliate e le sue
società controllate non si fanno garanti, non assumono responsabilità né
saranno soggetti ad alcuna responsabilità per i Servizi, i materiali o i siti
web di terze parti, né per qualunque altro materiale, prodotto o servizio
di terze parti. I materiali di terze parti e i collegamenti ad altri siti web
sono forniti esclusivamente a titolo di cortesia.
(e) Le informazioni di carattere finanziario visualizzate dai Servizi sono
da considerarsi a solo scopo informativo generale e non sono da
considerarsi affidabili come consigli per eventuali investimenti. Prima di
realizzare qualsiasi transazione borsistica sulla base delle informazioni
ottenute mediante i Servizi, dovreste consultare un professionista
in campo finanziario o borsistico che sia legalmente qualificato per
fornire consulenza finanziaria o azionaria nel Vostro paese o regione. I
dati sull’ubicazione forniti da uno qualsiasi dei Servizi è da intendersi
esclusivamente per fini di spostamento e orientamento generali e su
di esse non si deve fare affidamento in situazioni in cui sono necessarie
informazioni precise rispetto all’ubicazione che, qualora si rivelassero
errate, non precise, in ritardo o incomplete potrebbero provocare
morte, lesioni personali o danni ambientali. Né Apple né i suoi fornitori
di contenuti garantiscono la disponibilità, precisione, completezza,
affidabilità o puntualità delle informazioni relative alle azioni,
all’ubicazione o di altre informazioni visualizzate mediante i Servizi.
(f ) Accettate che i Servizi contengono contenuto proprietario,
informazioni e materiale di proprietà di Apple e/o dei suoi licenziatari e
sono protetti dalle leggi sulla proprietà intellettuale e da altre leggi in
vigore comprese, a titolo esemplificativo ma non esaustivo, quelle sul
copyright. Accettate altresì di non utilizzare tali informazioni e materiali
proprietari diversamente da quanto consentito relativamente all’utilizzo
dei Servizi né in nessun altro modo non conforme ai termini della
presente Licenza o che violi i diritti di proprietà intellettuale di Apple o
di terze parti. Non è consentito riprodurre parti dei Servizi, in nessuna
forma e in nessun modo. Accettate di non dare in locazione, in leasing, in
prestito, vendere, modificare, distribuire i Servizi né di ricavarne prodotti
derivati in alcun modo così come di non utilizzare i Servizi in modi non
consentiti, compresi, a titolo esemplificativo ma non esaustivo, l’uso
dei Servizi per la trasmissione di virus informatici, worm, trojan o altro
malware e i casi di violazione o sovraccarico alla capacità del network.
Accettate inoltre di non utilizzare i Servizi in modo alcuno che possa
molestare, abusare di, perseguitare, minacciare, diffamare, infrangere o
violare in altra forma i diritti di terzi e riconoscete che Apple non è in
alcun modo responsabile di tali utilizzi da parte vostra, né di qualunque
molestia, minaccia, diffamazione, violazione, messaggio offensivo o
illegale che possiate ricevere come conseguenza dell’utilizzo dei Servizi.
(g) Inoltre, i Servizi e i materiali di terze parti che potrebbero essere
aperti, visualizzati o a cui potrebbero esistere collegamenti dal
dispositivo iOS non sono disponibili in tutte le lingue o in tutti i paesi o
le regioni. Apple non offre alcuna dichiarazione riguardo all’adeguatezza
di tali Servizi e materiali e alla loro disponibilità di utilizzo in luoghi
particolari. Nel momento in cui scegliete di accedere a o di utilizzare tali
Servizi e materiali, lo fate di vostra iniziativa e siete ritenuti responsabili
del rispetto della legislazione vigente, comprese, a titolo esemplificativo
ma non esaustivo, le leggi locali in vigore. Apple e i suoi licenziatari si
riservano il diritto di modificare, sospendere, eliminare o disabilitare
l’accesso a qualunque Servizio in qualsiasi momento e senza previo
avviso. In nessun caso Apple sarà ritenuta responsabile dell’eliminazione
o inabilitazione dell’accesso a uno qualsiasi di tali Servizi. Apple si riserva
altresì il diritto di imporre limiti sull’utilizzo e sull’accessibilità di alcuni
Servizi, in qualunque momento e senza previo avviso né vincolo alcuno.
6. Conclusione. La presente Licenza resterà valida fino alla sua
conclusione. I diritti accordati dalla presente Licenza termineranno
automaticamente o smetteranno altrimenti di essere in vigore senza
preavviso alcuno da parte di Apple in caso di inadempienza di qualsiasi
termine della Licenza stessa. In seguito alla conclusione di questa Licenza
è fatto obbligo di interrompere l’utilizzo del Software iOS. I paragrafi 4, 5,
6, 7, 8, 9, 12 e 13 rimarranno validi anche dopo la conclusione della stessa.
7. Clausola esonerativa di altre garanzie.
7.1 Se siete clienti consumatori (ossia, se utilizzate privatamente
il Software iOS al di fuori del Vostro ambito commerciale, d’affari o
professionale), nel Vostro paese di residenza potreste godere di diritti
legali che vietano l’applicazione delle limitazioni seguenti, che, in tal
caso, non Vi riguarderanno. Per ulteriori informazioni sui diritti legali,
consultate un’organizzazione locale per l’orientamento del consumatore.
7.2 NELLA MISURA DI QUANTO CONSENTITO DALLA LEGGE
APPLICABILE, RICONOSCETE E ACCETTATE ESPRESSAMENTE CHE
L’USO DEL SOFTWARE iOS E DEI SERVIZI AVVIENE A VOSTRO RISCHIO
E PERICOLO, ACCETTANDONE ALTRESÌ IL RISCHIO RIGUARDANTE LA
QUALITÀ, LE PRESTAZIONI, LA PRECISIONE E L’IMPIEGO SODDISFACENTI.
7.3 NEI LIMITI MASSIMI CONSENTITI DALLA LEGGE, IL SOFTWARE iOS E
I SERVIZI FORNITI DAL SOFTWARE iOS VENGONO FORNITI NELLO STATO
IN CUI SI TROVANO E COSÌ COME DISPONIBILI, CON TUTTI I POSSIBILI
ERRORI E SENZA GARANZIE DI SORTA, E APPLE E I LICENZIATARI DI APPLE
(COLLETTIVAMENTE DENOMINATI “APPLE” AI FINI DEI PARAGRAFI 7 E
8) ESCLUDONO ESPRESSAMENTE, RELATIVAMENTE AL SOFTWARE iOS
E AI SERVIZI, OGNI GARANZIA E CONDIZIONE, ESPRESSA, IMPLICITA O
STATUTARIA, INCLUSE, A TITOLO ESEMPLIFICATIVO MA NON ESAUSTIVO,
LE GARANZIE IMPLICITE E/O LE CONDIZIONI DI COMMERCIABILITÀ, DI
QUALITÀ SODDISFACENTE, DI IDONEITÀ DEL PRODOTTO A SODDISFARE
UNO SCOPO SPECIFICO, DI PRECISIONE, DI GODIMENTO ESENTE DA
TURBATIVE E DI NON VIOLAZIONE DEI DIRITTI DI TERZE PARTI.
7.4 APPLE NON GARANTISCE CHE L’UTILIZZO DEL SOFTWARE iOS E DEI
SERVIZI SIA ESENTE DA INTERFERENZE, CHE LE FUNZIONI DEL SOFTWARE
iOS E DEI SERVIZI SIANO IDONEE A SODDISFARE LE VOSTRE ESIGENZE,
CHE IL FUNZIONAMENTO DEL SOFTWARE iOS E DEI SERVIZI SIA
ININTERROTTO O IMMUNE DA DIFETTI, CHE I SERVIZI CONTINUERANNO
AD ESSERE DISPONIBILI, CHE I DIFETTI RISCONTRATI NEL SOFTWARE iOS
VENGANO CORRETTI NÉ CHE IL SOFTWARE iOS SIA COMPATIBILE O CHE
FUNZIONI CON APPLICAZIONI, SERVIZI O SOFTWARE DI TERZE PARTI.
L’INSTALLAZIONE DI QUESTO SOFTWARE POTREBBE INTERFERIRE CON IL
FUNZIONAMENTO DI SOFTWARE DI TERZI.
7.5 RICONOSCETE ALTRESÌ CHE L’UTILIZZO DEL SOFTWARE iOS E
DEI SERVIZI NON È INTESO PER NÉ ADATTO A SITUAZIONI O AMBIENTI
IN CUI IL MALFUNZIONAMENTO, EVENTUALI RITARDI, ERRORI O
IMPRECISIONI DEL CONTENUTO, DEI DATI O DELLE INFORMAZIONI
FORNITE DAL SOFTWARE iOS E DAI SERVIZI POTREBBERO ESSERE
CAUSA DI MORTE, DANNI FISICI O AMBIENTALI COMPRESI, A TITOLO
ESEMPLIFICATIVO MA NON ESAUSTIVO, LE SITUAZIONI IN CUI VENGONO
UTILIZZATE ATTREZZATURE NUCLEARI, STRUMENTAZIONI DI VOLO O DI
COMUNICAZIONE CON AEROPLANI E SISTEMI RELATIVI AL CONTROLLO
DEL TRAFFICO AEREO, DI SOCCORSO O AD ARMI.
7.6 EVENTUALI INFORMAZIONI O CONSIGLI ORALI O SCRITTI DA PARTE
DI APPLE O RAPPRESENTANTI AUTORIZZATI DI APPLE NON POSSONO
IN OGNI CASO COSTITUIRE UNA GARANZIA. NEL CASO DI DIFETTI
DEL SOFTWARE iOS O DEI SERVIZI I COSTI DERIVANTI DA INTERVENTI,
CORREZIONI E RIPARAZIONI CHE DOVESSERO RENDERSI NECESSARI
SARANNO TOTALMENTE A CARICO DELL’UTENTE. POICHÉ ALCUNE
GIURISDIZIONI NON AMMETTONO L’ESCLUSIONE DELLE GARANZIE
IMPLICITE O LE LIMITAZIONI AI DIRITTI ATTRIBUITI DALLA LEGGE
AL CONSUMATORE, L’ESCLUSIONE E LE LIMITAZIONI DI CUI SOPRA
POTREBBERO NON ESSERE APPLICABILI.
8. Limitazioni della responsabilità. PER QUANTO NON ESPRESSAMENTE
PROIBITO DALLA LEGGE APPLICABILE, APPLE È SOLLEVATA DA OGNI
RESPONSABILITÀ PER QUALSIASI LESIONE PERSONALE O PER QUALSIASI
DANNO, DIRETTO O INDIRETTO E DI OGNI GENERE E SPECIE, INCLUSI, A
TITOLO ESEMPLIFICATIVO MA NON ESAUSTIVO, I DANNI PER MANCATO
GUADAGNO, DANNEGGIAMENTO O PERDITA DI DATI, ERRORE NELLA
TRASMISSIONE O RICEZIONE DEI DATI, INTERRUZIONE DELL’ATTIVITÀ
O ALTRI DANNI O PERDITE COMMERCIALI, DERIVANTI O CORRELATI
CON L’UTILIZZO O IL CATTIVO UTILIZZO DEL SOFTWARE iOS, DEI
SERVIZI O DI QUALUNQUE SOFTWARE O APPLICAZIONE DI TERZE PARTI
CONGIUNTAMENTE AL SOFTWARE iOS, INDIPENDENTEMENTE DALLA
LORO CAUSA E DALL’ORIGINE DELLA RESPONSABILITÀ (INTERRUZIONE
DEL CONTRATTO, ATTO ILLECITO O ALTRI), ANCHE NEL CASO IN
CUI APPLE SIA STATA AVVERTITA DELLA POSSIBILITÀ DI TALI DANNI.
POICHÉ ALCUNE GIURISDIZIONI NON AMMETTONO L’ESCLUSIONE O
LA LIMITAZIONE DELLA RESPONSABILITÀ PER LESIONI PERSONALI, O
PER DANNI DIRETTI O INDIRETTI, LE ESCLUSIONI E LE LIMITAZIONI DI
CUI SOPRA POTREBBERO NON ESSERE APPLICABILI. In nessun caso il
limite di responsabilità nei confronti dell’utente a carico di Apple per
la globalità del danno (escluso quanto eventualmente previsto dalle
leggi applicabili in materia di lesioni personali), potrà superare l’importo
di duecentocinquanta dollari (USD 250,00). Le limitazioni di cui sopra
saranno applicabili anche qualora il risarcimento citato sia carente dello
scopo sostanziale.
9. Certificati digitali. Il Software iOS contiene delle funzionalità che
consentono di accettare certificati digitali emessi da Apple o da terzi.
SIETE GLI UNICI RESPONSABILI DI DECIDERE SE CONSIDERARE O MENO
AFFIDABILE UN CERTIFICATO EMESSO DA APPLE O DA TERZI. L’UTILIZZO
DEI CERTIFICATI DIGITALI È ESCLUSIVAMENTE A VOSTRO RISCHIO. NEI
LIMITI DI QUANTO PERMESSO DALLA LEGGE APPLICABILE, APPLE NON
OFFRE ALCUNA DICHIARAZIONE NÉ GARANZIA, ESPRESSA O TACITA,
RIGUARDO ALLA COMMERCIABILITÀ O ALL’ADEGUATEZZA A SCOPI
PARTICOLARI, ALL’ACCURATEZZA, ALLA SICUREZZA O ALLA NON
VIOLAZIONE DEI DIRITTI DI TERZE PARTI RELATIVAMENTE ALL’UTILIZZO
DEI CERTIFICATI DIGITALI.
10. Controllo dell’esportazione. Non è consentito utilizzare, esportare o
riesportare il Software iOS se non in conformità con le leggi degli Stati
Uniti d’America o del paese in cui il Software iOS è stato acquisito. In
particolare, ma senza limitazioni, non è possibile esportare o riesportare
il Software iOS (a) in nessun paese sottoposto ad embargo da parte degli
Stati Uniti o (b) a chiunque figuri nell’elenco del Dipartimento del Tesoro
degli Stati Uniti denominato Specially Designated Nationals o negli
elenchi del Dipartimento del Commercio degli Stati Uniti denominati
Denied Person List o Entity List. Utilizzando il Software iOS, l’utente
afferma espressamente e garantisce di non trovarsi in uno di tali paesi,
ovvero di non figurare negli elenchi di cui sopra. L’utente si impegna,
inoltre, ad accettare di non utilizzare il Software iOS per nessuno degli
scopi vietati dalla legge degli Stati Uniti, inclusi, a titolo esemplificativo
ma non esaustivo, lo sviluppo, la progettazione, la fabbricazione o
produzione di armi nucleari, chimiche, biologiche o missili.
11. Utenti finali governativi. Il Software iOS e la relativa documentazione
sono “Prodotti commerciali”, come in base alla definizione contenuta
in 48 C.F.R. §2.101, composti di “Software per uso commerciale” e di
“Documentazione relativa a software per uso commerciale”, come
in base alle definizioni contenute in 48 C.F.R. §12.212 o 48 C.F.R.
§227.7202, secondo il caso. In conformità con 48 C.F.R. §12.212 o 48
C.F.R. da §227.7202-1 a 227.7202-4, secondo applicabilità, il software
per uso commerciale e la documentazione relativa a software per
uso commerciale vengono dati in licenza al Governo degli Stati Uniti
d’America (a) unicamente come prodotti commerciali e (b) con gli stessi
diritti di cui godono gli altri utenti finali e in conformità con i termini e
le condizioni della presente Licenza. I diritti non pubblicati sono protetti
dalla legge degli Stati Uniti sul diritto d’autore.
12. Legge regolatrice ed eventuale nullità di una o più clausole. Questa
Licenza sarà regolata ed interpretata in conformità con la legislazione
dello Stato della California, ad esclusione dei conflitti legislativi. Questa
Licenza non sarà regolata dalla Convenzione delle Nazioni Unite sui
contratti di vendita internazionale di merci, la cui applicazione viene
esclusa espressamente. Se siete dei consumatori residenti nel Regno
Unito, la presente Licenza sarà regolata dalle leggi del Vostro paese di
residenza. Se per qualsiasi ragione un tribunale competente dovesse
ritenere inapplicabile una o più clausole o parti di clausole di questa
Licenza, le altre clausole o parti di clausole rimarranno valide e applicabili.
13. Integrità dell’accordo. Questa Licenza costituisce l’intero accordo
tra Voi e Apple relativamente all’uso del Software iOS e sostituisce ogni
eventuale accordo precedente o contemporaneo riguardante quanto
in oggetto. Per essere effettivi, eventuali emendamenti o modifiche di
questa Licenza dovranno essere effettuati in forma scritta e sottoscritti
da un rappresentante autorizzato di Apple. La presente Licenza viene
tradotta unicamente per esigenze locali e nel caso in cui la versione
inglese della Licenza e la versione tradotta fossero discrepanti, farà fede
la versione inglese, nella misura di quanto consentito dalla legislazione
locale della Vostra giurisdizione.
14. Riconoscimenti a terzi. Alcune parti del Software iOS potrebbero
utilizzare o comprendere software di terze parti e altro materiale
soggetto a copyright. I riconoscimenti, le condizioni e i termini di licenza
e le esclusioni relativi a tali materiali si trovano nella documentazione
elettronica del Software iOS e ogni uso di tale materiale è regolato dai
rispettivi termini e condizioni. L’uso del servizio Google Safe Browsing è
soggetto alle condizioni del servizio di Google
(http://www.google.com/terms_of_service.html) e alla politica di tutela
della privacy di Google (http://www.google.com/privacypolicy.html).
15. Utilizzo di MPEG-4; avviso H.264/AVC.
(a) Il Software iOS contiene funzionalità di codifica e/o decodifica video
MPEG-4. Il Software iOS è concesso in licenza secondo i termini della
MPEG-4 Visual Patent Portfolio License per l’utilizzo personale e non
commerciale da parte di un utente per (i) la codifica di video conformi
a MPEG-4 Visual Standard (“MPEG-4 Video”) e/o (ii) la decodifica di
video MPEG-4 codificati da utenti impegnati in attività personali e non
commerciali e/o ottenuti da un distributore video autorizzato da MPEG
LA per la fornitura di video MPEG-4. Nessuna licenza è concessa o è
implicita per utilizzi di tipo diverso. Ulteriori informazioni, incluse quelle
relative all’utilizzo promozionale, interno e commerciale, e relative licenze,
sono fornite da MPEG LA, LLC. Consultate il sito http://www.mpegla.com.
(b) Poiché il Software iOS contiene funzionalità di codifica e/o decodifica
AVC, l’uso commerciale di H.264/AVC richiederà la concessione di
una licenza aggiuntiva e l’applicazione delle seguenti condizioni: LA
FUNZIONALITÀ AVC DEL SOFTWARE iOS È CONCESSA IN LICENZA
UNICAMENTE PER USO PERSONALE E NON COMMERCIALE A UN UTENTE
PER (i) LA CODIFICA VIDEO CONFORME ALLO STANDARD AVC (“VIDEO
AVC”) E/O (ii) LA DECODIFICA DI VIDEO AVC CODIFICATI DA UN UTENTE
OCCUPATO IN ATTIVITÀ PERSONALE E NON COMMERCIALE E/O VIDEO
AVC OTTENUTI DA UN PROVIDER VIDEO IN POSSESSO DI LICENZE IDONEE
PER LA FORNITURA DI VIDEO AVC. È POSSIBILE OTTENERE ULTERIORI
INFORMAZIONI RIGUARDO ALTRI USI E LICENZE DA MPEG LA L.L.C.
CONSULTARE IL SITO HTTP://WWW.MPEGLA.COM.
16. Restrizioni del servizio Yahoo Search. Il servizio Yahoo Search
disponibile mediante Safari è concesso in licenza per essere utilizzato
solamente nei seguenti paesi o regioni: Argentina, Aruba, Australia,
Austria, Bahamas, Barbados, Belgio, Bermuda, Brasile, Bulgaria, Canada,
Cile, Cina, Cipro, Colombia, Corea del Sud, Danimarca, Ecuador, El
Salvador, Filippine, Finlandia, Francia, Germania, Giamaica, Giappone,
Grecia, Grenada, Guatemala, Hong Kong, India, Indonesia, Irlanda, Islanda,
Isole Cayman, Italia, Lettonia, Lituania, Lussemburgo, Malaysia, Malta,
Messico, Nicaragua, Norvegia, Nuova Zelanda, Paesi Bassi, Panamá, Perù,
Polonia, Portogallo, Porto Rico, Regno Unito, Repubblica Ceca, Repubblica
Dominicana, Romania, Santa Lucia, Saint Vincent, Singapore, Slovacchia,
Slovenia, Spagna, Svezia, Svizzera, Tailandia, Trinidad e Tobago, Turchia,
Ungheria, Uruguay, Stati Uniti e Venezuela.
17. Avviso Microsoft Exchange. L’impostazione e-mail Microsoft
Exchange del Software iOS è concessa in licenza solamente per la
sincronizzazione di informazioni come e-mail, contatti, calendari e attività
mediante trasmissione over-the-air tra iOS e Microsoft Exchange Server
o altro software server concesso in licenza da Microsoft per migliorare il
protocollo Microsoft Exchange ActiveSync.
EA0790
Rev. 15/08/2011
NOTIFICHE DA APPLE
Qualora Apple dovesse volerVi contattare relativamente al Vostro
prodotto o account, accettate di ricevere le notifiche via e-mail.
Riconoscete che tali notifiche inviate elettronicamente da Apple
soddisfano ogni requisito di comunicazione legale.
TERMINI E CONDIZIONI GOOGLE MAPS
Grazie per aver scelto l’applicazione software Google Maps per cellulari.
L’utilizzo di questo software, nonché di ogni eventuale software di
terze parti reso disponibile insieme al software e/o al servizio correlato
(denominati collettivamente “Google Maps per cellulari”) presuppone
l’accettazione incondizionata da parte dell’utente dei presenti termini i
condizioni (“Termini e condizioni”), che valgono sia per l’uso personale
che per l’uso aziendale di Google Maps per cellulari. I Termini e condizioni
costituiscono un contratto legalmente vincolante tra l’utente e Google e
devono pertanto essere letti con la massima attenzione. Scaricando Google
Maps per cellulari, l’utente presta il proprio incondizionato consenso ad
essere legalmente vincolato dai presenti Termini e condizioni.
Termini aggiuntivi Google Maps per cellulari è stato progettato per
essere utilizzato insieme al servizio Google Maps e ad altri servizi Google.
L’utente riconosce pertanto che l’utilizzo di Google Maps per cellulari
è soggetto anche (a) ai termini di servizio specifici di Google Maps
(consultabili all’indirizzo http://www.google.it/help/terms_maps.html),
comprese le note sui contenuti applicabili (consultabili all’indirizzo
http://www.google.it/help/legalnotices_maps.html),
(b) ai termini di servizio generali di Google (consultabili all’indirizzo
http://www.google.it/terms_of_service.html) e (c) alle norme generali
sulla privacy di Google (consultabili all’indirizzo
http://www.google.it/privacypolicy.html), le cui disposizioni si intendono
incorporate nei presenti Termini e condizioni mediante riferimento.
Qualora sussistano incongruenze o conflitti tra tali termini aggiuntivi e i
presenti Termini e condizioni, prevarranno le disposizioni di questi ultimi.
Spese di rete Google non applica alcun costo per il download o l’utilizzo
di Google Maps per cellulari. Tuttavia, a seconda del piano tariffario e
dell’operatore o gestore di telefonia prescelto dall’utente, è possibile che
venga addebitato un costo per il download di Google Maps per cellulari o
per l’utilizzo del cellulare quando si accede alle informazioni o ad altri servizi
Google tramite Google Maps per cellulari.
Solo per uso non commerciale Google Maps per cellulari è destinato
esclusivamente a un uso non commerciale. “Uso non commerciale”
significa che Google concede all’utente un diritto limitato di utilizzare
Google Maps per cellulari esclusivamente per uso personale, al lavoro
o a casa, per eseguire ricerche, nel rispetto delle limitazioni definite nei
presenti Termini e condizioni.
È consentito creare e distribuire copie di Google Maps per cellulari
destinate all’uso all’interno dell’organizzazione del datore di lavoro (“Uso
aziendale”) a condizione che:
(a) tutte le persone che operano in tale organizzazione e che
utilizzeranno Google Maps per cellulari abbiano avuto l’opportunità
di prendere visione dei presenti Termini e condizioni e abbiano
acconsentito ad essere vincolati dagli stessi (e che l’utente si impegni
a produrre opportune prove al riguardo, se richiesto da Google);
oppure che
(b) l’utente abbia la capacità giuridica e l’autorità per accettare un
contratto vincolante a nome dell’organizzazione nella quale intende
utilizzare Google Maps per cellulari (e che l’utente si impegni a produrre
opportune prove al riguardo, se richiesto da Google).
Qualora l’utente non abbia tale facoltà o i soggetti interessati non abbiano
avuto l’opportunità di prendere visione dei presenti Termini e condizioni
e di esprimere il proprio consenso, l’Uso aziendale non sarà consentito.
Per qualsiasi domanda in merito all’uso aziendale, inviare una e-mail
all’indirizzo mobile-support@google.com.
L’utente non potrà vendere Google Maps per cellulari o qualsiasi
informazione, servizio o software ad esso associato o da esso derivato,
né modificare, copiare (fatto salvo quanto consentito per Uso aziendale,
come indicato sopra, ove applicabile), concedere in licenza o creare opere
derivate da Google Maps per cellulari senza avere preventivamente
ottenuto il consenso scritto di Google (che può essere richiesta in qualsiasi
momento inviando una e-mail all’indirizzo mobile-support@google.com).
L’utente si impegna altresì a non utilizzare Google Maps per cellulari in
modi che possano danneggiare, disattivare, sovraccaricare o bloccare
i servizi Google (ad esempio, non potrà utilizzare Google Maps per
cellulari in modo automatico) o interferire con l’utilizzo dei servizi Google
da parte di altri.
Per inviare commenti su Google Maps per cellulari o proporre idee utili
per migliorare questo servizio, inviare una email all’indirizzo mobilesupport@
google.com. Si tenga presente che, con tale comunicazione,
l’utente concede a Google e a soggetti terzi il proprio consenso
all’utilizzo e all’inserimento dei suddetti commenti e suggerimenti in
Google Maps per cellulari (o altri software forniti da terzi) senza alcun
compenso.
Proprietà intellettuale Come definito nell’accordo tra l’utente e Google,
l’utente prende atto del fatto che qualunque diritto, titolo o interesse
relativi a Google Maps per cellulari, ivi compresi, a titolo esemplificativo
ma non esaustivo, tutti i diritti di proprietà intellettuale insiti e inerenti,
sono di proprietà di Google. Per “diritti di proprietà intellettuale” si
intendono i diritti relativi a invenzioni, brevetti, marchi commerciali e
marchi di servizio, progetti, nomi commerciali e nomi di società, diritti
d’autore (inclusi, per fugare ogni dubbio, i diritti relativi ai software per
computer), diritti relativi ai database e alla topografia dei semiconduttori
(a prescindere dal fatto che siano registrati o meno e incluse le domande
di registrazione) e ogni diritto o forma di protezione di natura simile
o avente effetti simili o equivalenti a quelli dei diritti elencati sopra, in
essere in qualsiasi parte del mondo.
L’utente si impegna inoltre a non rimuovere, oscurare o altrimenti
alterare le informative su diritti proprietari che siano pubblicate,
contenute o rinvenibili tramite l’utilizzo di Google Maps per cellulari
(incluse le note sul copyright o i marchi commerciali relativamente a
diritti di proprietà di Google o di terze parti).
Esclusione di garanzia Google ha facoltà di apportare miglioramenti
e/o modifiche a Google Maps per cellulari, con o senza preavviso. Google
Maps per cellulari viene fornito “così com’è” e Google non concede alcuna
garanzia in merito a ciò. Fatto salvo quanto riportato sopra, Google non
dichiara né garantisce che: (i) l’uso di Google Maps per cellulari soddisfi
i requisiti dell’utente, sia fruibile ininterrottamente, sicuro o privo di
errori, (ii) i difetti verranno corretti, (iii) Google Maps per cellulari sia
privo di virus o altri software potenzialmente dannosi o (iv) l’utilizzo di
Google Maps per cellulari e di qualsiasi informazione reperibile tramite
Google Maps per cellulari sia corretta, precisa, tempestiva o in altro
modo affidabile.
Non si applicano a Google Maps per cellulari condizioni, garanzie o
altri termini (inclusi i termini impliciti relativi a qualità soddisfacente,
idoneità per uno scopo particolare o conformità alla descrizione), salvo
nella misura in cui essi siano espressamente indicati nei presenti Termini
e condizioni.
Limitazione di responsabilità Nessuna disposizione dei presenti Termini
e condizioni esclude o limita la responsabilità di Google in caso di morte
o lesioni personali derivanti da negligenza di Google o truffa o asserzioni
fraudolente da parte di Google. In virtù di quanto sopra, Google non sarà
ritenuta responsabile nei confronti dell’utente per (a) perdite indirette
o consequenziali, (b) perdite economiche o (c) perdite di notorietà o
reputazione eventualmente subite e derivanti dall’utilizzo di Google Maps
per cellulari, a prescindere dal fatto che Google fosse o meno consapevole
del possibile verificarsi di tali perdite. Inoltre, Google non potrà essere
ritenuta responsabile nei confronti dell’utente per eventuali errori o
difetti in relazione all’utilizzo di Google Maps per cellulari o per qualsiasi
interruzione, sospensione, cessazione, guasto o ritardo di funzionamento
di Google Maps per cellulari.
Disposizioni varie I presenti Termini e condizioni saranno disciplinati
e interpretati in base alle leggi inglesi, cui l’utente accetta di rimettersi
come giurisdizione esclusiva in caso di controversie o questioni derivanti
dai presenti Termini e condizioni o ad essi connesse. La traduzione
della versione originale inglese dei presenti Termini e condizioni
(“Termini originali”) viene fornita unicamente allo scopo di facilitare la
comprensione da parte dell’utente, il quale prende atto del fatto che
in caso di conflitto tra la versione tradotta e i Termini originali, faranno
fede i Termini originali. Qualora una delle clausole dei presenti Termini e
condizioni dovesse risultare inefficace, illegale o inapplicabile, le restanti
disposizioni dei presenti Termini e condizioni rimarranno pienamente
in vigore.
I presenti Termini e condizioni costituiscono l’intero accordo tra Google
e l’utente in merito e sostituiscono qualsiasi altro accordo o contratto
precedente o contemporaneo, scritto o orale, in relazione al medesimo
oggetto. Qualsiasi rinuncia a far valere una clausola dei presenti Termini
e condizioni sarà valida solo se redatta per iscritto e firmata da un
rappresentante di Google debitamente autorizzato.
Settembre 2007
YOUTUBE TERMS AND CONDITIONS
http://www.youtube.com/t/terms
Garanzia annuale limitata Apple – iPhone
Solo per i prodotti a marchio Apple
COME LE NORME A TUTELA DEL CONSUMATORE RIGUARDANO LA
PRESENTE GARANZIA. LA PRESENTE GARANZIA CONFERISCE AL
CONSUMATORE SPECIFICI DIRITTI, OLTRE A QUELLI EVENTUALMENTE
ATTRIBUITIGLI DALLE LEGGI DEL PROPRIO STATO (O PAESE O REGIONE).
.A MENO CHE NON SIA PERMESSO DALLA LEGGE, LA PRESENTE
GARANZIA NON ESCLUDE, LIMITA O SOSPENDE ALCUN DIRITTO DEI
CONSUMATORI INCLUSI QUELLI CHE POSSONO DERIVARE DA UNA
NON-CONFORMITÀ AL CONTRATTO DI VENDITA. PER UNA PIENA
COMPRENSIONE DEI PROPRI DIRITTI IL CONSUMATORE E’ PREGATO DI
CONSULTARE LA NORMATIVA DEL PROPRIO PAESE; REGIONE O STATO.
LIMITAZIONI DELLA GARANZIA CHE POSSONO PREGIUDICARE LE NORME
A TUTELA DEI CONSUMATORI. NEL LIMITE PREVISTO DALLA LEGGE, LA
PRESENTE GARANZIA E I RIMEDI SOPRA INDICATI SONO ESCLUSIVI E
SOSTITUISCONO QUALSIASI ALTRA GARANZIA, RIMEDIO E CONDIZIONE,
VERBALE O SCRITTA, LEGALE, ESPRESSA O IMPLICITA. NEL LIMITE
PREVISTO DALLE LEGGI APPLICABILI APPLE NEGA SPECIFICAMENTE
QUALSIASI GARANZIA DI LEGGE O IMPLICITA, IVI COMPRESE, A TITOLO
ESEMPLIFICATIVO, LE GARANZIE DI COMMERCIABILITÀ E IDONEITÀ A
SCOPI SPECIFICI E PER VIZI OCCULTI O LATENTI. QUALORA LE LEGGI NON
CONSENTANO AD APPLE DI NEGARE LE SUDDETTE GARANZIE APPLE
LIMITA LA DURATA E I RIMEDI PREVISTI DA TALE GARANZIA AL PERIODO
DI DURATA DELLA PRESENTE GARANZIA E, A PROPRIA DISCREZIONE,
AL SERVIZIO DI RIPARAZIONE E SOSTITUZIONE. POICHÉ ALCUNI PAESI,
STATI E REGIONI NON AMMETTONO LIMITAZIONI SULLA DURATA DELLE
GARANZIE O CONDIZIONI IMPLICITE, LE SUMMENZIONATE LIMITAZIONI
POTREBBERO NON APPLICARSI.
COSA È COPERTO DALLA PRESENTE GARANZIA? Apple garantisce
che i prodotti hardware ed accessori a marchio Apple contenuti nella
confezione originale (“Prodotti Apple”) sono esenti da difetti dei materiali
e di produzione per UN (1) ANNO dalla data dell’acquisto originario
da parte dell’utente finale (“Periodo di Garanzia”) qualora utilizzati in
conformità alle guidelines pubblicate da Apple. Le guidelines pubblicate
da Apple includono a mero titolo esemplificativo le informazioni
contenute nelle specifiche tecniche, nei manuali utenti e nelle
comunicazioni di servizio.
CHE COSA NON È COPERTO DALLA PRESENTE GARANZIA? La presente
garanzia non si applica a prodotti hardware o software di terzi, anche
qualora acclusi o venduti assieme ai prodotti hardware di Apple. I
produttori, fornitori o editori di software diversi da Apple possono fornire
le proprie garanzie all’utente finale, tuttavia Apple, nei limiti di legge,
fornisce i prodotti di terzi senza alcuna garanzia. Il software distribuito
da Apple con o senza il marchio Apple (ivi compreso, a mero titolo
esemplificativo, il software per l’installazione del sistema operativo) non
è coperto dalla presente garanzia Limitata. Per maggiori informazioni sui
diritti del consumatore circa l’uso del software si rimanda al contratto
di Licenza del software Apple. Apple non garantisce che l’operatività
del Prodotto Apple sia esente da interruzioni o errori. Apple non è
responsabile dei danni causati dalla mancata osservanza delle istruzioni
d’uso del Prodotto Apple.
La presente garanzia non si applica a: (a) componenti consumabili,
quali batterie o rivestimenti protettivi soggetti a riduzione nel tempo,
salvo che il problema sia stato causato da un difetto di fabbricazione
o di manodopera; (b) danni estetici, ivi inclusi, a titolo esemplificativo
e non esaustivo, graffi, ammaccature e plastica rotta all’interno delle
porte; (c) danni causati dall’uso in associazione a prodotti che non
siano Apple; (d) danni causati da incidenti, abuso, uso improprio,
contatto con liquidi, incendio, terremoto o qualsiasi altra causa
esterna; (e) danni causati dall’utilizzo del Prodotto Apple in modo non
conforme con gli usi previsti o descritti da Apple; (f) danni causati da
interventi (ivi compresi gli interventi di miglioramento ed upgrade)
effettuati da qualunque soggetto che non sia un rappresentante
di Apple o un suo fornitore di servizi autorizzato (“AASP”, Apple
Authorized Service Provider); (g) un Prodotto Apple che sia stato
modificato per alterarne le funzionalità o capacità senza il permesso
scritto di Apple; o (h) difetti riconducibili alla ordinaria usura del
Prodotto Apple o altrimenti dovuti al normale invecchiamento dello
stesso, o (i) un Prodotto Apple il cui numero di serie sia stato rimosso
o reso illeggibile.
IMPORTANTI LIMITAZIONI. Apple può limitare il servizio di garanzia nel
paese nel quale Apple o i suoi Distributori Autorizzati hanno venduto
originariamente il Prodotto Apple.
VOSTRE RESPONSABILITÀ. SE SUL PRODOTTO APPLE SONO STATE
CARICATE APPLICAZIONI SOFTWARE, DATI ED ALTRE INFORMAZIONI SI
RACCOMANDA DI EFFETTUARE PERIODICAMENTE COPIE DI SALVATAGGIO
DEI DATI CONTENUTI NEL DISCO FISSO, AI FINI DI PROTEZIONE DEI
CONTENUTI E QUALE PRECAUZIONE CONTRO EVENTUALI DIFETTI
OPERATIVI.
Prima di erogare il servizio di garanzia, Apple o i suoi incaricati
potrebbero richiedere di fornire la prova di acquisto, di rispondere a
domande dirette all’assistenza con diagnosi di possibili problematiche e
di seguire le procedure Apple per ottenere il servizio di garanzia. Prima
di consegnare il Prodotto Apple al servizio di garanzia è responsabilità
del consumatore effettuare una copia di salvataggio dei contenuti su un
supporto separato, rimuovere tutti i dati e le informazioni personali che si
desidera proteggere e disattivare eventuali password di sicurezza.
IL CONTENUTO DEL DISCO FISSO SUL PRODOTTO APPLE POTREBBE
ANDARE PERSO O VENIRE RIFORMATTATO DURANTE IL SERVIZIO DI
GARANZIA. IN TALE CASO APPLE E I SUOI INCARICATI NON SONO
RESPONSABILI DI EVENTUALI DANNI O PERDITA DI PROGRAMMI
SOFTWARE, DATI O ALTRE INFORMAZIONI CONTENUTE SU TALE
SUPPORTO O DI QUALSIASI COMPONENTE DEL PRODOTTO APPLE
OGGETTO DEL SERVIZIO DI GARANZIA.
A seguito del servizio di riparazione, il Prodotto Apple o un prodotto
sostitutivo sarà restituito al consumatore nella configurazione in cui è
stato acquistato il prodotto originale, fatti salvi i possibili aggiornamenti.
Il consumatore sarà tenuto ad effettuare la reinstallazione dei programmi
software, dei dati e delle password. Il recupero e la reinstallazione
di programmi software e dei dati dell’utente non sono coperti dalla
presente garanzia.
Importante: non aprire il Prodotto Apple. L’apertura del Prodotto
Apple potrebbe causare danni che non sono coperti dalla presente
garanzia. Solo Apple o un AASP possono prestare i servizi su tale
Prodotto Apple.
COME OPERA APPLE NEL CASO IN CUI LA GARANZIA SIA VIOLATA?
Qualora Apple o un AASP ricevano una valida contestazione entro il
Periodo di Garanzia, Apple, a propria discrezione (1) riparerà il Prodotto
Apple utilizzando componenti nuovi o componenti ricondizionati
equivalenti al nuovo per prestazioni e affidabilità, (2) sostituirà il
Prodotto Apple con un prodotto che come minimo abbia funzionalità
equivalente al Prodotto Apple e sia costituito da parti nuove o usate che
abbiano le medesime prestazioni e affidabilità di un prodotto nuovo
o (3) rimborserà il prezzo d’acquisto del Prodotto Apple a fronte della
restituzione dello stesso.
Apple si riserva il diritto di chiedere al consumatore di sostituire talune
parti o prodotti installabili direttamente dall’utente. Apple garantisce
i prodotti o le parti sostituite, ivi compresi i componenti installabili
direttamente dall’utente installati in conformità con le istruzioni fornite
da Apple, per il periodo più lungo tra il periodo residuo della garanzia
del Prodotto Apple e novanta (90) giorni dalla data di sostituzione o
riparazione. Dopo la sostituzione, il prodotto o componente sostitutivo
divengono proprietà del consumatore e il prodotto o componente
sostituito diventa proprietà di Apple
COME OTTENERE UN SERVIZIO DI GARANZIA? Prima di richiedere il
servizio di garanzia si raccomanda di consultare le risorse di assistenza
online descritte più avanti. Nel caso in cui il Prodotto Apple continui
a non funzionare correttamente anche dopo aver seguito le istruzioni
on line, il consumatore può contattare un rappresentante Apple o,
se possibile, un punto vendita Apple (“Rivenditore Apple”) o AASP
identificato mediante le informazioni di seguito fornite. Il rappresentante
Apple o l’AASP aiuteranno il consumatore ad appurare se il Prodotto
Apple necessiti del servizio di assistenza ed in tal caso illustreranno
le modalità della prestazione da parte di Apple. Qualora Apple sia
contattata telefonicamente, ulteriori tariffe possono essere applicate
a seconda della località ove si trova il consumatore.
Le informazioni on line con i dettagli circa come ottenere i servizi di
garanzia sono indicati di seguito.
DIVERSI SERVIZI DI GARANZIA. Apple presterà il servizio di garanzia
attraverso una o più delle seguenti modalità:
(i) Servizio Carry-in. Il consumatore può restituire il Prodotto Apple
presso un Rivenditore Apple o presso la sede di un AASP che offrono il
servizio carry-in. Il servizio sarà prestato a domicilio ovvero il Rivenditore
Apple o un AASP possono inviare il Prodotto Apple presso la sede di un
Servizio Riparazione Apple (“ARS”). Una volta che il consumatore riceverà
la comunicazione che il servizio è stato completato, lo stesso dovrà
tempestivamente recuperare il Prodotto Apple dal Rivenditore Apple
o dalla sede AASP, ovvero il Prodotto Apple sarà inviato direttamente
presso il consumatore dalla sede ARS.
(ii) Servizio Mail-in. Qualora Apple stabilisca che il Prodotto Apple può
usufruire del sevizio mail-in, Apple invierà al consumatore documenti
di trasporto prepagati e, ove possibile, il materiale di imballaggio per
consentirgli di effettuare la spedizione del Prodotto Apple presso un ARS
o una sede AASP sulla base delle istruzioni fornite da Apple. Una volta
che il servizio sia stato completato, la sede ARS o AASP restituiranno
il Prodotto Apple al consumatore. Apple si farà carico delle spese di
spedizione al e dal consumatore qualora tutte le istruzioni siano seguite.
(iii) Servizio Do-it-yourself (DIY). Il servizio DIY permette al consumatore
di riparare o sostituire direttamente il proprio Prodotto Apple. Qualora il
servizio sia disponibile, si applicherà la seguente procedura.
(a) Servizio per cui Apple richiede la restituzione del prodotto o della
componente sostituita. Apple potrà richiedere l’autorizzazione ad
addebitare sulla carta di credito del consumatore, a titolo di garanzia, un
importo corrispondente al prezzo di vendita del prodotto o componente
sostitutivo e alle relative spese di spedizione. Qualora il consumatore non
fornisca l’autorizzazione all’addebito su carta di credito, il servizio DIY
potrebbe non essere disponibile per il consumatore e Apple proporrà
soluzioni alternative per il servizio. Apple spedirà un prodotto o un
componente sostitutivo al consumatore unitamente alle istruzioni per
l’installazione, ove necessarie, nonché ogni indicazione per la restituzione
del prodotto o componente sostituito. Qualora il consumatore segua le
istruzioni impartite, Apple cancellerà l’addebito e pertanto il prezzo del
prodotto e le relative spese di spedizione non saranno addebitati sulla
carta di credito del consumatore. Se il cliente non provvede a restituire il
prodotto o il componente sostituito in conformità con le istruzioni, o se il
prodotto o il componente sostituito non risultasse idoneo per il servizio
in garanzia, Apple addebiterà l’importo autorizzato sulla carta di credito.
(b) Servizio per cui Apple non richiede la restituzione del prodotto o
componente sostitutivo. Apple spedirà un prodotto o componente
sostitutivo al consumatore gratuitamente unitamente alle istruzioni per
l’installazione, ove necessarie, nonché ogni indicazione per la restituzione
del prodotto o componente sostituito.
(c) Apple non è responsabile di eventuali costi sopportati dal
consumatore con riferimento al servizio DIY. Qualora il consumatore
necessiti di ulteriore assistenza, si prega di contattare Apple ai numeri di
telefono indicati di seguito.
Apple si riserva il diritto di modificare le modalità di prestazione del
servizio di garanzia da parte di Apple nei confronti del consumatore,
nonché la disponibilità di un particolare tipo di servizio per il Prodotto
Apple. Il tipo di servizio, sarà limitato alle opzioni disponibili a seconda
del paese in cui il servizio di garanzia viene richiesto. Le opzioni di
servizio, la disponibilità delle parti e i tempi di risposta possono variare
a seconda del paese. Il consumatore può essere responsabile per i costi
di spedizione e gestione se il Prodotto Apple non può essere riparato o
sostituito nel paese ove si trova. Se il servizio di garanzia viene richiesto
in un paese diverso da quello in cui il prodotto è stato acquistato, il
consumatore è tenuto ad osservare le leggi e i regolamenti applicabili
in materia di importazione ed esportazione e a farsi carico dei dazi
doganali, dell’IVA e di tutte le altre imposte ed oneri associati. In caso di
fornitura del servizio di garanzia internazionale, Apple potrà riparare o
sostituire i prodotti e i componenti difettosi con prodotti e componenti
equiparabili conformi alle normative locali.
LIMITAZIONI DI RESPONSBAILITÀ. FATTO SALVO QUANTO PREVISTO
DALLA PRESENTE GARANZIA E FINO AL MASSIMO LIMITE PREVISTO
DALLA LEGGE, APPLE NON È RESPONSABILE DEI DANNI DIRETTI,
SPECIALI, INDIRETTI O ACCESSORI DERIVANTI DALLA VIOLAZIONE DELLA
GARANZIA O DI SUE DISPOSIZIONI, OVVERO PREVISTI DA QUALSIASI
ALTRO PRINCIPIO DI LEGGE, IVI COMPRESI, A TITOLO ESEMPLIFCIATIVO, LA
PERDITA DI UTILIZZO, PERDITA DI FATTURATO, PERDITA DI UTILI EFFETTIVI
O PREVISTI (COMPRESA LA PERDITA DI UTILI CONTRATTUALI); PERDITA
DI LIQUIDITÀ; PERDITA DI RISPARMI ATTESI; PERDITA DI AFFARI; PERDITA
DI OPPORTUNITÀ; PERDITA DI AVVIAMENTO; DANNI ALL’IMMAGINE;
PERDITA, DANNI, ALTERAZIONE O DISTRUZIONE DI DATI; O QUALSIASI
PERDITA O DANNO INDIRETTO O ACCESSORIO A PRESCINDERE DALLA
CAUSA, IVI COMPRESA LA SOSTITUZIONE DI ATTREZZATURE E BENI, LE
SPESE DI RECUPERO DATI, RIPROGRAMMAZIONE O RIPRODUZIONE DEI
PROGRAMMI O DEI DATI CONTENUTI O UTILIZZATI CON IL PRODOTTO
APPLE, NONCHÉ DELLA MANCATA PROTEZIONE DELLA RISERVATEZZA
DELLE INFORMAZIONI MEMORIZZATE NEL PRODOTTO APPLE.
LE SUDDETTE LIMITAZIONI NON SI APPLICANO IN CASO DI RICHIESTE
DI RISARCIMENTO PER MORTE O LESIONI PERSONALI O ALLE
RESPONSABILITÀ DI LEGGE PER COMPORTAMENTI O OMISSIONI DOLOSI
O COLPOSI. APPLE SPECIFICAMENTE NON GARANTISCE CHE SARÀ IN
GRADO DI RIPARARE OGNI PRODOTTO APPLE COPERTO DALLA PRESENTE
GARANZIA O DI SOSTITUIRE IL PRODOTTO APPLE SENZA RISCHIO O
PERDITA DI PROGRAMMI O DATI MEMORIZZATI NEL PRODOTTO APPLE.
POICHÉ ALCUNI PAESI, REGIONI E PROVINCE NON AMMETTONO
L’ESCLUSIONE O LA LIMITAZIONE IN CASO DI DANNI ACCIDENTALI O
CONSEQUENZIALI, LE SUMMENZIONATE LIMITAZIONI ED ESCLUSIONI
POTREBBERO NON ESSERE APPLICABILI.
PRIVACY. Apple si impegna a conservare ed utilizzare le informazioni sulla
clientela in conformità con la politica sulla privacy di Apple, disponibile
alla pagina www.apple.com/legal/warranty/privacy.
VARIE. Ai rivenditori, agenti o dipendenti di Apple non è consentito
apportare modifiche, estensioni o integrazioni alla presente garanzia.
Nel caso in cui alcune delle condizioni della presente garanzia siano
dichiarate invalide, nulle o non applicabili le restanti condizioni dovranno
comunque considerarsi pienamente valide ed efficaci. La presente
garanzia è regolata e dovrà essere interpretata sulla base della legge
del luogo di acquisto del Prodotto Apple. Apple è identificata in calce al
presente documento sulla base del paese o regione in cui è avvenuto
l’acquisto del Prodotto Apple. Apple o i suo aventi causa sono i prestatori
di garanzia sulla base della presente garanzia.
INFORMAZIONI ONLINE. Maggiori informazioni sui seguenti argomenti
sono disponibili online:
Supporto internazionale
www.apple.com/support/country
Distributori autorizzati
www.apple.com/iphone/countries/
Fornitori di assistenza autorizzati Apple Authorized Service Provider
support.apple.com/kb/HT1434
Apple Retail Store
www.apple.com/retail/storelist
Supporto e assistenza Apple
http://www.apple.com/support/contact/phone_contacts.html
Apple Complimentary Support
http://www.apple.com/support/country/index.html?dest=complimentary
OBBLIGATO PER LA GARANZIA IN BASE AL PAESE
O ALLA REGIONE D’ACQUISTO
Regione/Paese d’acquisto Apple Indirizzo
Americhe
Brasile Apple Computer
Brasil Ltda
Av. Cidade Jardim 400, 2
Andar, Sao Paulo, SP Brasil
01454-901
Canada Apple Canada Inc. 7495 Birchmount Rd.;
Markham, Ontario, Canada;
L3R 5G2 Canada
Messico Apple Operations
Mexico, S.A. de C.V.
Prolongaciòn Paseo de la
Reforma #600, Suite 132,
Colonia Pena Blanca, Santa
Fè, Delegaciòn Alvaro
Obregòn, Mèxico D.F.,
CP01210, Mexico
Stati Uniti ed altri Paesi
americani
Apple Inc. 1 Infinite Loop; Cupertino,
CA 95014, U.S.A.
Europa, Medio Oriente e Africa
Tutti i Paesi Apple Sales
International
Hollyhill Industrial Estate
Hollyhill, Cork, Republic
of Ireland
Asia-Pacifico
Australia; Nuova Zelanda; Fiji,
Papua Nuova Guinea; Vanuatu
Apple Pty. Ltd. PO Box A2629, Sydney
South, NSW 1235, Australia
Hong Kong Apple Asia Limited 2401 Tower One, Times
Square, Causeway Bay;
Hong Kong
India Apple India
Private Ltd.
19th Floor, Concorde Tower
C, UB City No 24, Vittal
Mallya Road, Bangalore
560-001, India
Giappone Apple Japan Inc. 3-20-2 Nishishinjuku,
Shinjuku-ku, Tokyo, Japan
Corea Apple Korea Ltd. 3201, ASEM Tower; 159,
Samsung-dong, Gangnam-
Gu; Seoul 135-798,
Republic of Korea
Afghanistan, Bangladesh,
Bhutan, Brunei, Cambogia,
Guam, Indonesia, Laos,
Singapore, Malaysia, Nepal,
Pakistan, Filippine, Sri Lanka,
Vietnam
Apple Computer
South Asia PTE Ltd
7 Ang Mo Kio Street 64,
Singapore 569086
Regione/Paese d’acquisto Apple Indirizzo
Repubblica Popolare Cinese Apple Computer
Trading (Shanghai)
Co. Ltd.
Room 1815, No. 1 Jilong
Road, Waigaoqiao Free
Trade Zone, Shangai
200131 China
Taiwan Apple Asia LLC 16A, No. 333 Tun Hwa
S. Road.
Sec. 2, Taipei, Taiwan 106
Thailandia Apple South Asia
(Thailand) Limited
25th Floor, Suite B2, Siam
Tower,989 Rama 1 Road,
Pataumwan, Bangkok,
10330
Altri Apple Inc. 1 Infinite Loop; Cupertino,
CA 95014, U.S.A.
iPhone T Warranty v3
© 2011 Apple Inc. Tutti i diritti riservati.
Apple, il logo Apple logo, FaceTime, iPhone, iPod, iPod touch, iTunes,
Safari, Siri, il logo “Made for iPod” e il logo “Works with iPhone” sono
marchi di Apple Inc., registrati negli Stati Uniti e in altri paesi. Il logo
“Made for iPhone” e iMessage sono marchi di Apple Inc. iTunes Store è
un marchio di servizio di Apple Inc., registrato negli Stati Uniti e in altri
paesi. App Store e iCloud sono marchi di servizio di Apple Inc. IOS è un
marchio o un marchio di Cisco registrato negli Stati Uniti e in altri paesi
il cui uso è concesso in licenza. Il marchio e i loghi Bluetooth® sono
marchi registrati di proprietà di Bluetooth SIG, Inc. e qualsiasi uso di tali
marchi da parte di Apple Inc. è concesso in licenza.
T034-6009-A
Printed in XXXX
Logic Pro X Instrumente
Für OS X
KKApple Inc.
© 2013 Apple Inc. Alle Rechte vorbehalten.
Ihre Rechte an der Software unterliegen dem zugehörigen
Softwarelizenzvertrag. Der Eigentümer oder autorisierte
Benutzer einer gültigen Kopie der Logic Pro-Software ist
berechtigt, diese Dokumentation zwecks Erlernen des
Umgangs mit dieser Software zu reproduzieren. Kein Teil
dieser Dokumentation darf für kommerzielle Zwecke, etwa
zum Verkauf von Kopien dieser Dokumentation oder zum
Bereitstellen zahlungspflichtiger Supportdienste, reproduziert
oder übertragen werden.
Das Apple-Logo ist eine Marke der Apple Inc., die in den USA
und in weiteren Ländern eingetragen ist. Die Verwendung des
über die Tastatur erzeugten Apple-Logos für kommerzielle
Zwecke ohne vorherige Genehmigung von Apple kann als
Markenmissbrauch und unlauterer Wettbewerb gerichtlich
verfolgt werden.
Die Informationen in diesem Handbuch wurden sorgfältig
auf ihre Korrektheit überprüft. Apple übernimmt keine
Verantwortung für Druck- oder Schreibfehler.
Da Apple regelmäßig neue Versionen und Aktualisierungen
von Systemsoftware, Programmen und Internetseiten veröffentlicht,
unterscheiden sich die Abbildungen in diesem
Handbuch unter Umständen von den Darstellungen in
der Software.
Apple
1 Infinite Loop
Cupertino, CA 95014
408-996-1010
www.apple.com
Apple, das Apple-Logo, Final Cut Pro, Finder, FireWire,
GarageBand, iMovie, iPad, iPhoto, iPod, iTunes, iTunes Store,
Jam Pack, Logic, Logic Pro, Mac, Macintosh, MainStage,
QuickTime und Ultrabeat sind Marken der Apple Inc., die in
den USA und weiteren Ländern eingetragen sind.
IOS ist eine Marke oder eine in den USA und weiteren Ländern
eingetragene Marke der Cisco und wird in Lizenz verwendet.
Andere hier genannte Produkt- und Herstellernamen sind
möglicherweise Marken ihrer jeweiligen Rechtsinhaber. Die
Nennung von Produkten anderer Anbieter erfolgt lediglich
zu Informationszwecken und stellt weder eine Bestätigung
noch eine Empfehlung dar. Apple übernimmt hinsichtlich
der Auswahl, Leistung oder Verwendbarkeit dieser Produkte
keine Gewähr.
D019-2552
Inhalt
13 Kapitel 1: Drum Kit Designer
13 Drum Kit Designer – Übersicht
14 Bereich „Edit“ von Drum Kit Designer
14 Verwenden von Drum Kit Designer
17 Erweiterte Parameter von Drum Kit Designer
18 Drum Kit Designer – Mappings
19 Kapitel 2: ES1
19 ES1 – Übersicht
20 ES1 Oszillators-Parameter
20 ES1-Oszillator-Parameter – Übersicht
21 ES1 Oszillator-Wellenformen
21 Verwenden des Suboszillators im ES1
21 ES1 Global-Parameter
23 ES1 Filter-Parameter
23 ES1 Filter-Parameter – Übersicht
24 Selbstoszillation des ES1-Filters
24 ES1 Amplifier-Parameter
25 ES1 Hüllkurven-Parameter
25 ES1 Hüllkurven-Parameter – Übersicht
25 Verwenden der Hüllkurve zum Steuern der Cutoff-Frequenz im ES1
26 Verwenden der Hüllkurve zum Steuern des Verstärkers im ES1
27 ES1 Modulation
27 ES1 Modulationsparameter – Übersicht
27 Verwenden des Routers im ES1
28 Verwenden des ES1 LFO
29 Verwenden von Mod ES1-Envelope
30 ES1 MIDI-Controller
32 Kapitel 3: ES2
32 ES2 – Übersicht
33 Bedienoberfläche des ES2
34 ES2-Soundquellen
34 ES2-Oszillator-Parameter – Übersciht
35 Grundlegende ES2-Oszillator-Wellenformen
36 Pulsbreitenmodulation im ES2
37 Frequenzmodulation im ES2
38 Ringmodulation im ES2
38 Verwenden von ES2-Digiwaves
39 Verwenden des ES2-Noise-Generators
39 Emulieren von verstimmten Analog-Oszillatoren im ES2
40 Streckung im ES2
3
41 Ausgleichen von ES2-Oszillatorpegeln
41 Ändern von Oszillator-Startpunkten im ES2
42 Synchronisieren von ES2-Oszillatoren
42 Globale Parameter im ES2
42 Globale Parameter – Übersicht
43 Einstellen des Keyboard-Modus im ES2
44 Verwenden von Unison und Stimmen im ES2
44 Festlegen der Zeiteinstellung für Glide im ES2
45 Pitch-Bend-Bereich des ES2 festlegen
45 Filter-Parameter des ES2
45 Filter im ES2 – Übersicht
46 Filterkonfiguration im ES2
47 Überblenden zwischen ES2-Filtern
48 Modi von Filter 1 im ES2
49 Flankensteilheiten von Filter 2 im ES2
49 Filter-Cutoff-Frequenz und Resonanz im ES2
51 Verzerren von ES2-Filtern
52 Modulieren der Frequenz von Filter 2 des ES2
52 Amplifier-Parameter des ES2
52 Verwenden der Dynamikstufe des ES2
53 Optimierte ES2-Sounds mit Sine Level
54 ES2-Modulation
54 ES2-Modulation – Übersicht
55 Modulations-Router im ES2
58 ES2 LFOs
60 ES2-LFOs verwenden
60 ES2-Hüllkurven
63 Verwenden der Vector-Hüllkurve
64 Punkte, Zeiten und Loops der Vector-Hüllkurve
70 Verwenden von Planar Pad
71 Referenz der Modulationsziele im ES2
75 Referenz der Modulationsquellen im ES2
76 Referenz der via-Modulationsquellen im ES2
78 Integrierter Effektprozessor des ES2
79 ES2-Makroregler und Reglerzuweisungen
79 ES2-Makro- und Reglerzuweisungen – Überscht
80 Makro-Steuerungen im ES2
80 ES2-Controller-Zuweisung
81 Surround-Modus des ES2
82 ES2 – Erweiterte Parameter
82 Erzeugen von zufälligen Sound-Variationen im ES2
82 Verwenden der Zufalls-Parameter des ES2
83 Beschränkung der Random-Funktion
84 Tutorials zum ES2
84 Erzeugen von völlig neuen ES2-Sounds
94 Erzeugen von ES2-Sounds mit Templates
Inhalt 4
100 Kapitel 4: EFM1
100 EFM1 – Übersicht
101 EFM1 Modulator- und Carrier-Parameter
101 Modulator- und Carrier-Überblick
102 Einstellen der Tuning Ratio im EFM1
103 Auswählen einer anderen Modulator-Wellenform im EFM1
103 Parameter für EFM1-Modulation
105 EFM1-Globalparameter
106 EFM1-Ausgangsparameter
107 Erstellen von Random-EFM1-Sounds
107 EFM1-Ausgangsparameter
108 EFM1 MIDI-Controller-Zuweisungen
109 Kapitel 5: ES E
109 ES E – Übersicht
110 ES E-Oszillator-Parameter
110 ES E-LFO-Parameter
111 ES E-Filter-Parameter
112 ES E-Hüllkurvenparameter
112 ES E-Output-Parameter
113 Erweiterte ES E-Parameter
114 Kapitel 6: ES M
114 ES M – Übersicht
115 ES M-Oszillator-Parameter
116 ES M-Filter und -Filterhüllkurve
116 Lautstärke-Hüllkurve und Output-Parameter des ES M
117 Erweiterte ES M-Parameter
118 Kapitel 7: ES P
118 ES P – Übersicht
119 Oszillator-Parameter des ES P
120 ES P LFO-Parameter
120 ES P Filter-Parameter
121 Hüllkurve und der Level-Parameter des ES P
122 Integrierter ES P Effekt-Prozessor
122 Erweiterte Parameter des ES P
123 Kapitel 8: EVOC 20 PolySynth
123 EVOC 20 PolySynth und Vocoding
123 EVOC 20 PolySynth – Übersicht
124 Grundlagen zum Vocoder
125 EVOC 20 PolySynth Oberfläche
125 Analyse-Parameter des EVOC 20 PolySynth
127 EVOC 20 PolySynth (U/V) Detektor-Parameter
128 Synthese-Parameter des EVOC 20 PolySynth
128 Synthese-Parameter des EVOC 20 PolySynth – Übersicht
129 Oszillator-Parameter des EVOC 20 PolySynth
131 Parameter zur Steuerung von Stimmung und Tonhöhe im EVOC 20 PolySynth
131 Filter-Parameter des EVOC 20 PolySynth
132 Hüllkurven-Parameter des EVOC 20 PolySynth
132 Globale Parameter des EVOC 20 PolySynth
Inhalt 5
133 Formant-Filter im EVOC 20 PolySynth
135 Modulationsparameter des EVOC 20 PolySynth
136 Output-Parameter des EVOC 20 PolySynth
137 EVOC 20 PolySynth Performance Tipps
137 Pegel- und Frequenz-Tipps
137 Vermeiden von klanglichen Artefakten
138 Verbessern der Sprachverständlichkeit
139 Vocoder-Geschichte
141 EVOC20-Blockschaltbild
142 Kapitel 9: EXS24 mkII
142 EXS24 mkII – Übersicht
144 Sampler-Instrumente
144 Sampler-Instrumente – Übersicht
144 Sample-Speicherorte
145 Verwalten von Sampler-Instrumenten
146 Sampler-Instrumente und -Einstellungen
147 Importieren von SoundFont2-, DLS- und Gigasampler-Dateien
148 Konvertieren von Audioregionen in Sampler-Instrumente
149 Konvertieren von ReCycle-Dateien in Sampler-Instrumente
151 Fenster „Parameter“ des EXS24 mkII
151 Fenster „Parameter“ des EXS24 mkII – Übersicht
152 Einblendmenü „Sampler Instruments“
155 Globale Parameter des EXS24 mkII
158 Pitch-Parameter des EXS24 mkII
160 Filterparameter des EXS24 mkII
162 Output-Parameter des EXS24 mkII
163 Erweiterte Parameter des EXS24 mkII
163 EXS24 mkII-Modulation – Übersicht
164 EXS24 mkII-Modulations-Router
167 LFOs des EXS24 mkII
170 EXS24 mkII-Hüllkurven – Übersicht
172 EXS24 mkII-Modulationsreferenz
176 EXS24 mkII-Fenster „Instrument-Editor“
176 EXS24 mkII-Instrument-Editor – Übersicht
177 Ansicht „Zonen“ und „Gruppen“ im EXS24 mkII
178 Erstellen von Instrumenten, Zonen und Gruppen
182 Bearbeiten von Zonen und Gruppen im EXS24 mkII
194 Sichern, Umbenennen und Exportieren von Instrumenten im EXS24 mkII
195 Bearbeiten von Samples im Audiodateieditor von Logic Pro
196 Verwenden eines externen Instrumenteditors im EXS24 mkII
197 Einstellungen des EXS24 mkII
200 EXS24 mkII-Speicherverwaltung
202 Kapitel 10: External Instrument
202 External Instrument – Übersicht
202 Verwenden von External Instrument
204 Kapitel 11: Klopfgeist
204 Klopfgeist-Parameter
Inhalt 6
206 Kapitel 12: Retro Synth
206 Retro Synth – Übersicht
207 Steuerelemente für Analog-Oszillator in Retro Synth
208 Steuerelemente für Sync-Oszillator in Retro Synth
209 Steuerelemente für Table-Oszillator in Retro Synth
210 Steuerelemente für FM-Oszillator in Retro Synth
211 Steuerelemente für Filter in Retro Synth
213 Steuerelemente für Verstärker und Effekte in Retro Synth
214 Steuerelemente für Modulation in Retro Synth
214 Verwenden der Modulation in Retro Synth
216 Glide- und Autobend-Modus in Retro Synth
216 LFO und Vibrato in Retro Synth
217 Hüllkurven in Retro Synth
218 Globale und Controller-Einstellungen von Retro Synth
220 Erweiterte Parameter in Retro Synth
221 Kapitel 13: Sculpture
221 Sculpture – Übersicht
223 Die Oberfläche von Sculpture
224 Saiten-Parameter von Sculpture
224 Übersicht Saiten in Sculpture
225 Hide-, Keyscale- und Release-Darstellung in Sculpture
226 Grundlegende Parameter des Material Pads in Sculpture
227 Verwenden des Material Pads in der Keyscale- oder Release-Ansicht von Sculpture
228 Verwenden der Schieberegler für die Saiten-Parameter von Sculpture
230 Objekt-Parameter von Sculpture
230 Sculpture-Objekt – Übersicht
232 Tabelle Erregungs-Typen von Sculpture (Objekte 1 und 2)
233 Tabelle Stör- und Dämpf-Typen von Sculpture (Objekt 2 und 3)
234 Pickup-Parameter von Sculpture
234 Pickup-Parameter von Sculpture
236 Spread-Regler in Sculpture
237 Globale Parameter von Sculpture
238 Parameter der Amplitudenhüllkurve in Sculpture
239 Verwenden des Waveshaper in Sculpture
240 Filter-Parameter von Sculpture
241 Parameter für Delay-Effekt von Sculpture
241 Übersicht Delay-Effekt von Sculpture
242 Stereo-Groove-Pad von Sculpture
243 Groove-Pad (surround) von Sculpture
243 Body-EQ-Parameter von Sculpture
243 Übersicht Body EQ von Sculpture
244 Verwenden des Basic-EQ-Modells
245 Verwenden des Body-EQ-Modells
246 Output-Parameter von Sculpture
246 „Surround Range“ und „Surround Diversity“ in Sculpture
Inhalt 7
247 Steuerelemente zur Modulation bei Sculpture
247 Übersicht Modulation bei Sculpture
248 LFOs in Sculpture
252 Vibrato-Parameter von Sculpture
253 Jitter-Generatoren von Sculpture
254 Note-On-Random-Modulatoren in Sculpture
254 Velocity-Modulatoren in Sculpture
255 Verwenden von Controller A und B in Sculpture
256 Hüllkurven-Parameter von Sculpture
262 Morph-Parameter von Sculpture
262 Morph-Parameter in Sculpture –Übersicht“
263 Verwenden des Morph Pad von Sculpture
266 Verwenden der Morph-Hüllkurve von Sculpture
270 Definieren von MIDI-Controller in Sculpture
271 Sculpture-Tutorials
271 Grundlagen von Sculpture
276 Erzeugen von Grundklängen in Sculpture
285 Sculpture-Tutorial für Fortgeschrittene: Elektrische Bässe
301 Sculpture-Tutorial für Fortgeschrittene: Synthetische Klänge
306 Kapitel 14: Ultrabeat
306 Ultrabeat – Übersicht
307 Bedienoberfläche von Ultrabeat
308 Zuordnungsbereich in Ultrabeat
308 Übersicht Zuordnungsbereich in Ultrabeat
309 Wiedergeben und Auswählen von Drum-Sounds in Ultrabeat
310 Benennen, Austauschen und Kopieren von Drum-Sounds in Ultrabeat
312 Importieren von Sounds und EXS-Instrumenten in Ultrabeat
314 Ultrabeat-Settings
315 Übersicht Synthesizer-Bereich in Ultrabeat
317 Klangquellen in Ultrabeat
317 Übersicht Ultrabeat-Oszillator
318 Phasenoszillator-Modus von Oszillator 1 in Ultrabeat
319 Verwenden des FM-Modus von Oszillator 1 in Ultrabeat
320 Verwenden des Side-Chain-Modus von Oszillator 1 in Ultrabeat
321 Verwenden des Phasenoszillator-Modus von Oszillator 2 in Ultrabeat
322 Eigenschaften der grundlegenden Wellenform
322 Verwenden des Sample-Modus von Oszillator 2 in Ultrabeat
324 Verwenden des Modeling-Modus von Oszillator 2 in Ultrabeat
326 Ringmodulator in Ultrabeat
327 Rauschgenerator in Ultrabeat
328 Verwenden des Filter-Bereichs von Ultrabeat
330 Distortion-Schaltkreis in Ultrabeat
331 Ausgangsbereich in Ultrabeat
331 Übersicht Ausgangsbereich in Ultrabeat
332 Anpassen des Zweiband-Equalizers (two-band EQ) in Ultrabeat
333 Pan-Mod und Stereo-Spread in Ultrabeat
334 Lautstärkeregler „Voice“ in Ultrabeat
335 Ändern des Trigger-Verhaltens von Ultrabeat
Inhalt 8
335 Modulation in Ultrabeat
335 Übersicht Modulation in Ultrabeat
336 mod- und via-Modulation in Ultrabeat
338 Erzeugen einer Modulationsverknüpfung in Ultrabeat
339 Ultrabeat-MIDI-Controller A–D zuweisen
339 Ultrabeat-LFOs verwenden
342 Übersicht Ultrabeat-Hüllkurven
343 Parameter der Hüllkurven in Ultrabeat
344 Verwenden der Anzeige des Modulationsziels in Ultrabeat
345 Step-Sequenzer von Ultrabeat
345 Übersicht Step-Sequenzer von Ultrabeat
345 Funktionsprinzip von Step-Sequenzern
346 Übersicht Bedienoberfläche des Step-Sequenzers
347 Globale Steuerung des Sequenzers in Ultrabeat
347 Pattern-Steuerung in Ultrabeat
348 Verwenden der Swing-Funktion von Ultrabeat
349 Step-Grid in Ultrabeat
354 Automatisieren von Parameterwerten im Step-Sequenzer von Ultrabeat
356 Exportieren von Ultrabeat-Patterns als MIDI-Regionen
357 MIDI-Steuerung des Step-Sequenzers von Ultrabeat
358 Ultrabeat-Tutorials
358 Sound-Programmierung – Übersicht
358 Erzeugen eines Kick-Drum-Sounds in Ultrabeat
362 Erzeugen eines Snare-Drum-Sounds in Ultrabeat
367 Erzeugen tonaler Percussion-Sounds in Ultrabeat
367 Erzeugen von HiHat- und Becken-Sounds in Ultrabeat
368 Erzeugen metalischer Sounds in Ultrabeat
368 Tipps für extreme Ultrabeat-Sounds
369 Kapitel 15: Vintage B3
369 Vintage B3 – Überblick
370 Hauptfenster von Vintage B3
370 Hauptfenster von Vintage B3 – Überblick
371 Steuerung der Zugriegel von Vintage B3
371 Scanner Vibrato- und Chorus-Effekt von Vintage B3
372 Percussion-Effekt von Vintage B3
373 Verwenden der Preset Keys von Vintage B3
375 Einrichten von Vintage B3 für MIDI-Equipment
378 Fenster „Rotor Cabinet“ von Vintage B3
378 Fenster „Rotor Cabinet“ von Vintage B3 – Überblick
379 Erweiterte Parameter für die Lautsprecherbox
380 Erweiterte Motor-Parameter
381 Erweiterte Brake-Parameter
382 Mikrofon-Parameter von Vintage B3
383 Mikrofon-Parameter von Vintage B3
383 Fenster „Options“ von Vintage B3
383 Fenster „Options“ von Vintage B3 – Überblick
384 Steuerelemente „Master“ und „Click“ in Vintage B3
384 Morph-Parameter von Vintage B3
385 Verwenden der Morph-Steuerelemente von Vintage B3
Inhalt 9
386 Fenster „Effects“ von Vintage B3
386 Verwenden der Effekte von Vintage B3
387 EQ von Vintage B3
387 Wah-Wah-Effekt von Vintage B3
388 Verzerrer-Effekt von Vintage B3
389 Hall-Effekt von Vintage B3
389 Fenster „Expert“ von Vintage B3
389 Fenster „Expert“ von Vintage B3 – Überblick
390 Steuerelemente „Pitch“ in Vintage B3
391 Steuerelemente „Sustain“ in Vintage B3
391 Steuerelemente „Condition“ in Vintage B3
393 Steuerelemente „Organ Model“ von Vintage B3
393 Verwenden eines MIDI-Controllers mit Vintage B3
393 Auswählen eines MIDI-Steuermodus in Vintage B3
394 MIDI-Modus in Vintage B3: Roland VK oder Korg CX
395 MIDI-Modus in Vintage B3: Hammond Suzuki
396 MIDI-Modus in Vintage B3: Native Instruments B4D
398 MIDI-Modus in Vintage B3: Nord Electro
399 Information zu B3 und Leslie
399 Additive Synthese mit Zugriegeln
400 Der Residualeffekt
400 Die Tonrad-Klangerzeugung
400 Die Geschichte der Hammond-Orgel
401 Das Leslie Cabinet
403 Kapitel 16: Vintage Clav
403 Vintage Clav - Übersicht
403 Vintage Clav Oberfläche
404 Fenster „Vintage Clav Main“
404 Fenster „Vintage Clav Main“ – Überblick
405 Vintage Clav Modelle
406 Vintage Clav Modell-Charakteristiken
407 Verwenden von Vintage Clav Pickup-Parametern
408 Verwenden von Vintage Clav Stereo Spread-Parametern
408 Fenster „Vintage Clav Effekte“
408 Fenster „Vintage Clav Effekte“ Überblick
410 Vintage Clav Compressor-Effekt
410 Vintage Clav Distortion-Effekt
411 Vintage Clav Modulation-Effekt
411 Vintage Clav Wah-Effekt
412 Fenster „Vintage Clav Details“
412 Fenster „Vintage Clav Details“ Überblick
413 Vintage Clav Excite- und Klick-Parameter
414 Vintage Clav String Parameter
415 Vintage Clav Pitch Parameter
416 Vintage Clav Misc Parameter
417 Vintage Clav erweiterte Parameter
418 D6 Clavinet-Informationen
418 D6 Clavinet-Geschichte
419 Mechanische Details des D6 Clavinet
Inhalt 10
420 Kapitel 17: Vintage-E-Piano
420 Vintage-E-Piano Übersicht
421 Vintage-E-Piano Oberfläche
422 Fenster „Vintage-E-Piano Effects“
422 Vintage-E-Piano EQ
422 Vintage-E-Piano Drive-Effekt
423 Vintage-E-Piano Chorus-Effekt
423 Vintage-E-Piano Phaser-Effekt
424 Vintage-E-Piano Tremolo-Effekt
425 Fenster „Vintage-E-Piano Details“
425 Fenster „Vintage-E-Piano“ Model-Parameter
426 Vintage-E-Piano Pitch-Parameter
427 Vintage-E-Piano Extended-Parameter
427 Vintage-E-Piano Emulationen
427 Rhodes-Modelle:
428 Hohner und Wurlitzer Modelle
429 Vintage-E-Piano MIDI-Controller
430 Anhang A: Ältere Instrumente
430 Ältere Instrumente – Übersicht
430 Emulierte Instrumente
430 Bass
430 Church Organ
431 Drum-Kits:
431 Electric Clav(inet)
431 Electric Piano
432 Guitar
432 Horns
432 Piano
432 Sound Effects
433 Strings
433 Tuned Percussion
433 Voice
433 Woodwind
434 Tonewheel Organ
434 Synthesizer
434 Analog Basic
435 Analog Mono
435 Analog Pad
436 Analog Swirl
436 Analog Sync
437 Digital Basic
437 Digital Mono
438 Digital Stepper
438 Hybrid Basic
439 Hybrid Morph
Inhalt 11
440 Anhang B: Synthesizer-Grundlagen
440 Synthesizer-Grundlagen – Übersicht
440 Tongrundlagen
440 Tongrundlagen – Übersicht
441 Töne, Obertöne, Harmonische und Partialtöne
442 Das Frequenzspektrum
442 Weitere Eigenschaften von Wellenformen
443 Snythesizer-Grundlagen
445 Subtraktive Synthesizer
445 Funktionsprinzip von subtraktiven Synthesizern
446 Subtraktive Synthesizerkomponenten – Übersicht
447 Oszillatoren
449 Filter
452 Hüllkurven im Amplifier
454 Modulation
457 Globale Parameter
458 Weitere Synthese-Methoden
458 Weitere Synthese-Methoden – Überblick
458 Sample-basierte Synthese
459 Frequenzmodulation (FM-Synthese)
459 Component-Modeling-Synthese
460 Wavetable-, Vector- und Linear-Arithmetische (LA) Synthese
461 Additive Synthese
461 Phase-Distortion-Synthese
462 Granularsynthese
462 Die Geschichte des Synthesizers
462 Die Vorläufer des Synthesizers
463 Frühe spannungsgesteuerte Synthesizer
464 Der Minimoog
464 Speicherung und Polyphonie
465 Digitalsynthesizer
Inhalt 12
1
13
Drum Kit Designer – Übersicht
Mit Drum Kit Designer können Sie aus einer breiten Auswahl an Schlagzeug- und Percussion-
Sounds ein eigenes Schlagzeug zusammenstellen. Daneben stehen Steuerelemente für die
Klangregulierung zur Verfügung, über die Sie die Klangfarbe der einzelnen Elemente Ihres
Schlagzeugs ändern können.
Weitere Einstellungen ermöglichen es, verschiedene Mikrofone und Räume zu verwenden,
um Producer-Kits zu erweitern. Producer-Kits werden in der Bibliothek durch ein „+“ am Ende
des Patch-Namens gekennzeichnet. In der Logic Pro-Hilfe finden Sie weitere Informationen zu
Producer-Kits unter „Hinzufügen eines Drummers zu einem Projekt“.
Exchange panel Edit panel
Drum kit
Die Bedienoberfläche des Drum Kit Designers besteht aus den folgenden Hauptbereichen.
•• Drumkit: Klicken Sie auf ein Schlagzeugelement für eine Hörprobe. Anschließend können Sie
die Bereiche „Edit“ und „Exchange“ öffnen, wenn Austauschelemente für den betreffenden
Schlagzeugtyp verfügbar sind.
•• Bereich „Exchange“: Zeigt alle Drum- und Percussion-Sounds, die ausgetauscht werden können
(scrollen Sie ggf. nach unten).
•• Bereich „Edit“: Zeigt die Einstellungen, mit denen Klangmerkmale geändert werden.
Drum Kit Designer
Kapitel 1 Drum Kit Designer 14
Bereich „Edit“ von Drum Kit Designer
Im Bereich „Edit“ können Sie die Klangfarbe der einzelnen Elemente Ihres Schlagzeugs ändern.
Parameter im Bereich „Edit“
•• Drehregler und Feld „Tune“: Stellt die Tonhöhe ein.
•• Drehregler und Feld „Dampen“: Stellt den Sustain-Pegel ein.
•• Drehregler und Feld „Gain“: Stellt den Lautstärkepegel ein.
•• Schalter „Leak“ (nur Producer-Kits): Auf ON wird der Klang dem Mikrofon der anderen
Schlagzeugelemente beigemischt.
•• Schalter „Overheads“ (nur Producer-Kits): Auf ON wird das Overhead-Mikrofon des Schlagzeugs
dem Sound beigemischt.
•• Schalter „Room“ (nur Producer-Kits): Mit diesem Schalter können Sie zwischen Raum A und
Raum B wählen oder die Raumemulation ausschalten.
Verwenden von Drum Kit Designer
Drum Kit Designer zeigt eine 3D-Darstellung des aktuell geladenen Schlagzeugs und der
dazugehörigen Einstellungen.
Sie können die dem Schlagzeug zugeordneten Sounds vorhören, Pitch, Sustain und Volume
jedes einzelnen Schlagzeug- und Percussionelements bearbeiten und die Kick- und Snare-Drums
austauschen. Wenn Sie mit Producer-Kits arbeiten, können Sie weitere Toms, Becken und Hi-Hats
austauschen. Mit den Producer-Kits können Sie verschiedene Mikrofone wie Overhead- oder
Raummikrofone ein- oder ausschalten.
Hinweis: Producer-Kits und einige Drums sind nur verfügbar, wenn Sie die zusätzlichen Inhalte
geladen haben.
Drum Kit Designer verfügt über weitere Parameter zum Anpassen der Lautstärke anderer
Percussion-Elemente wie Shaker, Cowbell usw. Weitere Informationen finden Sie unter Erweiterte
Parameter von Drum Kit Designer.
Kapitel 1 Drum Kit Designer 15
Schlagzeug- oder Percussion-Element vorhören
mm Klicken Sie auf ein Schlagzeug- oder Percussion-Element.
Wenn Sie nach dem Öffnen eines Plug-Ins zum ersten Mal auf ein Schlagzeug- oder Percussion-
Element klicken, werden zwei Bereiche geöffnet. Sie können einzelne Sounds im linken Bereich
„Exchange“ austauschen und einzelne Schlagzeug- oder Percussionelemente im rechten Bereich
„Edit“ bearbeiten.
Drumkit-Einstellungen anpassen (alle Kits)
1 Klicken Sie auf ein Schlagzeug- oder Percussion-Element.
Der rechte Bereich „Edit“ wird geöffnet.
•• Toms: Klicken Sie auf den Tab des Toms, der bearbeitet werden soll, oder klicken Sie auf den
Titel „All“, um den Sound aller Toms anzupassen.
•• Becken: Klicken Sie auf den Tab des Crash-Beckens, das bearbeitet werden soll, oder klicken
Sie auf den Titel „All“, um den Sound beider Crash-Becken anzupassen. Das Ride-Becken kann
direkt bearbeitet werden
•• Kicks und Snares: Es sind keine Tabs verfügbar, daher nehmen Sie Anpassungen mit den
Steuerelementen vor.
2 Führen Sie einen der folgenden Schritte aus, um Einstellungen anzupassen:
•• Tonhöhe anpassen: Bewegen Sie das Steuerelement „Tune“ in vertikaler Richtung oder doppelklicken
Sie auf das Feld und geben Sie einen neuen Wert ein.
•• Sustain anpassen: Bewegen Sie das Steuerelement „Dampen“ in vertikaler Richtung oder doppelklicken
Sie auf das Feld und geben Sie einen neuen Wert ein.
•• Lautstärke anpassen: Bewegen Sie das Steuerelement „Gain“ in vertikaler Richtung oder doppelklicken
Sie auf das Feld und geben Sie einen neuen Wert ein.
3 Klicken Sie auf den Hintergrund des Plug-In-Fensters, um geöffnete Bereiche zu schließen.
Kapitel 1 Drum Kit Designer 16
Schlagzeug-Element austauschen
Für alle Drumkits können Sie Kick- und Snare-Drum austauschen. Wenn Sie mit Producer-Kits
arbeiten, können Sie weitere Toms, Becken und Hi-Hats austauschen.
Hinweis: Producer-Kits und einige Drums sind nur verfügbar, wenn Sie zusätzliche Inhalte laden.
1 Klicken Sie auf ein Schlagzeug- oder Percussion-Element.
Der Bereich „Exchange“ wird links geöffnet, wenn Schlagzeugelemente für dieses Drumkit
verfügbar sind.
2 Klicken Sie auf dem ausgewählten Schlagzeugelement auf die Taste „i“, um nähere Informationen
zu erhalten.
3 Klicken Sie auf das Schlagzeug, das Sie im Bereich „Exchange“ austauschen möchten. Scrollen Sie
ggf. nach oben oder unten, um das gewünschte Schlagzeugelement zu finden.
Das Element wird ausgetauscht und der zugehörige Drum-Sound wird geladen.
Hinweis: Die Toms und die Crash-Becken können nur als Gruppe ausgetauscht werden.
4 Klicken Sie auf den Hintergrund des Plug-In-Fensters, um geöffnete Bereiche zu schließen.
Mikrofoneinstellungen anpassen (nur Producer-Kits)
Führen Sie im Bereich „Edit“ einen der folgenden Schritte aus:
mm Sound dem Mikrofon der anderen Schlagzeugelemente beimischen: Aktivieren Sie den
Schalter „Leak“.
Hiermit wird das Übersprechen (Bleed) des Mikrofons ein- oder ausgeschaltet, wenn der
Sound eines Schlagzeugelements von den Mikrofonen anderer Schlagzeugelemente mit
aufgenommen wird.
Kapitel 1 Drum Kit Designer 17
mm Overhead-Mikrofon des Schlagzeugelements in den Sound integrieren: Aktivieren Sie den Schalter
„Overheads“.
Hierdurch wird das Overhead-Mikrofon für das ausgewählte Element ein- oder ausgeschaltet.
mm Aufnahme einer bestimmten Raumemulation auswählen, die mit dem Sound verwendet
werden soll: Wählen Sie zwischen Raum A und Raum B. Alternativ können Sie die
Raummikrofone ausschalten.
Raum A und B bestimmen, welche Einstellungen für Raummikrofone mit diesem Kit verwendet
werden sollen.
Erweiterte Parameter von Drum Kit Designer
Drum Kit Designer hat zusätzliche Parameter, auf die Sie durch Klicken auf das Dreiecksymbol
links unten in der Oberfläche zugreifen können.
Das Einblendmenü „Input Mapping“ ermöglicht die Auswahl verschiedener Mappings, die
eine erweiterte Steuerung von Hi-Hats erlauben. Die Zuweisungen beeinflussen auch den
Klang von Drum Kit Designer-Sounds, die im MIDI-Notenbereich zugewiesen wurden. Weitere
Informationen finden Sie unter Drum Kit Designer – Mappings.
Erweiterte Parameter
•• Einblendmenü „Input Mapping“: Wählen Sie einen Modus für das Keyboard-Mapping aus.
•• GM: Die Drums werden nach dem GM-Standard zugewiesen.
•• GM + ModWheel Controls HiHat opening level: Das ModWheel am Keyboard ist für die Hi-Hat-
Steuerung zugewiesen. Weitere Sounds werden auf Keyboard-Bereiche über und unter dem
standardmäßigen GM-Noten-Mappingbereich zugewiesen.
•• V-Drum: Drums werden den Auslösern für V-Drum-Hi-Hat, Becken und Drum zugewiesen.
•• Schieberegler „Gain“: Bewegen Sie den Schieberegler (oder bewegen Sie den Mauszeiger vertikal
im Feld), um den Pegel des zugehörigen Sounds (falls im Kit verfügbar) anzupassen.
•• Shaker Gain
•• Tabourine Gain
•• Glaps Gain
•• Cowbell Gain
•• Sticks Gain
Kapitel 1 Drum Kit Designer 18
Drum Kit Designer – Mappings
Drum Kit Designer ist mit dem GM-Standard kompatibel. Sie können auch „GM+“ wählen,
wodurch das ModWheel des Keyboards für die Hi-Hat-Steuerung zugewiesen wird. Dies bedeutet,
dass Sie das ModWheel des Keyboards verwenden können, um zu steuern, wie weit die
Hi-Hats während der Drum-Performance geöffnet und geschlossen werden.
Drum Kit Designer ist auch mit dem V-Drum-Standard kompatibel.
Das Bild zeigt, wie das Remapping für Schlagzeug-Sounds erfolgt, wenn verschiedene Modi in
den erweiterten Parametern aus dem Einblendmenü „Input Mapping“ ausgewählt werden.
Hinweis: Eine Reihe von Alias-Drum-Sounds sind enthalten, um die GM-Kompatibilität
zu gewährleisten.
Shaker
C3
Ride In
Crash Right
Ride Bell
Ride Edge
High Tom
C2 High Tom
High Mid Tom
Low Mid Tom
Low Tom
Low Tom
Snare Rimshot
Snare Center
C1 Kick
C0
Kick
Hi-Hat Foot Close
Hi-Hat Foot Splash
Crash Right Stop
Crash Left Stop
Cowbell
Tambourine
Ride Out
Crash Left
Hi-Hat Open Edge
Hi-Hat Foot
Hi-Hat Closed Tip
C2
Hi-Hat Edge
Hi-Hat Shank
Hi-Hat Tip
Claps
Snare Sidestick
Snare Edge
Rimshot Edge
Shaker
C3
Ride In
Crash Right
Ride Bell
Ride Edge
High Tom
High Tom
High Mid Tom
Low Mid Tom
Low Tom
Low Tom
Snare Rimshot
Snare Center
C1 Kick
C0
Kick
Hi-Hat Foot Close
Hi-Hat Foot Splash
Crash Right Stop
Crash Left Stop
Cowbell
Tambourine
Ride Out
Crash Left
Claps
Snare Sidestick
Snare Edge
Rimshot Edge
GM Standard GM + ModWheel
2
19
ES1 – Übersicht
ES1 simuliert die Schaltungen eines analogen Synthesizers in einer einfachen,
übersichtlichen Oberfläche.
Der ES1 erzeugt Klänge mithilfe der subtraktiven Synthese. Er verfügt über einen Oszillator und
einen Suboszillator, die obertonreiche Wellenformen erzeugen. Von diesen Wellenformen werden
Anteile subtrahiert (entfernt bzw. gefiltert), um sie umzuformen und so neue Klänge zu erzeugen.
Die Klangerzeugung des ES1 bietet zudem flexible Modulationsoptionen, die es Ihnen leicht
machen, knackige Bässe, atmosphärische Flächen, durchsetzungsfähige Lead Sounds und akzentuierte
Perkussionsklänge zu erzeugen.
Wenn Synthesizer noch Neuland für Sie sind, empfehlen wir zunächst die Lektüre von
Synthesizer-Grundlagen – Übersicht auf Seite 440. Dort werden grundlegende Begriffe erläutert
und verschiedene Klangerzeugungssysteme und ihre Funktionsweise im Überblick dargestellt.
Global parameters
Envelope parameters
Modulation parameters
Oscillator parameters Filter parameters Amplifier parameters
ES1 ist in sechs Bereich unterteilt.
•• Oscillator-Parameter: Links oben sehen Sie den Oszillator, der die grundlegende Wellenform
erzeugt, mit der die Klangsynthese beginnt. Weitere Informationen finden Sie unter ES1-
Oszillator-Parameter – Übersicht auf Seite 20.
•• Globale Parameter: Ganz unten im grün-grauen Streifen finden Sie die globalen Parameter. Hier
können Sie unter anderem die Stimmung global verändern und den integrierten Chorus einschalten.
Der Chorus färbt und reichert den Sound an. Weitere Informationen finden Sie unter
ES1 Global-Parameter auf Seite 21.
•• Filter-Parameter: Sie finden diese oben in der Mitte im runden Filter-Bereich, sowie den Driveund
Key-Scaling-Parametern. Mit dem Filter werden aus dem reichhaltigen Spektrum der
Wellenformen der Oszillatoren Frequenzbereiche ausgefiltert. Weitere Informationen finden
Sie unter ES1 Filter-Parameter – Übersicht auf Seite 23.
•• Amplifier-Parameter: Mithilfe der Amplifier-Parameter oben rechts (der Dynamikstufe), können
Sie den Pegelverlauf jeder Note bestimmen. Weitere Informationen finden Sie unter ES1
Amplifier-Parameter auf Seite 24.
ES1
Kapitel 2 ES1 20
•• Parameter „Envelope“: Im dunkelgrün und grau gestalteten Bereich auf der rechten Seite finden
Sie die ADSR-Schieberegler, die der Regelung des Verlaufs dienen, den die Cutoff-Frequenz
(die „Filtereckfrequenz“ oder „Filtergrenzfrequenz“, also auch die Klangfarbe) und der Pegel
über die Dauer jeder einzelnen Note nehmen. Weitere Informationen finden Sie unter ES1
Hüllkurven-Parameter – Übersicht auf Seite 25.
•• Modulationsparameter: Im dunkelgrün und grau gestalteten Bereich links in der Mitte
finden Sie die Modulationsquellen, den Modulations-Router für die Zuordnung von
Modulationsquellen und Modulationszielen, sowie die Modulationshüllkurve und die
Amplituden-Hüllkurve, mit denen Sie den Sound des ES1 vielfältig umgestalten können.
Weitere Informationen finden Sie unter ES1 Modulationsparameter – Übersicht auf Seite 27.
ES1 Oszillators-Parameter
ES1-Oszillator-Parameter – Übersicht
ES1 besitzt einen primären (Haupt-)Oszillator und einen Suboszillator. Der Oszillator erzeugt
eine Wellenform, die von den anderen Synthesizer-Modulen einer weiteren Bearbeitung unterzogen
wird. Der Suboszillator erzeugt ein Signal, das eine oder zwei Oktaven unter dem des
Oszillators klingt.
Oszillator-Parameter
•• Drehregler „Wave“: Hier können Sie die Wellenform des primären Oszillators wählen, die für
die Grundklangfarbe maßgeblich ist. Weitere Informationen finden Sie unter ES1 Oszillator-
Wellenformen auf Seite 21.
•• Schieberegler „Mix“: Regelt das Pegel-Mischungsverhältnis zwischen Oszillator und Suboszillator.
Wenn der Suboszillator abgeschaltet ist (off), ist er gänzlich aus dem Signalweg entfernt.
•• Drehregler „Sub“: Erzeugt Rechteck- und Pulswellen, aber auch so genanntes Weißes Rauschen.
Der Suboszillator erlaubt es, ein Side-Chain-Signal durch die Klangerzeugung des ES1 zu
routen. Weitere Informationen finden Sie unter Verwenden des Suboszillators im ES1 auf
Seite 21.
•• Die Tasten 2', 4', 8', 16', 32': Durch Klicken können Sie die die Tonhöhe in Oktaven verändern.
32 Fuß ist die tiefste, 2 Fuß die höchste Einstellung. Die Einheit Fuß geht auf das Längenmaß
von Orgelpfeifen zurück. Je länger und breiter die Pfeife, desto tiefer der Ton.
ES1 Pulsbreitenmodulation
mm Drehen Sie den Wellenform-Drehregler in eine Position zwischen dem Rechteckund
Pulswellensymbol.
Die Pulsbreite kann auch automatisch über den Router moduliert werden (siehe Verwenden
des Routers im ES1 auf Seite 27). Eine Modulation der Pulsbreite mit dem LFO (Low Frequency
Oscillator) erlaubt beispielsweise periodisch mutierende, fette Bass-Sounds.
Kapitel 2 ES1 21
ES1 Oszillator-Wellenformen
Die Tabelle beschreibt die Grundklangfarben der Oszillator Wellenformen, wie sie
Synthesizer-Sounds beeinflussen.
Wellenform Klangcharakter Anmerkungen
Sägezahn Warm und ebenmäßig Geeignet für Streicher, Flächen,
Bässe und Bläser-Klänge
Dreieck Warm klingend, sanfter als
Sägezahn
Geeignet für Flöten und Flächen
Rechteck Hohl und „hölzern“ Geeignet für Bässe, Klarinetten und
Oboen
Pulswelle Nasal Sehr gut für Rohrblattinstrumente,
Synthesizer-Akzente und Bässe
Verwenden des Suboszillators im ES1
Der ES1 Suboszillator macht den Klang reicher. Die Tonhöhe entspricht der Frequenz des
Hauptoszillators. Sie können zwischen den folgenden Suboszillator Wellenform-
Einstellungen wählen:
•• Eine Rechteckwelle, die eine oder zwei Oktaven unter dem Signal des Hauptoszillators klingt.
•• Eine Pulswelle, die zwei Oktaven unter der Frequenz des Oszillators klingt.
•• Variationen dieser Wellenformen mit unterschiedlichen Mischungsverhältnissen und
Phasenbeziehungen ergeben unterschiedliche Klänge.
•• Weißes Rauschen (White Noise) eignet sich für Perkussionsklänge und die Synthesizer-Sound-
Klassiker Wind, Wellen und Regen.
•• OFF erlaubt es, den Suboszillator zu deaktivieren.
•• EXT erlaubt es, das Signal eines externen Channel-Strips (Kanalzugs) als so genannte Side-
Chain durch die Klangerzeugung des ES1 zu führen.
Kanal durch die ES1-Klangerzeugung leiten
1 Schalten Sie den Sub-Schalter auf EXT.
2 Oben rechts im ES1-Fenster können Sie im Einblendmenü „Side Chain“ auswählen, welcher
Channel-Strip in das Filter gespeist werden soll.
ES1 Global-Parameter
Die globalen Parameter beeinflussen den Gesamtsound oder Verhalten des ES1 und befinden
sich in dem Streifen, der die Oberfläche des ES1 umfasst. Der Glide-Regler befindet sich oberhalb
des linken Endes des Streifens mit den globalen Parametern.
Globale Parameter
•• Schieberegler „Glide“: Bewegen bestimmt die Zeit, die die Tonhöhe braucht, um von einer Note
zur nächsten angeschlagenen (getriggerten) Note zu gleiten. Das Glide-Trigger-Verhalten ist
abhängig von der Einstellung des Feld „Voices“ (siehe weiter unten).
•• Feld „Tune“: Durch Bewegen können Sie das Instrument in Cent einstellen. Ein Cent entspricht
einem Hundertstel eines Halbtons.
Kapitel 2 ES1 22
•• Feld „Analog“: Bewegen, um die Tonhöhe jeder Note nach dem Zufallsprinzip zu ändern –
und die Cutoff-Frequenz des Filters. Dadurch wird die Verstimmung und Fluktuation von
Oszillatoren und Filtern simuliert, die für ältere polyphone analoge Synthesizer so typisch sind,
da deren Schaltungen temperaturanfällig sind und altern.
Wenn „Analog“ auf „0 %“ gesetzt ist, sind die Einschwingphasen aller Stimmen synchronisiert.
Diese Präzision ist z. B. für strenge elektronische Percussion hervorragend geeignet.
Bei analogen Werten über 0 % können die Oszillatoren aller ausgelösten Stimmen frei schwingen.
Wählen Sie höhere Werte, wenn Sie einen warmen, analogen Sound erzielen möchten,
bei dem jede Note ein bisschen anders klingt.
•• Feld „Bender Range“: Bestimmt in Halbtonschritten, wie stark der ES1 auf Pitchbending reagiert.
•• Schieberegler „Neg Bender Range“ (erweiterte Parameter): Bestimmt die Empfindlichkeit des
Pitch Benders speziell, bei Abwärtsbewegungen in Halbtonschritten. Die Standardeinstellung
übernimmt den Wert für die Empfindlichkeit des „Pos PB“ (positive pitch bend), also des nach
oben gedrehten Pitch-Bend-Rads. Klicken Sie auf das Dreiecksymbol links unten auf der ES1-
Oberfläche, um auf die erweiterten Parameter zuzugreifen.
•• Feld „Out Level“: Stellt den Gesamtpegel des ES1 ein.
•• Feld „Voices“: Hier stellen Sie durch Bewegen die maximale Anzahl der gleichzeitig abspielbaren
Noten ein, bis zu 16 Stimmen.
Ist „Voices“ auf „Legato“ gesetzt, verhält sich der ES1 wie ein monophoner Synthesizer mit
aktiviertem Single Trigger und Fingered Portamento. Dies bedeutet, dass bei Legato-Spiel ein
Portamento erfolgt, wohingegen, wenn die Noten abgesetzt werden, kein Portamento erfolgt
(Glide-Effekt von einer Note zur nächsten). Wenn alle Tasten vor dem Anschlag der neuen Note
losgelassen werden, wird die Hüllkurve durch die neue Note getriggert und das Portamento
bleibt aus. Sie können diese Funktion nutzen, um Pitch-Bend-Effekte zu erzielen, ohne dabei
den Pitch Bender Ihrer Tastatur zu benutzen. Wenn Sie also die Legato-Einstellung einschalten,
achten Sie darauf, auch „Glide“ hoch zu regeln.
•• Feld „Chorus“: Durch Klicken wählen Sie einen klassischen Chorus-Effekttypen und einen
Ensemble-Effekt aus oder deaktivieren den Effektprozessor.
•• In der Einstellung „Off“ ist der integrierte Chorus deaktiviert.
•• „C1“ ist ein typischer Chorus-Effekt.
•• „C2“ ist eine Variation von „C1“, ist im Vergleich zu „C1“ jedoch stärker moduliert.
•• „Ens(emble)“ hat eine komplexere Modulationsschaltung und klingt dadurch dichter
und voller.
Kapitel 2 ES1 23
ES1 Filter-Parameter
ES1 Filter-Parameter – Übersicht
In diesem Abschnitt sind die Filter-Parameter des ES1 beschrieben.
Filter-Parameter
•• Schieberegler „Cutoff“: Bewegen bestimmt die Cutoff-Frequenz des ES1 Tiefpassfilters.
•• Schieberegler „Resonance“: Bewegen bewirkt eine Abschwächung oder Verstärkung der
Signalanteile, die in unmittelbarer Umgebung der Filtereckfrequenz liegen. Die Verstärkung
kann im Filter so stark eingestellt werden, dass das Filter selbst zu schwingen beginnt (siehe
Selbstoszillation des ES1-Filters auf Seite 24).
Tipp: Sie können simultan die Cutoff-Frequenz und die Resonanz des Filters regulieren, indem
Sie den Schriftzug Filter, der sich in einem schwarzen Kreis befindet, bei gedrückter Maustaste
vertikal (Cutoff-Frequenz) oder horizontal (Resonanz) bewegen.
•• Slope-Tasten: Das Lowpass-Filter des ES1 bietet vier unterschiedlich klingende
Flankensteilheiten (Slope): Klicken Sie auf eine der Tasten, um eine Flankensteilheit auszuwählen
(beschreibt den Dämpfungsgrad in Dezibel (dB) pro Oktave):
•• 24 dB classic: Verhält sich wie ein Moog-Filter. Das Anheben der Resonanz führt zu einer
Absenkung der Bässe.
•• 24 dB fat: Kompensiert die Reduktion der tieffrequenten Signalanteile bei hohen Werten für
die Resonanz. Dieses Verhalten erinnert an ein Oberheim-Filter.
•• 12 dB Hat einen sehr sanften Sound, der an den frühen Oberheim-SEM-Synthesizer erinnert.
•• 18 dB Entspricht der Filter-Flankensteilheit der Roland TB-303 Bassline.
•• Schieberegler „Drive“: Ändert das Klangverhalten von „Resonance“ und die Oszillator-Wellenform
wird verzerrt. „Drive“ ist ein Input-Level-Regler, mit dem Sie das Filter übersteuern können.
•• Schieberegler „Key“: Regelt den Effekt, der die Tonhöhe der Keyboard-Note (die Notennummer)
auf die Cutoff-Frequenz des Filters hat.
•• Wenn für „Key“ der Wert „0“ gewählt ist, wird die Cutoff-Frequenz von der Notennummer
nicht beeinflusst. Dies hat zur Folge, dass tiefe Töne vergleichsweise mit mehr Obertönen
erklingen als hohe Töne.
•• Steht „Key“ hingegen auf „1“, folgt die Cutoff-Frequenz der gespielten Notennummer. Das
Verhältnis von Cutoff-Frequenz und Tonhöhe bleibt stets gleich. Dies ahmt das Verhalten
akustischer Instrumente nach, bei denen die hohen Töne auch höhere Obertöne aufweisen
und heller klingen.
•• Schieberegler „ADSR via Vel“: Bestimmt das Ausmaß, mit dem die Anschlagdynamik die
Modulation der Cutoff-Frequenz des Filters durch den Hüllkurvengenerator beeinflusst.
Weitere Informationen finden Sie unter ES1 Hüllkurven-Parameter – Übersicht auf Seite 25.
Kapitel 2 ES1 24
•• Taste „Filter Boost“ (erweiterte Parameter): Erhöht den Output des Filters um ungefähr 10 Dezibel.
Das Input-Signal des Filters hat die entsprechende Verminderung um ungefähr 10 Dezibel, um
den Gesamtpegel zu halten. Dieser Parameter ist besonders nützlich, wenn hohe Resonanz-
Werte angewendet werden. Weitere Informationen finden Sie unter Selbstoszillation des
ES1-Filters. Klicken Sie auf das Dreiecksymbol links unten auf der ES1-Oberfläche, um auf die
erweiterten Parameter zuzugreifen.
Selbstoszillation des ES1-Filters
Wenn Sie die Resonanz eines der Filter erhöhen, entsteht eine filterinterne Rückkopplung, die
zu einer Selbstoszillation an der Grenzfrequenz des Filters (Cutoff Frequency) führt. Dies führt zu
einer Sinus-Oszillation (einer Sinuswelle), die effektiv hörbar ist.
Sie können das Filter des ES1 einen Sinuston ausspielen lassen. Dadurch können Sie einen
Sinuston mit der Tastatur spielen.
Das Filter einen Sinuston ausspielen lassen
1 Schalten Sie den Schalter Sub auf OFF.
2 Bewegen Sie den Mix-Schieberegler ganz nach unten (Sub).
3 Bewegen Sie den Resonanz-Schieberegler auf Maximum.
4 Klicken Sie auf das Dreiecksymbol links unten in der Oberfläche, um die erweiterten Parameter
zu öffnen und anschließend klicken Sie auf die Taste „Filter Boost“ (erweiterte Parameter).
„Filter Boost“ steigert den Output des Filters um ungefähr 10 Dezibel und verstärkt dadurch die
Lautstärke des Signals.
ES1 Amplifier-Parameter
Die Parameter im Amplifier-Bereich (der Dynamikstufe) des ES1 bestimmen den Pegelverlauf
jeder Note. Sie sind unabhängig von der Gesamt-Pegelregelung, die mit dem Parameter „Out
Level“ bestimmt wird, den Sie als ES1 „Master Volume“ ganz unten bei den globalen Parametern
finden. Weitere Informationen finden Sie unter ES1 Global-Parameter auf Seite 21.
Amplifier-Parameter
•• Schieberegler „Level via Vel“: Bestimmt, wie sehr der Pegel jeder Note von der Anschlagsdynamik
abhängt. Je größer der Abstand dieser beiden Pfeile ist, desto stärker ist der Pegel von der
Anschlagsdynamik abhängig. Der blaue Balken, der beide Pfeile verbindet, stellt diesen
Dynamikbereich der Lautstärke dar.
•• Bewegen des oberen Pfeils bestimmt die Lautstärke bei Fortissimo-Spiel (Velocity = 127).
•• Bewegen des unteren Pfeils bestimmt die Lautstärke bei Pianissimo-Spiel (Velocity = 1).
•• Mithilfe des Balkens können auch beide Pfeile gleichzeitig bewegt und dadurch die
Modulationsdynamik und -intensität gleichzeitig verändert werden.
Kapitel 2 ES1 25
•• Auswahltasten für Amplifier Envelope: Die Tasten „AGateR“, „ADSR“ und „GateR“ bestimmen,
welche Parameter des ADSR-Hüllkurvengenerators auf den Pegelverlauf der Dynamikstufe
Einfluss nehmen. Weitere Informationen finden Sie unter ES1 Hüllkurven-Parameter –
Übersicht auf Seite 25.
ES1 Hüllkurven-Parameter
ES1 Hüllkurven-Parameter – Übersicht
Der ES1 bietet eine ADSR-Hüllkurve mit den Parametern „Attack Time“, „Decay Time“, „Sustain
Level“ und „Release Time“, die Einfluss auf den zeitlichen Verlauf der Cutoff-Frequenz des Filters
oder den Pegel der Amplifier-Sektion nehmen kann.
Hüllkurven-Parameter
•• Schieberegler „A(ttack)“: Bestimmt die Zeit, die nach dem Anschlagen der Taste vergeht, bis der
maximale Pegel erreicht ist (Einschwingzeit).
•• D(ecay)-Schieberegler: Bestimmt die Zeit, die die Hüllkurve benötigt, um nach dem Triggern
und der Attack-Phase auf den Sustain-Pegel zu fallen.
•• S(ustain)-Schieberegler: Bestimmt den Pegel, der nach Ablauf von Attack- und Decay-Time aufrecht
erhalten wird, bis die Taste losgelassen wird.
•• R(elease)-Schieberegler: Bestimmt, wie lange die Hüllkurve nach dem Loslassen der Taste benötigt,
um vom Sustain-Pegel wieder auf „0“ zu fallen.
Verwenden der Hüllkurve zum Steuern der Cutoff-Frequenz im ES1
Der Hüllkurvengenerator moduliert die Filter-Cutoff-Frequenz, die sich damit im zeitlichen
Verlauf der Note verändern lässt. Die Modulationsintensität und die Anschlagsdynamik wird
durch die Pfeile auf dem Schieberegler „ADSR via Vel“ im Filterbereich eingestellt.
ADSR via Vel slider
Der Modulationsbereich ist durch den Abstand der beiden Pfeile gekennzeichnet.
•• Der untere Pfeil bestimmt die minimale Modulation.
•• Der obere Pfeil bestimmt die maximale Modulation.
Kapitel 2 ES1 26
•• Der blaue Balken, der beide Pfeile verbindet, stellt den Dynamikbereich der Modulation dar.
Sie können durch bewegen des blauen Balkens die Modulationsdynamik und -intensität
gleichzeitig verändern.
Tipp: Um sich mit diesen Parametern vertraut zu machen, stellen Sie Cutoff-Parameter auf einen
niedrigen Wert, Resonance auf einen hohen Wert und regeln beide Pfeile „ADSR via Vel“ aufwärts.
Schlagen Sie dabei immer wieder eine Taste auf der Tastatur an, um die Funktion der Parameter
zu erlernen.
Verwenden der Hüllkurve zum Steuern des Verstärkers im ES1
Die Tasten „AGateR“, „ADSR“ und „GateR“ (im Amplifier-Bereich) bestimmen, welche Parameter der
ADSR-Hüllkurven auf den Pegelverlauf der Dynamikstufe Einfluss nehmen. Alle ADSR-Parameter
behalten für das Filter ihre Gültigkeit.
Die Buchstaben A, D, S, und R stehen für die Attack-, Decay-, Sustain- und Release-Phasen der
Hüllkurve (siehe ES1 Hüllkurven-Parameter – Übersicht auf Seite 25).
Gate ist der Name eines Steuersignals in analogen Synthesizern, das einem Hüllkurvengenerator
anzeigt, dass eine Taste gedrückt ist. Solange eine Taste gedrückt ist, hält „Gate“ Vollpegel, ist
keine Taste gedrückt, ist „Gate“ gleich Null. Wenn „Gate“ als Modulationsquelle in der Amplifier-
Sektion gewählt wird, erklingt der Ton mit der Hüllkurve einer Orgel, also mit kurzem Attack,
ohne Decay oder Release Time und vollem Sustain.
Amplifier Envelope
Selector buttons
Im ES1 wirken sich die Schalter der Amplitudenhüllkurve auf die Noten wie folgt aus:
•• AGateR: Die Attack- und Release-Regler der ADSR-Hüllkurve regeln wie gewohnt die Attackund
Release-Phasen der Note. Dazwischen liefert das Gate-Signal maximalen Sustain-Pegel,
sodass es keine Decay-Phase gibt. Sobald Sie die Taste loslassen, beginnt die Release-Phase.
Die Decay- und Sustain-Regler der Hüllkurve sind in Bezug auf die Amplifier-Sektion außer
Kraft gesetzt.
•• ADSR: Die Standard-Betriebsart der meisten Synthesizer, bei der der Verlauf des Pegels jeder
Note komplett von der ADSR-Hüllkurve bestimmt wird.
•• GateR: Das Gate-Signal sorgt über den gesamten Verlauf einer Note, solange die Taste gedrückt
gehalten wird, für einen stabilen Pegel. Sobald Sie die Taste loslassen, beginnt die Release-
Phase. Die Parameter „Attack“, „Decay“ und „Sustain“ haben keinen Einfluss auf den Pegelverlauf
der Note.
Kapitel 2 ES1 27
ES1 Modulation
ES1 Modulationsparameter – Übersicht
ES1 bietet einige simple wie flexible Modulations-Routing-Optionen. Modulation bringt
Bewegung in den Klang, der dadurch interessanter, lebendiger oder auch realistischer wird. Ein
Beispiel für eine Modulation ist das Vibrato von Orchester-Streichern.
LFO parameters Router Modulation Envelope
Modulationsparameter
•• LFO-Parameter: Werden zur automatischen, periodischen Beeinflussung anderer Parameter des
ES1 genutzt. Weitere Informationen finden Sie unter Verwenden des ES1 LFO auf Seite 28.
•• Router: Ermöglicht die Auswahl des zu modulierenden ES1-Parameters. Weitere Informationen
finden Sie unter Verwenden des Routers im ES1 auf Seite 27.
•• Modulationshüllkurve: Eine Modulationsquelle, die dazu da ist, andere ES1-Parameter zu
steuern oder zur Steuerung des LFO-Pegel dient. Weitere Informationen finden Sie unter
Verwenden von Mod ES1-Envelope auf Seite 29.
Verwenden des Routers im ES1
Mit dem Router wählen Sie, welche ES1-Parameter (Ziele) vom LFO periodisch moduliert werden
und welche durch die Modulationshüllkurve. Mithilfe der Tasten in der linken Spalte bestimmen
Sie das LFO-Modulationsziel. Mithilfe der Tasten in der rechten Spalte bestimmen Sie
die Modulationshüllkurve.
Parameter target
buttons
Router-Parameter
•• Tasten „Pitch“: Klicken Sie auf diese Tasten, um die Tonhöhe, genauer gesagt die Frequenz der
Oszillatoren zu modulieren.
•• Tasten „Pulse Width“: Durch Klicken modulieren Sie die Impulsbreite der Pulswelle.
•• Tasten „Mix“: Durch Klicken modulieren Sie das Mischungsverhältnis (Mix) zwischen primärem
Oszillator und Suboszillator.
•• Tasten „Cutoff“: Klicken Sie auf diese Tasten, um die Cutoff-Frequenz des Filters zu modulieren.
•• Tasten „Resonance“: Klicken Sie auf diese Tasten, um die Resonanz des Filters zu modulieren.
•• Tasten „Volume“: Klicken Sie auf diese Tasten, um die Hauptlautstärke zu modulieren.
Kapitel 2 ES1 28
•• Taste „Filter FM“ (nur Modulationshüllkurve): Durch Klicken moduliert die Dreieckwelle
des Oszillators die Cutoff-Frequenz des Filters. Diese Modulation resultiert in einer Art
Verzerrungseffekt oder führt zu metallischen, „FM-Synthese“-ähnlichen Sounds. Letzteres
kommt voll zur Geltung, wenn Sie mit der Resonanz das Filter zur Selbstoszillation bringen
(siehe Selbstoszillation des ES1-Filters auf Seite 24).
•• „LFO AMP“ (nur Modulationshüllkurve): Durch Klicken können Sie den Hub der LFO-Modulation
mit der Modulationshüllkurve im Verlauf regeln.
Verwenden des ES1 LFO
Der LFO („Low Frequency Oscillator“, niederfrequenter Oszillator) erzeugt eine regelbare, zyklische
Wellenform, die verwendet werden kann, um andere ES1-Parameter zu modulieren.
LFO-Parameter
•• Drehregler „Wave“: Stellen Sie durch Drehen die LFO-Wellenform ein. Jede Wellenform hat ihre
eigene Form, die zu unterschiedlichen Modulationen führt.
•• Sie können zwischen folgenden Wellenformen auswählen: Dreieck, steigender und fallender
Sägezahn, Rechteck, Sample & Hold (Zufallswelle) sowie eine tiefpassgefilterte, sich fließend
ändernde Zufallswellenform.
•• EXT erlaubt es Ihnen ein Side-Chain-Signal als Modulationsquelle einzuschalten. Oben rechts
im ES1-Fensters können Sie im Einblendmenü „Side Chain“ auswählen, welcher Channel-
Strip in das Filter gespeist werden soll.
•• Schieberegler und Feld „Rate“: Bewegen bestimmt die Geschwindigkeit der Schwingung des LFO.
•• Bei Werten rechts von „0“ schwingt der LFO dagegen frei.
•• Bei Werten links von „0“ wird diese zum Tempo des Host-Programms synchronisiert. Die
Perioden dauern in Stufen zwischen 1/96-Takt und 32 Takten gewählt werden.
•• Beim Wert Null spielt der LFO einen konstanten vollen Pegelwert aus, der es beispielsweise
erlaubt, die LFO-Geschwindigkeit mit dem Modulationsrad des Masterkeyboards zu regeln.
Dies ist z. B. nützlich, wenn Sie die Impulsbreite der Pulswelle beim Keyboardspielen mit dem
Modulationsrad in Echtzeit steuern wollen. Die Impulsbreite (Pulse Width) müsste dazu als
LFO-Modulationsziel (Target) in der linken Reihe des Routers ausgewählt sein, während der
Hub der Modulation mit „Int via Whl“ geregelt wird.
•• Schieberegler „Int via Whl“ Der obere Pfeil bestimmt die Intensität der LFO-Modulation, wenn
das Modulationsrad auf maximale Modulation eingestellt ist. Der untere Pfeil bestimmt
die Intensität der LFO-Modulation, wenn das Modulationsrad auf „0“ gestellt ist. Der als
einen grünen Balken angezeigte Abstand zwischen beiden Pfeilen zeigt den Einfluss des
Modulationsrads auf die LFO-Modulationsintensität an.
Sie können mithilfe des Balkens auch beide Pfeile gleichzeitig bewegen und dadurch
Modulationsdynamik und -intensität gleichzeitig verändern. Dabei bleibt der Abstand der
beiden Pfeile zueinander unverändert.
Kapitel 2 ES1 29
Verwenden von Mod ES1-Envelope
Die Modulationshüllkurve kann direkt den im Router ausgewählten Parameter modulieren. Sie
bestimmt, wie lange es dauert, dass die Modulation sich einblendet oder ausblendet. An seiner
Mittelposition (klicken Sie auf „full“) ist die Modulationsintensität statisch, also ohne Fade-In oder
Fade-Out. Die Einstellung „full“ liefert eine konstante Modulationsintensität.
Die Modulationshüllkurve (Modulation Envelope) erlaubt entweder perkussive Verläufe bei
niedrigen Einstellungen ihres Reglers oder sich sanft einblendende Verläufe bei hohen Werten
(Attack-Charakteristik).
Modulationshüllkurven-Parameter
•• Schieberegler und Feld „Form“: Bewegen regelt die Einblendzeit (Fade-In) oder
Ausblendzeit (Fade-Out) für die Modulation. Wenn der Regler voll aufgedreht ist, ist die
Modulationshüllkurve ausgeschaltet.
•• Schieberegler „Int via Vel“: Der obere Pfeil regelt die Obergrenze der Modulationshüllkurve bei
der größten Anschlagsdynamik (Velocity = 127). Der untere Pfeil regelt die Untergrenze bei der
kleinsten Anschlagsdynamik (Velocity = 1). Der grüne Balken zwischen den Pfeilen zeigt den
Einfluss der Anschlagsdynamik auf die Modulation durch die Modulationshüllkurve an.
Sie können mithilfe des Balkens auch beide Pfeile gleichzeitig bewegen und dadurch
Modulationsdynamik und -intensität gleichzeitig verändern. Dabei bleibt der Abstand der
beiden Pfeile zueinander unverändert.
Parameter mit Anschlagsdynamik modulieren
1 Wählen Sie ein Modulationsziel, z. B. Impulsbreite, in der rechten Reihe des Routers aus.
2 Stellen Sie den Schieberegler für die Form auf „Full“ und stellen Sie den Parameter „Int via Vel“
nach Belieben ein.
Dies resultiert in einer von der Anschlagsdynamik abhängigen Modulation der Impulsbreite der
Pulswelle (Pulse Width Modulation).
Sie können direkt den Pegel des LFO steuern, wenn Sie in der rechten Reihe des Modulations-
Routers auf „LFO Amp(litude)“ klicken.
LFO-Modulation ein- oder ausblenden
mm Blenden Sie die LFO-Modulation wie folgt ein: Bewegen Sie den Schieberegler „Form“ nach rechts in
Richtung Attack. Je höher der Wert ist, desto länger dauert die Einblendung.
mm Blenden Sie die LFO-Modulation wie folgt aus: Bewegen Sie den Schieberegler „Form“ nach rechts
in Richtung Attack. Je niedriger der Wert und näher an Decay, desto kürzer ist die Fade-Out-Zeit.
Hüllkurvengesteuerte LFO-Modulationen werden sehr häufig für verzögerte Vibrati eingesetzt.
Die Technik des verzögerten Vibratos wird von vielen Instrumentalistinnen und Instrumentalisten
sowie Sängerinnen und Sängern insbesondere bei langen Noten eingesetzt.
Kapitel 2 ES1 30
Verzögertes Vibrato erzeugen
1 Bewegen Sie den Schieberegler „Form“ nach rechts in Richtung Attack.
2 Wählen Sie „Pitch“ als LFO Target (die Oszillatorenfrequenz als Modulationsziel) in der linken
Reihe des Modulations-Routers.
3 Verwenden Sie den Wellenform-Drehregler und wählen Sie die Dreieckwelle als Wellenform für
LFO 1 aus.
4 Bewegen Sie das Feld „Rate“ auf eine LFO-Rate von ungefähr 5 Hz.
5 Bewegen Sie den oberen Pfeil von „Int via Wheel“ auf einen eher niedrigen Wert und den unteren
Pfeil auf Null.
ES1 MIDI-Controller
ES1 reagiert auf diese MIDI-Control-Change-Befehle (MIDI Continuous Controller Numbers),
kurz „CC“.
Controller-Nummer Parameter
12 Tasten für die Oszillator-Tonhöhe
13 Oszillator-Wellenform
14 Mix-Schieberegler
15 Wellenform des Suboszillators
16 Drive-Schieberegler
17 Cutoff-Schieberegler
18 Resonance-Schieberegler
19 Slope-Tasten
20 ADSR via Vel: unterer Pfeil
21 ADSR via Vel: oberer Pfeil
22 Attack-Schieberegler
23 Decay-Schieberegler
24 Sustain-Schieberegler
25 Release-Schieberegler
26 Key-Schieberegler
27 Auswahltasten für Amplifier Envelope
28 Level via Velocity: unterer Regler
29 Level via Velocity: oberer Regler
30 Chorus-Parameter
31 Modulationsziel für Mod Envelope
102 Schieberegler für die Form von Mod Envelope
103 Modulationshüllkurve: ADSR via Vel: unterer Regler
104 Modulationshüllkurve: Int via Vel: oberer Regler
105 LFO-Rate
106 LFO-Wellenform
107 LFO-Modulationsziel
Kapitel 2 ES1 31
Controller-Nummer Parameter
108 LFO: Int via Whl: unterer Regler
109 LFO: Int via Whl: oberer Regler
110 Glide-Schieberegler
111 Tune-Parameter
112 Analog-Parameter
113 Bender Range-Parameter
114 Out Level-Parameter
115 Voices-Parameter
3
32
ES2 – Übersicht
Der ES2 kombiniert subtraktive Synthese und Elemente der FM- und Wavetable-Synthese, um Sie
beim Erzeugen extrem vielseitiger Sounds zu unterstützen. Dadurch empfiehlt er sich als ideales
Gerät für mächtige Pads, lebendige Texturen, kraftvolle Bässe oder synthetische Brass-Sounds.
Wenn Sie mit Synthesizern noch nicht vertraut sind, können Sie sich unter Synthesizer-
Grundlagen – Übersicht auf Seite 440 informieren. Dort erhalten Sie eine Einführung in die
Grundlage und die Terminologie von verschiedenen Synthesesystemen.
Die drei Oszillatoren des ES2 arbeiten mit klassischen analogen Synthesizer-Wellenformen (inklusive
Noise) und 100 zusätzlichen Einzelwellenformen, den so genannten Digiwaves. Diese bilden
den Grundstein für Sounds, welche die gesamte Bandbreite von fetten Analog- bis hin zu harten
Digital-Sounds abdecken und auch hybride Mischungen dieser beiden Klangwelten ermöglichen.
Zudem können Sie die Oszillatoren gegeneinander modulieren und auf diese Weise leicht
FM-typische Sounds erzeugen. Darüber hinaus haben Sie die Möglichkeit, die Oszillatoren zu
synchronisieren und über eine Ring-Modulation zu verknüpfen oder eine Sinuswelle direkt auf
die Ausgangsstufe zu mischen, um den Sound fetter zu machen.
Der ES2 integriert einen flexiblen Modulations-Router, der bis zu zehn gleichzeitig nutzbare (und
frei wählbare) Modulations-Routings bereitstellt. Zu den weiteren Modulationsoptionen zählt
das einzigartige Planar Pad, mit dem Sie zwei Parameter gemeinsam über ein zweidimensionales
Gitter steuern können. Das Planar Pad kann selbst über die ausgeklügelte Vector-Hüllkurve
gesteuert werden. Hierbei handelt es sich um eine loopfähige Multipoint-Hüllkurve, die sich speziell
zur Erzeugung komplexer, eigendynamischer Sounds eignet.
Schließlich wurden auch Verzerrer-, Chorus, Phaser- und Flanger-Effekte im ES2 integriert.
Wenn Sie sofort mit dem Experimentieren beginnen möchten, können Sie verschiedene
Einstellungen ausprobieren. Außerdem stehen zwei Tutorials mit Tipps und Informationen zur
Verfügung und laden Sie ein, den ES2 im Detail kennenzulernen. Näheres hierzu finden Sie unter
ES2-Sound-Design – Übersicht auf Seite 84 und ES2-Sound-Design mit Templates auf Seite 94.
Hinweis: Im gesamten Handbuch finden Sie Aufgaben, mit denen die Verwendung von
Parametern als Modulationsziele und -quellen abgedeckt wird. Gemeint ist damit eine der größten
Stärken des ES2 – nämlich seine umfangreichen Modulationsmöglichkeiten. Befolgen Sie die
Schritte in diesen Aufgaben, um ausdruckstarke, eigendynamische Sounds zu erzeugen. Weitere
Informationen finden Sie unter ES2-Modulation – Übersicht auf Seite 54.
ES2
Kapitel 3 ES2 33
Bedienoberfläche des ES2
Die grafische Bedienoberfläche des ES2 besteht aus den folgenden Hauptbereichen.
Modulation controls and
parameters
Macro Sound
parameters
Random
parameters
Click here to
display the Vector
Envelope.
Amplifier
parameters
Planar Pad
Filter section
Effect section
Oscillator section Global parameters
Global
parameters
Modulation router
•• Oszillator-Bereich: Die Oszillator-Parameter befinden sich im oberen linken Bereich der ES2-
Oberfläche. Das Dreieck dient dazu, das Mischungsverhältnis zwischen den drei Oszillatoren
zu steuern. Weitere Informationen finden Sie unter ES2-Oszillator-Parameter – Übersciht auf
Seite 34.
•• Globale Parameter: Links neben den Oszillatoren und oberhalb der Amplifier- und Filter-
Parameter finden Sie verschiedene globale Parameter (z. B. „Tune“), die miteinander verknüpft
sind und direkt auf die Signalausgabe des ES2 Einfluss nehmen. Weitere Informationen finden
Sie unter Globale Parameter – Übersicht auf Seite 42.
•• Filter-Bereich: Im kreisförmigen Bereich befindet sich der Filter-Bereich, inklusive der Parameter
für Drive und Filter FM. Weitere Informationen finden Sie unter Filter im ES2 – Übersicht auf
Seite 45.
•• Amplifier-Parameter: Der Bereich rechts oben enthält die Ausgangsparameter, über die Sie die
Gesamtlautstärke des ES2 einstellen und ein Sinus-Signal in die Ausgangsstufe einspeisen.
Weitere Informationen finden Sie unter Verwenden der Dynamikstufe des ES2 auf Seite 52.
•• Modulations-Router oder Vector-Hüllkurve: Der dunkel unterlegte Streifen, der sich zentral über
die Bedienoberfläche des ES2 erstreckt, wird für den Modulations-Router und die Vector-
Hüllkurve benutzt. Verwenden Sie die Tasten auf der rechten Seite dieses Abschnitts, um zwischen
diesen beiden Betriebsarten umzuschalten.
•• Der Router verknüpft Modulationsquellen wie Hüllkurven und andere Parameter, die im
unteren Bereich der Bedienoberfläche eingeblendet werden, mit Modulationszielen wie den
Oszillatoren und Filtern. Weitere Informationen finden Sie unter Verwenden des Modulation-
Routers auf Seite 55.
•• Die Vector-Hüllkurve ist ein flexibler und leistungsfähiger Hüllkurvengenerator, der Ihnen
umfassende Steuerungsmöglichkeiten über Ihren Sound verleiht. Weitere Informationen
finden Sie unter Verwenden der Vector-Hüllkurve auf Seite 63.
•• Modulationsregler und -parameter: Der Bereich direkt unterhalb des Routers dient dazu, die
Modulationsparameter (wie LFO- und Hüllkurvenregler) zuzuweisen und einzustellen. Weitere
Informationen finden Sie unter ES2-Modulation – Übersicht auf Seite 54.
Kapitel 3 ES2 34
•• Planar Pad: Der quadratische Bereich oben rechts ist ein zweidimensionaler Controller, der
unter der Bezeichnung Planar Pad bekannt ist. Das Planar Pad vereinfacht die gleichzeitige
Bearbeitung von zwei zuweisbaren Parametern und kann mit der Maus, einem anderen
Controller oder der Vector-Hüllkurve kontrolliert werden. Weitere Informationen finden Sie
unter Verwenden von Planar Pad auf Seite 70.
•• Effekte-Bereich: Die internen Optionen zur Effektbearbeitung finden Sie rechts neben den
Ausgangsparametern. Weitere Informationen finden Sie unter Integrierter Effektprozessor des
ES2 auf Seite 78.
•• Makro- und MIDI-Controller-Parameter: Der graue schmale Streifen am unteren Rand dient
wahlweise zur Darstellung der Makro-Parameter oder MIDI-Controller-Zuweisungen. Über die
voreingestellten Makro-Klangparameter können Sie den Sound des ES2 (oder ES2-basierter
GarageBand-Instrumente) direkt manipulieren. Sie können die MIDI-Controller-Nummern
dieser Parameter auch neu zuweisen. Weitere Informationen finden Sie unter ES2-Makro- und
Reglerzuweisungen – Überscht auf Seite 79.
ES2-Soundquellen
ES2-Oszillator-Parameter – Übersciht
Die ES2-Oszillatoren dienen zur Erzeugung einer oder mehrerer Wellenformen. Dieses Signal
wird anschließend in andere Abschnitte der Synthesizer-Engine gespeist und dort geformt, mit
Effekten bearbeitet und/oder manipuliert.
•• Die Ausstattung der Oszillatoren 2 und 3 ist fast identisch, Oszillator 1 weicht ab.
•• Oszillator 1 kann von Oszillator 2 frequenzmoduliert werden und so FM-Synthese-Sounds
erzeugen.
•• Die Oszillatoren 2 und 3 können zu Oszillator 1 synchronisiert oder ringmoduliert werden.
Zudem verfügen sie über Rechteckwellenformen, die wahlweise eine feste, vom Anwender
definierte Impulsbreite haben oder über Pulsbreitenmodulation (PWM) variiert werden.
•• Mithilfe des Modulations-Routers können Sie die Impulsbreite der Rechteckwellenformen in
Oszillator 1 und die synchronisierten und ringmodulierten Rechteckwellen in den Oszillatoren
2 und 3 gemeinsam verändern.
(Fine) Frequency
value field
Wave knob
Oscillator Mix (Triangle)
Oscillator on/off button
(Coarse) Frequency knob
Kapitel 3 ES2 35
Oszillator-Parameter
•• Tasten für Oszillator ein/aus: Mit den Nummern rechts neben den Oszillatoren werden die
jeweiligen Oszillatoren unabhängig voneinander aktiviert oder deaktiviert. Wenn die Ziffer auf
der Taste grün dargestellt wird, ist der Oszillator aktiviert. Wird die Ziffer auf der Taste grau dargestellt,
ist der Oszillator nicht aktiviert. Durch die Deaktivierung eines Oszillators können Sie
Rechenleistung Ihres Computers einsparen.
•• Wellenform-Drehregler: Drehen Sie den Regler, um die Wellenform auszuwählen, die
ein Oszillator erzeugt. Die Wellenform ist für die Grundklangfarbe maßgeblich. Weitere
Informationen finden Sie unter Grundlegende ES2-Oszillator-Wellenformen auf Seite 35.
•• Frequenz-Drehregler (Grobeinstellung): Schalten Sie durch Drehen zwischen den Frequenzen
um ±3 Oktaven in Halbtonschritten gerastert um. Eine Oktave besteht aus 12 Halbtonschritten.
Dementsprechend markieren die Positionen ±12, 24 und 36 die verschiedenen Oktaven.
•• Frequenz-Feld (Feineinstellung): Stimmen Sie die Oszillator-Frequenz fein ab (Tonhöhe). Die
Zahlen auf der linken Seite zeigen die Einstellung für den Halbton s, während die Zahlen auf
der rechten Seite die Einstellung für den Cent c anzeigen (1 Cent = 1/100 Halbton). So ist ein
Oszillator mit dem Wert von „12 s 30 c“ eine Oktave (12 Halbtöne) und 30 Cent höher gestimmt
als ein Oszillator mit „0 s 0 c“. Durch vertikales Bewegen des Zeigers können Sie jeden
Wert anpassen.
•• Oszillatoren-Mischstufe (Dreieck): Bewegen Sie den Zeiger im Dreieck, um zwischen den drei
Oszillatoren zu überblenden (also das Lautstärkeverhältnis zwischen ihnen einzustellen).
Weitere Informationen finden Sie unter Ausgleichen von ES2-Oszillatorpegeln auf Seite 41.
Grundlegende ES2-Oszillator-Wellenformen
Alle ES2-Oszillatoren geben mehrere Standard-Wellenformen wie Sinuswelle, Pulswelle,
Rechteckwelle, Sägezahn- und Dreieckwelle sowie alternativ eine von 100 Digiwaves aus (vgl.
Verwenden von ES2-Digiwaves auf Seite 38). Die folgende Tabelle deckt die grundlegenden
Wellenformen ab:
Wellenform Klangcharakter Anmerkungen
Pulswelle/Rechteck Nasal Gut für Holzblasinstrumente,
Synth-Einwürfe und Bässe
geeignet
Rechteck Hohl und hölzern Geeignet für Bässe, Klarinetten
und Oboen. Die Pulsbreite der
Rechteck-Wellenformen (Oszillator
2 und 3) kann stufenlos zwischen
50 % und den schmalsten
Impulsen eingestellt werden.
Sägezahn Warm und ebenmäßig Geeignet für Streicher, Flächen,
Bässe und Bläser-Klänge
Dreieck Warm klingend, sanfter als
Sägezahn
Geeignet für Flöten und
Flächenklänge
Sinuswelle Ein reiner Klang Die Sinuswelle von Oszillator 1
kann durch Oszillator 2 in der
Frequenz moduliert werden.
Diese Art der Modulation ist die
Grundlage der FM-Synthese (vgl.
Frequenzmodulation im ES2 auf
Seite 37).
Kapitel 3 ES2 36
Zusätzlich sind wahlweise verfügbar:
•• eine zu Oszillator 1 synchronisierte Rechteckwelle
•• eine zu Oszillator 1 synchronisierte Sägezahnwelle
•• für Oszillator 2 der Ausgang eines Ringmodulators, der vom Ausgang von Oszillator 1 und
einer Rechteckwelle aus Oszillator 2 gespeist wird
•• für Oszillator 3 farbiges Rauschen. Weitere Informationen finden Sie unter Verwenden des ES2-
Noise-Generators auf Seite 39.
Die Synchronisation von Oszillatoren und die Ringmodulation ermöglicht sehr komplexe und
flexible Klangspektren. Das Prinzip der Synchronisation von Oszillatoren ist unter Synchronisieren
von ES2-Oszillatoren auf Seite 42 beschrieben. Das Prinzip der Ringmodulation wird unter
Ringmodulation im ES2 auf Seite 38 beschrieben.
Pulsbreitenmodulation im ES2
Sie können die Klangfarbe von Rechteckwellen verändern, indem Sie die Breite der
Wellenformimpulse auf einen beliebigen Wert einstellen. Diese Art der Modulation wird als
Pulsbreitenmodulation bezeichnet.
Die ES2-Pulsbreitenmodulation bietet Ihnen umfassende Funktionen. Wenn beispielsweise
in allen Oszillatoren Rechteckwellen ausgewählt wurden, können Sie die Pulsbreite von
Oszillator 1 und die synchronisierten Pulswellen von Oszillator 2 (oder die Rechteckwelle des
Ringmodulators von Oszillator 2) und Oszillator 3 gleichzeitig modulieren.
Ausgangs-Pulsbreite in den Oszillatoren 2 und 3 einstellen
mm Bewegen Sie die Wellenform-Drehsteuerung, die den Wellenform-Drehregler umgibt (vgl. den
hervorgehobenen Bereich im Bild oben).
Nur in den Oszillatoren 2 und 3 ist es möglich, eine „Ausgangs-Pulsbreite“ vor der eigentlichen
Pulsbreitenmodulation einzustellen.
Pulsbreitenmodulation (von Oszillator 1) im Router einstellen
1 Wählen Sie eine Rechteckwelle für Oszillator 1.
2 Wählen Sie im Router „Osc1Wave“ als Ziel und „LFO1“ als Quelle.
3 Passen Sie den Schieberegler für den Wert der Modulation an (probieren Sie einen Wert
von 0,12 aus).
4 Wählen Sie eine Sinuswelle für LFO 1.
5 Stellen Sie die Rate für LFO 1 ein (ungefähr 0.160 Hz für einen langsamen Sweep).
Kapitel 3 ES2 37
Frequenzmodulation im ES2
Das Prinzip der Frequenzmodulation (FM) wurde Ende der 1960er, Anfang der 1970er Jahre
von John Chowning entwickelt. Sie wurde durch Synthesizer wie die Yamaha DX-Reihe in
den 1980er Jahren populär. Obwohl der ES2 im Bereich der reinen FM-Synthese nicht mit
den DX-Synthesizern mithalten kann, ist er durchaus in der Lage, typische Sounds dieser
Instrumente nachzubilden.
Bei der reinen FM-Synthese wird die Frequenz eines Signalgenerators oder Oszillators von einem
anderen Signalgenerator verändert (bzw. moduliert). Positive Werte des zweiten Signalgenerators
heben die Frequenz des ersten Generators an. Negative Werte senken die Frequenz ab. In
einem Synthesizer findet diese Art der Modulation im hörbaren Bereich statt. Abhängig von
der Konzeption des Instruments können Sie wahlweise das Signal des ersten Oszillators (der
vom zweiten Oszillator moduliert wird) alleine oder beide Oszillatoren gemeinsam abhören. Die
Interaktion zwischen beiden Oszillatoren verändert das Wellenformsignal des ersten Oszillators
und erzeugt neue Obertöne. Dieses Obertonspektrum dient dann als Quellsignal für die weitere
Klangverarbeitung durch Filter, Hüllkurven usw. Weitere Informationen finden Sie unter
Frequenzmodulation (FM-Synthese) auf Seite 459.
Im ES 2 kann die Frequenz von Oszillator 1 (bei ausgewählter Sinuswelle in der 11-Uhr-Position
des Wellenform-Drehreglers) vom Ausgangssignal von Oszillator 2 moduliert werden.
•• Wenn Oszillator 2 ein positives Signal ausgibt, wird die Frequenz von Oszillator 1 angehoben.
•• Wenn Oszillator 2 ein negatives Signal ausgibt, wird die Frequenz von Oszillator 1 abgesenkt.
Effektiv führt das Beschleunigen oder Verlangsamen der Frequenz in Oszillator 1 in jedem
Wellenformdurchgang zu einer Verzerrung der grundlegenden Kurvenform. Zudem hat die
Verzerrung der Wellenform den Nebeneffekt, dass einige neue hörbare Obertöne entstehen.
Wichtig: Die Wirkung aller Frequenzmodulationen, die Sie ausführen, hängt sowohl vom
Frequenzverhältnis als auch von der Modulationsintensität der beiden Oszillatoren ab.
Bei der „reinen“ FM-Synthese erzeugen sowohl der erste als auch der zweite Signalgenerator
eine Sinuswelle (es werden sowohl Oszillator 1 als auch Oszillator 2 im ES2 darauf „reduziert“,
eine Sinuswelle zu generieren). Der ES2 stellt aber zusätzlich 100 Digiwaves sowie zahllose
Kombinationen aus Modulationsintensitäten und Frequenzverhältnissen für jeden Oszillator zur
Auswahl. Dies stellt Ihnen eine große Auswahl an harmonischen Spektren und Tonfarben bereit,
mit denen Sie experimentieren können.
Tipp: Die Art der Modulation, die dabei entsteht, kann signifikant variieren, wenn Sie speziell für
den modulierenden Oszillator 2 andere Wellenformen auswählen.
Frequenzverhältnis einstellen und Modulationsintensität anpassen
1 Stellen Sie die Frequenz-Parameterwerte (Grob- und Feinstimmung) für einen oder beide
Oszillatoren ein.
2 Klicken Sie auf den (oder bewegen Sie den Zeiger im) Regelbereich zwischen den Symbolen für
„Sine“ und „FM“ auf dem Wellenform-Drehregler von Oszillator 1.
So wird der Betrag oder die Intensität der Frequenzmodulation festgelegt.
Kapitel 3 ES2 38
Ringmodulation im ES2
Die Ringmodulation eignet sich insbesondere für metallisch klingende, unharmonische
und glockige Klänge. Die resultierenden Spektren sind nur bei kleinen, ganzzahligen
Frequenzverhältnissen harmonisch. Der Ringmodulator ist ein Gerät aus den frühen Tagen der
Synthesizer.
Ein Ringmodulator hat zwei Inputs. Am Output sind die Summen- und Differenzfrequenzen
der Input-Signale wahrnehmbar. Wenn ein Sinuston von 200 Hz mit einem Sinus von 500 Hz
ringmoduliert wird, resultieren im Output neben diesen beiden Frequenzen als so genannte
Seitenbänder auch die Frequenzen 700 Hz (Summe) und 300 Hz (Differenz). Negative Vorzeichen
bei den Frequenzen der Seitenbänder entsprechen einfach einer Umkehr ihrer Phase.
Tipp: Verwenden Sie Sägezahn- und (pulsbreitenmodulierte) Rechteck-Eingangssignale aus
den Oszillatoren 1 bzw. 2, um ein deutlich komplexeres Ausgangssignal zu erzeugen. Der
Einsatz dieser obertonreichen Wellenformen sorgt dafür, dass einige zusätzliche Seitenbänder
hörbar werden.
Ringmodulierten Sound erzeugen
1 Stellen Sie den Wellenform-Drehregler für Oszillator 2 auf die Ring-Einstellung ein.
2 Experimentieren Sie mit unterschiedlichen Werten für die Frequenz (Grob- und Feinstimmung) in
einem oder beiden Oszillatoren.
Der Ringmodulator von Oszillator 2 wird gespeist vom Output-Signal des Oszillators 1 und einer
Rechteckwelle, die durch Oszillator 2 erzeugt wird. Die Pulsbreite dieser Rechteckwelle kann
moduliert werden (vgl. Pulsbreitenmodulation im ES2 auf Seite 36).
Verwenden von ES2-Digiwaves
Neben den herkömmlichen Synthesizer-Wellenformen können alle Oszillatoren des ES2 100
zusätzliche Wellenformen, die so genannten Digiwaves, erzeugen. Hierbei handelt es sich um
sehr kurze Samples der Attack-Transienten verschiedener Sounds und Instrumente.
Digiwave auswählen
mm Stellen Sie den Wellenform-Drehregler auf „Sine“ (6-Uhr-Position) und wählen Sie eine der folgenden
Optionen:
•• Klicken Sie bei gedrückter ctrl-Taste oder mit der rechten Maustaste auf „Sine“ und wählen Sie
dann eine Wellenform aus dem Kontextmenü aus.
•• Bewegen Sie „Sine“ bei gedrückter Maustaste in vertikaler Richtung.
Kapitel 3 ES2 39
•• Klicken Sie bei gedrückter Umschalttaste auf „Sine“ und geben Sie einen numerischen Wert für
die gewünschte Digiwave ein.
Verwenden des ES2-Noise-Generators
Die Klangpalette von Oszillator 3 wird durch einen Noise-Generator vervollständigt, den Sie
durch Auswahl der Noise-Wellenform aktivieren. Dieser liefert in der Regel Weißes Rauschen.
Weißes Rauschen ist ein homogenes Gemisch aller Frequenzen, die in jedem Frequenzband gleicher
Bandbreite in Hertz die gleiche Intensität aufweisen. Die Bandbreite ist hier in Hertz angegeben.
Sein neutraler Klang liegt irgendwo zwischen dem Konsonanten „F“ und Meeresrauschen.
Wenn Sie Meeresrauschen, Windgeräusche oder auch elektronische Snaredrum-Sounds synthetisieren
möchten, ist Weißes Rauschen die ideale Wellenform.
Tatsächlich können Sie die tonale Färbung in Echtzeit modulieren, indem Sie die Wellenform von
Oszillator 3 modulieren.
Noise-Färbung ändern
1 Legen Sie das folgende Modulations-Routing an: Modulationsziel „Osc3Wave“, Quelle „ModWhl“.
Der Schieberegler für die Modulationstiefe verhält sich in diesem Routing tatsächlich wie
ein Filter.
2 Verwenden Sie negative Werte für die Modulationstiefe (nicht −1.000), um eine absteigende
Filterneigung festzulegen, die ungefähr 6 dB/Oktave entspricht. Der Sound wird dunkler (rotes
Rauschen), wenn Sie das Modulationsrad nach unten einstellen.
3 Um diesen Pseudofilter auf 18 Hz einzustellen, legen Sie die Modulationstiefe auf −1.000 fest. Bei
positiver Modulation von „Osc3Wave“ wird das Rauschen heller (blaues Rauschen).
4 Wenn Sie die Modulationstiefe für das Modulationsziel „Osc3Wave“ auf einen Wert von +1.000
einstellen, wird die Cutoff-Frequenz des Filters auf 18 kHz eingestellt.
Emulieren von verstimmten Analog-Oszillatoren im ES2
Der Parameter „Analog“ ändert nach dem Zufallsprinzip die Tonhöhe jeder Note – und der
Cutoff-Frequenz des Filters.
•• Niedrige Analog-Werte können dem Klang eine subtile Fülle verleihen.
•• Mittlere Analog-Werte simulieren die mangelhafte Stimmstabilität analoger Synthesizer.
Dadurch erzielen Sie den beliebten warmen Analogklang.
•• Hohe Analog-Werte sorgen für eine auffallend instabile Stimmung, die auch tatsächlich nach
falschen Tönen klingen kann – aber vielleicht ist das ja genau das, was Sie suchen.
Kapitel 3 ES2 40
Drehen Sie den Analog-Drehregler, um die Tonhöhe jeder Note nach dem Zufallsprinzip zu
ändern – und Cutoff-Frequenz des Filters.
Wie bei polyphonen analogen Synthesizern behalten die drei Oszillatoren ihre spezifische
Abweichung zu den Frequenzen der anderen Oszillatoren bei, allerdings können die Tonhöhen
aller drei Oszillatoren über denselben Wert für „Analog“ verstimmt werden. Wenn beispielsweise
die Analog-Verstimmung auf etwa 20 % eingestellt ist, werden alle drei Oszillatoren (sofern in
Betrieb) nach dem Zufallsmuster um 20 % verstimmt.
Hinweis: Bei den Tastaturmodi „Mono“ oder „Legato“ zeigt „Analog“ nur dann Wirkung, wenn
„Unison“ aktiviert ist. In diesem Fall bestimmt „Analog“ den Grad der Verstimmung der übereinander
gelegten Stimmen. Wenn der Parameter „Voices“ auf „1“ gesetzt ist und/oder „Unison“ nicht
aktiv ist, hat der Parameter „Analog“ keinen Effekt. Weitere Informationen zu diesen Parametern
finden Sie unter Einstellen des Keyboard-Modus im ES2 auf Seite 43.
Streckung im ES2
Über den Frequency-Drehregler (Grobstimmung) jedes Oszillators können Sie die Oszillatoren
1, 2 und 3 in Halbton- oder Oktavschritten stimmen. Der Frequency-Parameter (Feinstimmung)
ermöglicht es Ihnen nun, jeden Oszillator in Cent (1/100 Halbton) feinzustimmen. Eine präzise
Verstimmung der Oszillatoren kann zu Schwebungen oder einem Phasing zwischen den
Oszillator-Frequenzen führen. Diese Schwebungen fallen normalerweise bei hohen Frequenzen/
Noten schneller aus. Deshalb wirken höhere Noten oft verstimmter als tiefere Noten.
CBD (Constant Beat Detuning) kann zur Korrektur von Schwebungen zwischen den Oszillatoren
oder auch als kreatives Werkzeug zur Emulation einer gestreckten Stimmung genutzt werden.
Die letzte Option kann vor allem dann von Bedeutung sein, wenn Sie ES2-Sounds gemeinsam
mit Aufnahmen akustischer Pianos verwenden. Der Grund liegt darin, dass akustische Pianos
absichtlich „verstimmt“ sind (von der gleich temperierten Stimmung). Man spricht hierbei von
einer Streckung, die dazu führt, dass die oberen und unteren Bereiche auf der Klaviatur in Bezug
auf die mittleren Oktaven etwas verstimmt sind, zueinander jedoch „gestimmt“ klingen.
Wählen Sie einen CBD-Wert aus, um die Harmonien der Frequenzen von tiefen Noten in einem
Verhältnis zu verstimmen, das zum Grundton der Frequenzen der oberen Noten proportional ist.
CBD stellt fünf Werte zur Auswahl: “off“, „25%“, „50%“, „75%“ und „100%“. Bei „100%“ wird die
Schwebungsfrequenz nahezu über den gesamten Tastaturbereich gleichmäßig gehalten. Dieser
Wert ist jedoch möglicherweise zu hoch, da tiefe Noten bereits zu verstimmt erscheinen, während
der Diskant angenehm schwebt. Versuchen Sie es zuerst mit niedrigeren CBD-Werten, wenn
der Bass im Vergleich zu dem oberen Klaviaturbereich zu verstimmt klingt.
Das Zentrum der Gewichtung für CBD ist das C3 (das mittlere C): Dessen Verstimmung bleibt bei
jedem Wert von CBD gleich.
Kapitel 3 ES2 41
Ausgleichen von ES2-Oszillatorpegeln
Die Position des Zeigers im Dreieck wird durch zwei Parameter beschrieben – die X- und
Y-Koordinaten – die für die Automation der Oszillatoren-Mischung verwendet werden. Diese mit
„OscLevelX“ und „OscLevelY“ bezeichneten Parameter sind im Router als Ziele verfügbar.
Bewegen Sie den Zeiger im Dreieck, um zwischen den drei Oszillatoren zu überblenden (also das
Lautstärkeverhältnis zwischen ihnen einzustellen). Die Bedienung ist selbsterklärend. Wenn Sie
den Zeiger nur auf einer Kante des Dreiecks verschieben, wird zwischen den beiden nächstliegenden
Oszillatoren überblendet, während der dritte Oszillator stummgeschaltet wird.
Click or drag in the
Triangle to change the
level balance between
the oscillators.
Die Position des Zeigers (X- und Y-Koordinaten) im Dreieck kann auch über die Vector-Hüllkurve
gesteuert werden. Da in der Vector-Hüllkurve eine Loop-Funktion integriert ist, kann sie auch als
Pseudo-LFO mit einer programmierbaren Wellenform benutzt werden. Weitere Informationen zu
dieser Funktion finden Sie unter Verwenden der Vector-Hüllkurve auf Seite 63.
Dreieck-Koordinaten mit dem Modulationsrad modulieren
1 Legen Sie das folgende Modulations-Routing an: Modulationsziel „OscLeveIX“, Quelle „ModWhl“.
Stellen Sie die Intensität ein.
2 Legen Sie das folgende zweite Modulations-Routing fest: Modulationsziel „OscLevelY“, Quelle
„ModWhl“. Stellen Sie die Intensität ein. Sie können andere Quellen für diese Ziele auswählen.
Ändern von Oszillator-Startpunkten im ES2
Die Oszillatoren können frei laufen oder an derselben Phasen-Position ihres jeweiligen
Wellenformdurchgangs gestartet werden, wenn eine Note angeschlagen wird.
Wählen Sie die Optionen „Free“, „Soft“ oder „Hard“ im Einblendmenü „Osc(illator) Start“ aus.
•• Free: Der anfängliche Startpunkt für die Oszillatorphase ist für jede gespielte Note zufällig.
Das macht den Sound lebendiger. Der Nachteil ist, dass der Ausgangspegel bei jedem
Anschlag einer Note unterschiedlich ausfallen kann: So kann die Attack-Phase trotz identischer
Performance (wenn die Noten beispielsweise von einer MIDI-Region getriggert werden) weniger
druckvoll klingen. Diese Einstellung empfiehlt sich, wenn Sie Sounds emulieren möchten,
die für analoge Hardware-Synthesizer typisch sind.
•• Soft: Die anfängliche Oszillatorphase beginnt bei einem Nulldurchgang für jede gespielte Note.
Dies kommt dem Klangbild (und der Präzision) digitaler Synthesizer nahe.
•• Hard: Die anfängliche Oszillatorphase beginnt mit dem größtmöglichen Pegel im
Wellenformdurchgang für jede gespielte Note. Die Extraportion Druck, die Sie mit dieser
Einstellung erzielen können, ist aber nur dann hörbar, wenn der Parameter „Attack Time“ für
Hüllkurve 3 auf einen niedrigen Wert (und damit auf eine sehr schnelle Attack) eingestellt ist.
Diese Einstellung ist besonders für elektronische Percussion und harte Bässe empfehlenswert.
Kapitel 3 ES2 42
Hinweis: Wenn „Soft“ oder „Hard“ gewählt ist, wird von Seiten der Oszillatoren bei jeder
Wiedergabe immer exakt der gleiche Pegel erzielt. Dies könnte beim Bouncen in Logic Pro von
Bedeutung sein, wenn Sie möglichst nahe an die Aussteuerungsgrenze kommen möchten.
Synchronisieren von ES2-Oszillatoren
Die Sync-Funktion eignet sich besonders für aggressive, kreischende Klänge. Die Wellenformen
„Rechteck“ und „Sägezahn“ von Oszillator 2 und 3 verfügen über die Option „Sync“. Wenn dieser
Parameter eingeschaltet ist, wird die Phase von Oszillator 2 oder 3 mit Oszillator 1 synchronisiert.
Jedes Mal, wenn Oszillator 1 einen neuen Wellendurchgang beginnt, wird der synchronisierte
Oszillator (Oszillator 2 oder 3) ebenfalls auf den Anfang seiner Wellenform zurückgesetzt.
Zwischen den Wellenformdurchgängen von Oszillator 1 laufen die Wellenformdurchgänge der
synchronisierten Oszillatoren frei.
Sie können interessante synchronisierte Oszillatorsounds erzeugen, indem Sie die Frequenz des
synchronisierten Oszillators mit einem Hüllkurvengenerator modulieren. Dies ändert die Anzahl
der Phasen in einem Abschnitt des synchronisierten Durchgangs konstant, was zu entsprechenden
Änderungen im Frequenzspektrum führt.
Synchronisierte Oszillator-Frequenz mit einer Hüllkurve modulieren
1 Stellen Sie den Wellenform-Drehregler für Oszillator 2 auf „Sync“ ein.
2 Legen Sie das folgende Modulations-Routing fest: Modulationsziel „Pitch2“, Quelle „Env2“.
3 Stellen Sie die Einstellungen von Hüllkurve 2 ein.
Globale Parameter im ES2
Globale Parameter – Übersicht
Die globalen Parameter im ES2 haben den größten Einfluss auf den gesamten, durch den ES2
erzeugten Sound. Die globalen Parameter befinden sich links neben den Oszillatoren und oberhalb
des Filter- und Output-Bereichs.
Global parameters Global parameters
Kapitel 3 ES2 43
Globale Parameter
•• Tasten „Keyboard Mode“: Schalten Sie den ES2 zwischen polyphonem, monophonem und
Legato-Modus um. Weitere Informationen finden Sie unter Einstellen des Keyboard-Modus im
ES2 auf Seite 43.
•• Taste „Unison“: Klicken Sie auf die Taste, um den Unison-Modus ein- oder auszuschalten.
Weitere Informationen finden Sie unter Verwenden von Unison und Stimmen im ES2 auf
Seite 44.
•• Feld „Voices“: Hier stellen Sie durch Bewegen die Anzahl der gleichzeitig abspielbaren
Noten ein.
•• Drehregler „Glide“: Drehen Sie diesen Drehregler, um die Dauer zu steuern, in der die Tonhöhe
einer gespielten Note auf die Tonhöhe der nachfolgend gespielten Note gebunden wird.
Weitere Informationen finden Sie unter Festlegen der Zeiteinstellung für Glide im ES2 auf
Seite 44.
•• Felder „Bend Range“: Definieren Sie durch Bewegen den oberen und unteren Pitch-Bend-
Bereich. Weitere Informationen finden Sie unter Pitch-Bend-Bereich des ES2 festlegen auf
Seite 45.
•• Feld „Tune“: Legen Sie durch Bewegen die gesamte Tonhöhe des Instruments in Cent fest. 100
Cent entsprechen einem Halbtonschritt. Bei einem Wert von „0 c“ (null Cent) ist das mittlere A
auf 440 Hz oder den Kammerton gestimmt.
•• Drehregler „Analog“: Drehen Sie den Drehregler „Analog“, um die Tonhöhe jeder Note nach
dem Zufallsprinzip zu ändern – und die Cutoff-Frequenz des Filters. Weitere Informationen
finden Sie unter Emulieren von verstimmten Analog-Oszillatoren im ES2 auf Seite 39).
•• Einblendmenü „Constant Beat Detuning (CBD)“: Wählen Sie einen CBD-Wert aus, um die
Harmonien der Frequenzen von tiefen Noten in einem Verhältnis zu verstimmen, das zum
Grundton der Frequenzen der oberen Noten proportional ist. Weitere Informationen finden Sie
unter Streckung im ES2 auf Seite 40.
•• Einblendmenü „Osc(illator) Start“: Wählen Sie die Optionen „free“, „soft“ oder „hard“ im
Einblendmenü „Osc(illator) Start“ aus Weitere Informationen finden Sie unter Ändern von
Oszillator-Startpunkten im ES2 auf Seite 41.
Einstellen des Keyboard-Modus im ES2
Ein polyphones Instrument wie eine Orgel oder ein Klavier ermöglicht es, mehrere Noten gleichzeitig
zu spielen. Viele alte Analogsynthesizer sind monophon, d. h. es kann wie auf einem
Blasinstrument in der Regel nur ein Ton zur selben Zeit gespielt werden. Dies muss nicht von
Nachteil sein, da es besondere Spielweisen erlaubt, die man von polyphonen Instrumenten zuvor
nicht kannte.
Keyboard-Modus ändern
mm Klicken Sie auf die Taste „Poly“, „Mono“ oder „Legato“.
•• Im Mono-Modus werden beim Staccato-Spiel die Abläufe der Hüllkurvengeneratoren
jedes Mal neu gestartet, wenn eine Note gespielt wird. Spielen Sie hingegen legato (durch
Anschlagen einer neuen Taste, während die alte gehalten wird), werden die Abläufe der
Hüllkurven nur für die ersten legato gespielten Noten neu gestartet und folgen dann ihrem
eingestellten Verlauf so lange, bis Sie die letzte legato gespielte Taste loslassen.
Kapitel 3 ES2 44
•• „Legato“ ist ebenfalls monophon, allerdings mit einer Besonderheit: Die Hüllkurvengeneratoren
werden nur dann mit jeder Note neu ausgelöst, wenn Sie abgesetzt (staccato) spielen, d. h. wenn
Sie die jeweilige Taste loslassen, bevor Sie eine neue anschlagen. Wenn Sie legato spielen, werden
die Hüllkurven nicht neu ausgelöst.
Hinweis: Das Verhalten im Modus „Mono“ wird bei vielen monophonen Analogsynthesizern als
Multi Trigger bezeichnet, das Verhalten im Modus „Legato“ als Single Trigger.
Verwenden von Unison und Stimmen im ES2
Eine der großen Stärken polyphoner Analogsynthesizer ist der Unison-Modus, bei dem mehrere
Stimmen übereinander geschichtet werden. Der Unison-Modus ist bei polyphonen analogen
Synthesizern üblicherweise monophon, wobei alle Stimmen gleichzeitig wiedergegeben werden,
wenn eine einzelne Note angeschlagen wird. Da die Stimmen des analogen Synthesizers nie exakt
gleich gestimmt sind, ergibt sich ein imposanter Chorus-Effekt mit einer erstaunlichen Klangdichte.
Monophonen Unison-Modus verwenden
1 Klicken Sie auf die Taste „Mono“ oder „Legato“, je nach gewünschtem Keyboard-Modus. Weitere
Informationen finden Sie unter Einstellen des Keyboard-Modus im ES2.
2 Klicken Sie auf die Taste „Unison“.
•• Die Intensität dieses Effekts hängt von der Anzahl der ausgewählten Stimmen im Parameterfeld
„Voices“ ab. Erhöhen Sie den Voices-Wert, um einen volleren Klang zu erreichen. Weitere
Informationen finden Sie unter Globale Parameter – Übersicht.
•• Die Intensität der Verstimmung (Stimmenabweichung) wird über „Analog“ gesteuert. Weitere
Informationen finden Sie unter Emulieren von verstimmten Analog-Oszillatoren im ES2.
Polyphonen Unison-Modus verwenden
mm Klicken Sie auf die Tasten „Poly“ und „Unison“.
Im Modus „Poly/Unison“ wird jede Note gedoppelt oder genauer genommen halbiert sich die
Anzahl der Stimmen im Voices-Feld. Diese beiden Stimmen sind zu hören, wenn Sie die Note
spielen. Die Betriebsart „Poly/Unison“ erzeugt denselben Effekt wie die Einstellung „Mono/Unison“
(Stimmen = 2) im ES2, allerdings können Sie nun polyphon spielen.
Festlegen der Zeiteinstellung für Glide im ES2
Der Parameter „Glide“ (auch als Portamentobekannt) legt die Zeit fest, die die Tonhöhe einer gespielten
Note benötigt, um von einer anderen gespielten Note zur jetzigen Tonhöhe zu gleiten.
Portamento aktivieren
mm Drehen Sie den Drehregler „Glide“.
Das Verhalten von Glide hängt vom gewählten Tastaturmodus ab. Weitere Informationen finden Sie
unter Einstellen des Keyboard-Modus im ES2.
•• Im Modus „Poly“ oder „Mono“ ist das Portamento ständig aktiv, sobald für „Glide“ ein anderer Wert
als „0“ ausgewählt ist.
•• Wenn aber „Legato“ ausgewählt ist, werden nur legato (gebunden) gespielte Noten (durch
Halten der alten Taste und Anschlagen einer neuen) mit Portamento versehen. Ungebunden
gespielte Noten erklingen ohne Portamento. Dieses Verhalten wird auch als Fingered
Portamento bezeichnet.
Kapitel 3 ES2 45
Pitch-Bend-Bereich des ES2 festlegen
Die Felder „Bend“ definieren den Bereich für die Pitch-Bend-Modulation, die Sie üblicherweise
über das Pitch-Bend-Rad an Ihrem Keyboard steuern.
Unabhängige Bend-Bereiche für Aufwärts- und Abwärtsbewegung festlegen
mm Bewegen Sie den Zeiger in einem der Felder, um einen Bend-Bereich festzulegen.
Identische Bend-Bereiche für Aufwärts- und Abwärtsbewegung festlegen
1 Legen Sie das Feld für den Bend-Bereich in Aufwärtsrichtung auf den Link-Modus fest.
Dadurch werden die Bend-Bereiche in Aufwärts- und Abwärtsrichtung gesperrt, sodass sie identische
Werte aufweisen.
2 Legen Sie einen Wert für den Bend-Bereich in Abwärtsrichtung fest.
Dieser Wert wird im Feld für den Bend-Bereich in Aufwärtsrichtung übernommen.
Hinweis: Beispielsweise führt ein Bend von 4 Halbtönen in Abwärtsrichtung zu einem kombinierten
Bend-Bereich von 8 Halbtönen – 9, wenn Sie die Standardtonhöhe oder Position ohne
Bend berücksichtigen.
Filter-Parameter des ES2
Filter im ES2 – Übersicht
Der ES2 integriert zwei diskrete, unterschiedlich aufgebaute Filter.
•• Filter 1 kann als Lowpass-, Highpass-, Bandpass-, Band-Reject- oder Peak-Filter
betrieben werden.
•• Filter 2 ist ein Lowpass-Filter mit unterschiedlichen Optionen für die Flankensteilheit (gemessen
in dB/Oktave).
Filter button
Filter 1 Mode
Filter Drive
Click here to choose a
parallel or series filter
configuration.
Filter FM
Filter 2 Slope
Filter 2 Resonance
Filter 2 Cutoff
Filter Blend
Filter 1 Cutoff
Filter 1 Resonance
Filter-Parameter
•• Taste „Filter“: Schaltet den Filter-Bereich ein bzw. aus. Diese Funktion erleichtert die
Programmierung anderer Klangparameter, da die Filter den Klang entscheidend prägen. Wenn
die Filter deaktiviert sind, wird außerdem die Prozessorlast erheblich reduziert.
Kapitel 3 ES2 46
•• Taste „Filter Configuration“: Schaltet zwischen einer parallelen und seriellen Filter-Konfiguration
um. Weitere Informationen finden Sie unter Filterkonfiguration im ES2 auf Seite 46.
•• Schieberegler „Filter Blend“: Steuert die Balance zwischen Filter 1 und Filter 2. Weitere
Informationen finden Sie unter Überblenden zwischen ES2-Filtern auf Seite 47.
•• Modustasten für Filter 1: Schalten Sie Filter 1 zwischen den Betriebsarten „Lowpass“, „Highpass“,
„Bandpass“, „Band Reject“ und „Peak“ um. Weitere Informationen finden Sie unter Modi von
Filter 1 im ES2 auf Seite 48.
•• Tasten für die Flankensteilheit von Filter 2: Schalten Sie die Flankensteilheit für Filter 2 um. Weitere
Informationen finden Sie unter Flankensteilheiten von Filter 2 im ES2 auf Seite 49.
•• “Cutoff“ und „Resonance“: Die Drehregler „Cutoff“ und „Resonance“ steuern die Cutoff-Frequenz
und das Resonanzverhalten für jeden Filter. Weitere Informationen finden Sie unter Filter-
Cutoff-Frequenz und Resonanz – Übersicht auf Seite 49.
•• Drehregler „Filter Drive“: Drehen Sie ihn zum Übersteuern des Filters, was sich individuell auf jede
Stimme auswirkt. Weitere Informationen finden Sie unter Verzerren von ES2-Filtern auf Seite 51.
•• Drehregler „Filter FM“: Drehen Sie den Regler, um das Ausmaß der Cutoff-Frequenzmodulation
von Filter 2 mit der Frequenz von Oszillator 1 festzulegen. Weitere Informationen finden Sie
unter Modulieren der Frequenz von Filter 2 des ES2 auf Seite 52.
Filterkonfiguration im ES2
Mit der Taste „Filter Configuration“ können Sie zwischen einem parallelen und seriellen Filter-
Routing umschalten. Je nach Auswahl wird das gesamte kreisförmige Filter-Element gedreht,
sodass die Positionen und die Ausrichtung der Filter-Drehregler den Signalfluss verdeutlichen. Die
Beschriftung der Taste wird je nach Auswahl ebenfalls angepasst.
Series filter signal flow Parallel filter signal flow
In der Abbildung links sind die Filter seriell geschaltet. Das bedeutet, dass das (in der dreieckigen
Oszillatoren-Mischstufe kombinierte) Signal aller Oszillatoren das erste Filter durchläuft.
Anschließend durchläuft das gefilterte Signal Filter 2, wenn „Filter Blend“ auf die Mittelposition
„0“ eingestellt ist. Das Ausgangssignal von Filter 2 wird dann auf den Eingang der Dynamikstufe
(Amplifier-Bereich) gespeist.
In der Abbildung rechts sind die Filter parallel geschaltet. Wenn „Filter Blend“ auf „0“ gesetzt
ist, hören Sie eine Mischung zu gleichen Teilen, die über Filter 1 und Filter 2 geroutet wird. Die
Ausgangssignale der beiden Filter werden nun auf den Eingang der Dynamikstufe gespeist.
Weitere Informationen finden Sie unter Überblenden zwischen ES2-Filtern.
Kapitel 3 ES2 47
Überblenden zwischen ES2-Filtern
„Filter Blend“ kann einen enormen Einfluss auf den Signalfluss des ES2 haben. Unabhängig
davon, ob Sie die parallele oder serielle Verschaltung wählen, hören Sie in der Einstellung
„–1“ nur Filter 1. Bei „+1“ hören Sie hingegen nur Filter 2. Diese Abbildungen illustrieren den
Signalfluss zwischen der Oszillatoren-Mischstufe (dem Dreieck) und der Dynamikstufe (den
Verstärker). Abhängig von der Filter-Blend-Einstellung durchläuft das Signal die Filter und den
Filter-Verzerrer (Parameter „Drive“).
•• Filter Blend: Konfigurationsinformationen zu seriellen Filtern
•• Verwenden Sie positive Werte für „Filter Blend“, um Filter 1 teilweise zu umgehen.
•• Verwenden Sie negative Werte für „Filter Blend“, um Filter 2 teilweise zu umgehen.
•• Bei Null oder positiven Werten für „Filter Blend“ liegt nur ein Verzerrer zwischen beiden Filtern.
•• Bei negativen Werten für „Filter Blend“ wird ein weiterer Verzerrer geschaltet, der das Output-
Signal der Oszillatoren-Mischstufe verzerrt, bevor es in Filter 1 gespeist wird.
•• Wenn „Drive“ auf 0 steht, findet keine Verzerrung statt.
Filter 1
Filter 1
Filter 1
Drive
Drive
Drive
Drive
Drive
Filter 1
Filter 1
Filter 2
Filter 2
Filter 2
Drive
Drive
Filter 2
Filter 2
+1:
–0,5:
+0,5:
–1:
0:
•• Filter Blend: Konfigurationsinformationen zu parallelen Filtern
In einer parallelen Konfiguration wird der Verzerrer – der Parameter „Drive“ – immer hinter der
Oszillatoren-Mischstufe (dem Dreieck) und vor den Filtern verkabelt. Beide Filter empfangen
das gleiche Monosignal vom Verzerrer. Die Outputs der beiden Filter werden mithilfe von
„Filter Blend“ mono zusammengemischt.
Mix
Filter 1
Drive
Filter 2
Der Parameter „Filter Blend“ steht als Modulationsziel im Router zur Verfügung. Sie können „Filter
Blend“ über manuelle Steuerquellen wie das Modulationsrad steuern, allerdings können Sie das
„Filter Blend“-Ziel auch kreativ einsetzen, um abrupt zwischen den beiden Filtern umzuschalten
oder sanft zwischen diesen zu überblenden. Sie können auch Velocity oder eine Kombination aus
Vector-Hüllkurve und Planar Pad als Quellen verwenden. Durch letzteres können Sie interessante
Möglichkeiten zur Filterkontrolle nutzen, die sich unabhängig voneinander entwickeln, oder
gemäß den Oszillator-Parametern, die ebenfalls mit der Vector-Hüllkurve kontrolliert werden.
Kapitel 3 ES2 48
Überblenden zwischen Filtern
mm Bewegen Sie den Schieberegler „Filter Blend“, um zwischen den beiden Filtern zu überblenden,
sofern diese parallel „verkabelt“ sind.
•• Wenn „Filter Blend“ oben steht (in der Regler-Ansicht zu lesen als –1), hören Sie nur den Effekt
von Filter 1.
•• Wenn „Filter Blend“ unten steht (Regler-Ansicht: +1), hören Sie nur den Effekt von Filter 2.
•• Zwischen diesen Positionen wird überblendet. Sie hören den Effekt von beiden Filtern.
Sie können auch dann zwischen den Filtern überblenden, wenn diese seriell betrieben werden. In
der seriellen Verschaltung der beiden Filter ist außerdem der über „Drive“ gesteuerte Verzerrer zu
berücksichtigen, der abhängig von „Filter Blend“ vor oder zwischen den Filtern angeordnet wird.
Filter Blend mit einem LFO modulieren
1 Legen Sie das folgende Modulations-Routing fest: Modulationsziel „FltBlend“, Quelle „LFO2“.
2 Passen Sie die Einstellungen von LFO 2 an.
Modi von Filter 1 im ES2
Filter 1 kann in verschiedenen Modi betrieben werden und filtert (eliminiert) bzw. verstärkt auf
diese Weise spezifische Frequenzbänder.
Klicken Sie auf eine der folgenden Modustasten für Filter 1:
•• Lo (lowpass): Lässt Frequenzen unterhalb der Cutoff-Frequenz passieren. Die Flankensteilheit
von Filter 1 beträgt 12 dB/Oktave.
•• Hi (highpass): Lässt Frequenzen oberhalb der Cutoff-Frequenz passieren. Die Flankensteilheit
von Filter 1 beträgt 12 dB/Oktave.
•• Peak: Filter 1 wirkt als Peak-Filter. Es erlaubt die Anhebung eines Frequenzbands. Der Scheitel
des Frequenzbands wird über den Cutoff-Parameter gesteuert. Die Breite des Frequenzbands
wird über den Resonance-Parameter gesteuert.
•• BR (Band Reject): Der Bereich um die Cutoff-Frequenz wird unterdrückt (ausgefiltert), während
die umgebenden Frequenzbereiche passieren können. Der Resonance-Parameter steuert die
Breite des gesperrten Frequenzbands.
•• BP (Bandpass): In diesem Modus kann nur ein Frequenzband um die Cutoff-Frequenz herum
passieren. Alle anderen Frequenzen werden unterdrückt. Der Resonance-Parameter steuert
die Breite des Frequenzbands. Das Bandpass-Filter ist ein Zweipol-Filterelement, dessen
Flankensteilheit auf beiden Seiten der Cutoff-Frequenz 6 dB/Oktave beträgt.
Kapitel 3 ES2 49
Flankensteilheiten von Filter 2 im ES2
Die meisten Filter dämpfen die auszufilternden Signalanteile nicht vollständig, sondern immer nur
mit einer begrenzten Trennschärfe. Die Flankensteilheit oder Kurve, die für Filter 2 gewählt wird,
beschreibt den Dämpfungsgrad unterhalb der Cutoff-Frequenz in Dezibel pro Oktave.
Slope-Tasten: Klicken Sie auf eine beliebige Taste, um eine Flankensteilheit für Filter 2 auszuwählen:
12 dB, 18 dB und 24 dB. Je steiler die Flankensteilheit ist, desto größer ist der Effekt auf
Signalpegel unterhalb der Cutoff-Frequenz.
Taste „Fat“: Klicken Sie auf die Taste „Fat“ für einen Wert von 24 dB pro Oktave der Bandsperre.
Der Fat-Modus verfügt über eine integrierte Kompensations-Schaltung, um die Basslastigkeit des
Sounds beizubehalten. Verglichen damit klingen in der herkömmlichen 24-dB-Einstellung basslastige
Sounds dagegen nicht so voluminös.
Filter-Cutoff-Frequenz und Resonanz im ES2
Filter-Cutoff-Frequenz und Resonanz – Übersicht
In jedem Lowpass-Filter (ES2: Lo-Modus für Filter 1; Filter 2 ist ein Lowpass-Filter) werden alle
Frequenzanteile oberhalb der Cutoff-Frequenz gedämpft oder beschnitten. Wenn Sie bisher keine
Erfahrung mit Synthesizern und den Konzepten der Filter haben, lesen Sie Synthesizer-Grundlagen
– Übersicht auf Seite 440.
Parameter „Cutoff“ und „Resonance“
•• Drehregler „Cutoff Frequency“: Drehen Sie den Regler, um die Brillanz des Signals zu kontrollieren.
•• Je höher die Cutoff-Frequenz in einem Lowpass-Filter, desto höherfrequente Signalanteile
können passieren.
•• Bei einem Highpass-Filter bestimmt die Cutoff-Frequenz den Punkt, ab dem tiefere Frequenzen
unterdrückt und höhere Frequenzen durchgelassen werden.
•• Bei einem Bandpass-/Bandsperr-Filter bestimmt die Cutoff-Frequenz die Scheitelfrequenz für
den Bandpass- oder Bandsperr-Filter.
•• Drehregler „Resonance“: Drehen Sie diesen Regler, um Teile des Signals über oder unter die eingestellte
Cutoff-Frequenz anzuheben bzw. abzusenken.
•• In einem Lowpass-Filter hebt die Resonanz Signale unter der Cutoff-Frequenz an oder
senkt sie ab.
•• In einem Highpass-Filter hebt die Resonanz Signale über der Cutoff-Frequenz an oder
senkt sie ab.
Kapitel 3 ES2 50
•• In einem Bandpass-/Bandsperr-Filter verstärkt oder unterdrückt „Resonance“ die
Signalanteile (das Frequenzband) um die Frequenz herum, die mit dem Parameter „Cutoff
Frequency“ eingestellt sind.
Zwei Filter-Parameter gleichzeitig regeln
Die Fähigkeit, „Cutoff“ und „Resonance“ gleichzeitig steuern zu können, ist für die Erzeugung
expressiver Synthesizer-Sounds essenziell.
mm Verschieben Sie eines der drei Kettensymbole in der Filtersektion des ES2.
Click here to
simultaneously adjust
the cutoff of both Filter 1
and Filter 2.
Click here to
simultaneously adjust
the cutoff and
resonance of Filter 2.
Click here to
simultaneously adjust
the cutoff and
resonance of Filter 1.
•• Die Kette zwischen den Drehreglern „Cut“ und „Res“ in Filter 1 steuert gleichzeitig die Resonanz
(horizontale Bewegung) und Cutoff-Frequenz (vertikale Bewegung).
•• Die Kette zwischen den Drehreglern „Cut“ und „Res“ in Filter 2 steuert gleichzeitig die Resonanz
(horizontale Bewegung) und Cutoff-Frequenz (vertikale Bewegung).
•• Die Kette zwischen den Cut-Drehreglern für Filter 1 und Filter 2 steuert gleichzeitig die Cutoff-
Frequenz von Filter 1 (vertikale Bewegung) und Filter 2 (horizontale Bewegung).
Erzwingen der Selbstoszillation von ES2-Filtern
Wenn Sie die Resonanz eines der Filter erhöhen, entsteht eine filterinterne Rückkopplung, die
zu einer Selbstoszillation an der Grenzfrequenz des Filters (Cutoff Frequency) führt. Dies führt zu
einer Sinus-Oszillation (einer Sinuswelle), die effektiv hörbar ist.
Um die Schwingung in Gang zu setzen, bedarf es eines gewissen Anfangsimpulses. Bei analogen
Synthesizern genügt das Grundrauschen der analogen Schaltungen oder das Signal der
Oszillatoren. Beim digitalen ES2 rauscht nichts. Wenn also alle Oszillatoren stummgeschaltet sind,
liegt am Filter kein Input-Signal. Durch „Filter Reset“ wird ein Impulssignal bereitgestellt, das verwendet
werden kann, um eine Eigen-Oszillation des Filters zu bewirken.
Filter Reset für die Eigen-Oszillation der ES2-Filter verwenden
mm Klicken Sie auf die Taste „Filter Reset“, um das Filter zu aktivieren.
Wenn diese Taste aktiviert ist, können Sie jede Note mit einem Impuls beginnen lassen, sodass
das Filter sofort schwingt/mit der Selbstoszillation beginnt.
Kapitel 3 ES2 51
Hohe Resonanzwerte mit dem Parameter Fat(ness) kompensieren
mm Aktivieren Sie die Taste „Fat(ness)“ durch Klicken, die sich unter den anderen Tasten für die
Flankensteilheit befindet.
Ein Anheben des Resonance-Werts führt bei Lowpass-Filtern zu einer Absenkung der Bässe. Sie
können die Taste „Fatness“ verwenden, um diesen Nebeneffekt auszugleichen und einen voluminöseren
Sound zu erhalten.
Verzerren von ES2-Filtern
Die Filter verfügen über getrennte Verzerrermodule. Sie können durch Drehen des Parameters
„Drive“ die Verzerrungsintensität festlegen.
Durch den Parameter „Drive“ wird jede Stimme unabhängig voneinander beeinflusst. Wenn jede
Stimme einzeln verzerrt wird (wie bei einer Gitarre mit sechs Fuzz-Boxen, eine für jede Saite),
können Sie über den gesamten Tastaturbereich komplexeste Harmonien spielen. Jede Stimme
klingt sauber, ohne dass Intermodulationseffekte das Klangbild trüben.
Bestimmte Drive-Einstellungen können zu einem unterschiedlichen Klangcharakter führen. Dies
ist darauf zurückzuführen, dass der Klangcharakter eines Synthesizers in hohem Maß dadurch
beeinflusst wird, auf welche Weise sich analoge Filter beim Übersteuern verhalten. Jedes
Synthesizer-Modell hat diesbezüglich individuelle Klangeigenschaften. Der ES2 arbeitet in diesem
Bereich sehr flexibel und ermöglicht klangliche Färbungen, die von dezenter Übersteuerung bis
zur härtesten Verzerrung reichen.
•• Solange die Filter parallel verschaltet sind, liegen diese Verzerrer im Signalfluss vor den Filtern.
•• Bei serieller Verschaltung der Filter hängt die Position der Verzerrer vom Parameter „Filter
Blend“ ab. Weitere Informationen finden Sie unter Überblenden zwischen ES2-Filtern.
Tipp: Da das Filter 2 bei serieller Verschaltung die bei der Verzerrung entstehenden Obertöne
ausfiltern kann, erscheint die Möglichkeit, vor und zwischen den Filtern zu verzerren, eher wie
eine zusätzliche Option, die Oszillatoren-Wellenformen zu deformieren.
Polyphone Verzerrungen in der Praxis
Der ES2 stellt einen eigenen Distortion-Effekt im Effekte-Bereich zur Verfügung. Angesichts dieser integrierten
Funktion stellt sich möglicherweise die Frage, welche Vorteile die Funktion „Drive“ des Filters bietet.
Die Verzerrer-Schaltung im Effekte-Bereich beeinflusst die gesamte polyphone Ausgabe des ES2. Jeder Rock-
Gitarrist weiß, dass komplexere Akkorde, die über Dur, parallele Quinten und Oktaven hinausgehen, unrein
klingen, wenn sie im Ganzen verzerrt werden. Daher beschränken sich Gitarristen meist auf wenige Stimmen
oder parallele Quinten und Oktaven. Der Drive-Parameter der Filter beeinflusst jede Stimme einzeln, wodurch
Sie komplexe Akkorde spielen können, ohne dass unangenehme Intermodulationen auftreten, die der
Verzerrungseffekt Ihrem Sound hinzufügen kann.
Kapitel 3 ES2 52
Modulieren der Frequenz von Filter 2 des ES2
Die Cutoff-Frequenz von Filter 2 kann über eine Sinuswelle von Oszillator 1 moduliert werden,
die selbst dann ausgegeben wird, wenn der Oszillator abgeschaltet ist. Der Pegel des Sinus-
Signals kann in der Ausgangsstufe mit dem Parameter „Sine Level“ gemischt werden (vgl.
Optimierte ES2-Sounds mit Sine Level auf Seite 53).
Der Effekt einer solchen Modulation im Audiofrequenzbereich führt zu schwer vorhersagbaren
Ergebnissen, deren Spektren bei dezent gewählten Modulationsintensitäten jedoch noch sehr
harmonisch sind. Mit dem FM-Parameter wird die Intensität dieser Filter-Frequenzmodulation
festgelegt.
Hinweis: Verwechseln Sie diese Filter-Frequenzmodulation nicht mit der Funktion zur
FM-Oszillation (Oszillator 1 wird von Oszillator 2 moduliert). Wenn Oszillator 1 von Oszillator 2 frequenzmoduliert
wird, wird das Sinuswellen-Signal, das die Cutoff-Frequenzen moduliert, davon
nicht beeinflusst. Weitere Informationen finden Sie unter Frequenzmodulation im ES2.
Filter 2 ist bis zur Selbstoszillation resonanzfähig. Wenn Sie den Resonance-Wert sehr hoch
wählen, erzeugt das Filter eine Sinusschwingung. Diese selbstschwingende Sinuswelle wird
bei maximalem Resonance-Wert sogar verzerrt. Wenn Sie alle Oszillatoren stummschalten oder
anderweitig ausblenden, hören Sie nur noch die Sinusschwingung des Lowpass. Mit einer
Frequenzmodulation der Cutoff-Frequenz können Sie nun die gleichen Effekte erzeugen, die
auch durch die Frequenzmodulation des Oszillators 1 durch Oszillator 2 möglich sind.
Filter FM modulieren
1 Legen Sie das folgende Modulations-Routing fest: Modulationsziel „LPF FM“.
Als Modulationsquelle dient stets ein Sinus mit der Frequenz des ersten Oszillators. Aufgrund
dieser Standardzuweisung und der direkten Beziehung zwischen der Intensität von Filter FM und
der Frequenz von Oszillator 1 können Sie ein zweites Routing zum Modulieren der Tonhöhe von
Oszillator 1 einrichten.
2 Legen Sie das folgende Modulations-Routing fest: Modulationsziel „Pitch 1“, Quelle „LFO1“.
3 Passen Sie die Einstellungen für LFO an.
Amplifier-Parameter des ES2
Verwenden der Dynamikstufe des ES2
Die Dynamikstufe eines Synthesizers bestimmt den Pegel eines Tons, also letztlich die wahrgenommene
Lautstärke. Der zeitliche Verlauf des Pegels wird von einem Hüllkurvengenerator
gesteuert. Weitere Informationen zu Hüllkurvengeneratoren finden Sie unter Synthesizer-
Grundlagen – Übersicht auf Seite 440.
ENV 3 ist fest mit der Dynamikstufe des ES2 verkabelt und dient daher immer zur Pegelsteuerung
der Noten. Weitere Informationen finden Sie unter ES2-Hüllkurven – Übersicht.
Die Dynamikstufe kann außerdem über den Router von jeder Modulationsquelle
moduliert werden.
Kapitel 3 ES2 53
Dynamikstufe modulieren (Amp)
1 Legen Sie das folgende Modulations-Routing fest: Modulationsziel „AMP“, Quelle „LFO1“.
2 Vergewissern Sie sich, dass für „via“ die Einstellung „Off“ ausgewählt wurde.
3 Passen Sie die Einstellungen für LFO an.
Ein Tremolo-Effekt mit einem periodisch geänderten Pegel wird erzeugt, der auf dem aktuellen
Wert für „LFO 1 Rate“ basiert.
Optimierte ES2-Sounds mit Sine Level
Mit dem Sine Level-Drehregler kann die Sinuswelle (bei der Frequenz von Oszillator 1) unter
Umgehung der Filter direkt in der Dynamikstufe hinzugemischt werden. Selbst wenn Sie durch
eine Hochpassfilterung den Grundton von Oszillator 1 ganz ausgeblendet haben, können Sie ihn
mit diesem Parameter wieder zumischen.
•• Auch wenn Oszillator 1 durch Oszillator 2 frequenzmoduliert ist (wenn Sie „FM“ mit dem Wave-
Drehregler angehoben haben), wird hier nur die reine Sinuswelle dem Dynamikbereich zugemischt
und nicht ein durch die Frequenzmodulation verzerrtes Signal.
•• Jede Modulation der Tonhöhe von Oszillator 1, die im Router eingestellt wird, wirkt sich nun
auf die Frequenz der Sinuswelle aus, die in dieser Stufe zugemischt wird.
Hinweis: Der Drehregler „Sine Level“ eignet sich gut, um dem Klang Grundtönigkeit, Wärme und
einen satten Bass zu verleihen. Insbesondere dünne Klänge können von diesem Parameter profitieren,
vorausgesetzt Oszillator 1 spielt im Konzert der Oszillatoren tatsächlich den Grundton.
Kapitel 3 ES2 54
ES2-Modulation
ES2-Modulation – Übersicht
Der ES2 bietet eine extrem große Anzahl an Modulationsquellen und Modulationszielen. Daher
ist er ein außerordentlich flexibler Synthesizer, der ungewöhnliche Klänge erzeugen kann, die
sich ständig weiterentwickeln, die wie Audio Loops klingen oder die sich einfach sehr ausdrucksstark
spielen lassen.
Modulation sources
Click here to
display the
Vector Envelope.
Planar Pad
Modulation router
•• Modulations-Router: Der Modulations-Router, oder kurz Router, verknüpft Modulationsquellen
wie die Hüllkurve mit Modulationszielen wie den Oszillatoren und Filtern. Der Router enthält
zehn Modulations-Routings, angeordnet in Spalten. Weitere Informationen finden Sie unter
Verwenden des Modulation-Routers auf Seite 55.
•• Modulationsquellen: Zu den Modulationsquellen gehören die LFOs und Hüllkurven. Näheres
hierzu finden Sie unter ES2 LFO – Übersicht auf Seite 58 und ES2-Hüllkurven – Übersicht auf
Seite 60.
•• Vector-Hüllkurve: Die Vector-Hüllkurve ist eine extrem raffiniert aufgebaute loopfähige
Multipoint-Hüllkurve, die zur Steuerung des Planar Pads und Dreiecks (Oszillatoren-Mischstufe)
benutzt werden kann. Die Vector-Hüllkurve kann anstelle des Modulations-Routers in der
Bedienoberfläche eingeblendet werden, indem Sie auf die Taste „Vector Envelope“ auf der
rechten Seite des Routers klicken. Weitere Informationen finden Sie unter Verwenden der
Vector-Hüllkurve auf Seite 63.
•• Planar Pad: Das Planar Pad arbeitet als zweidimensionaler Controller, mit dem sich zwei frei
zuweisbare Parameter gemeinsam steuern lassen. Es kann über die Vector-Hüllkurve gesteuert
werden. Weitere Informationen finden Sie unter Verwenden von Planar Pad auf Seite 70.
Kapitel 3 ES2 55
Modulations-Router im ES2
Verwenden des Modulation-Routers
Der Modulations-Router (oder einfach Router) erstreckt sich quer über das Zentrum der
ES2-Bedienoberfläche. Klicken Sie auf die Taste „Router“, um den Router anstelle der Vector-
Hüllkurve einzublenden (diese beiden Komponenten teilen sich denselben Bereich auf
der Bedienoberfläche). Sie können den Router bzw. die Vector-Hüllkurve durch Klicken auf
das Dreiecksymbol zum Einblenden links unten im Abschnitt klicken. Wenn Synthesizer-
Modulations-Routings für Sie etwas Neues sind, lesen Sie bitte unter Modulation – Übersicht auf
Seite 454 nach.
The modulation intensity slider
divides into two halves when a
via source is active.
Modulation sources are
shown at the bottom of
each modulation routing.
The modulation intensity
slider is not divided when
there is no active via source.
Modulation targets are
shown at the top of each
modulation routing.
Via sources are shown
in the middle of each
modulation routing.
Auch eine große Auswahl an verschiedenen Modulationsquellen (Sources) lässt sich mit verschiedenen
Modulationszielen (Targets) verknüpfen, wie bei einer manuellen Telefonzentrale mit dem
Fräulein vom Amt oder bei einer Studio-Patchbay.
Die Modulationsintensität (wie stark das Ziel von der Quelle beeinflusst wird) wird mit dem vertikalen
Schieberegler rechts neben dem jeweiligen Modulations-Routing eingestellt.
Die Intensität der Modulation kann wiederum auch moduliert werden: Der Parameter via
bestimmt eine weitere Modulationsquelle, die die Intensität der Modulation regelt. Wenn „via“
aktiviert ist, können Sie obere und untere Grenzen für die Intensität der Modulation festlegen.
Es können zehn solche Zuordnungen von Modulations-Routings (von Quelle, Via und Ziel)
simultan erfolgen. Welchen der zehn Modulationswege Sie verwenden, ist unerheblich. Die
verschiedenen Modulationsziele können sogar mehrfach ausgewählt werden. Sie können
dieselben Quellen und dieselben „via“-Controller in verschiedenen Modulations-Routings
simultan einsetzen.
Einfaches Modulations-Routing erstellen
1 Wählen Sie in Einblendmenü „Target“ den Parameter aus, den Sie modulieren möchten.
Kapitel 3 ES2 56
2 Wählen Sie im Einblendmenü „Source“ den Parameter aus, den Sie für die Modulation des Ziels
verwenden möchten.
3 Bewegen Sie den Schieberegler „Intensity“, um eine feste Intensität für die Modulation festzulegen.
Wenn „via“ aktiv ist, legt dieser Schieberegler die minimale Modulationsintensität fest.
Modulations-Routing umgehen (Bypass)
mm Klicken Sie auf die Taste „b/p“ ganz oben rechts im Modulations-Routing neben dem Parameter
„Target“.
Der Parameter „Bypass“ (b/p) aktiviert oder deaktiviert Modulationswege, ohne deren
Einstellungen einzubüßen.
Steuern der Modulationsintensität des ES2 mit „via“-Quellen
In einem einfachen Modulations-Routing aus Ziel und Quelle können Sie eine feste
Modulationsintensität einrichten, indem Sie den Schieberegler „Intensity“ rechts
neben dem Routing vertikal verschieben. Dieser Reglerwert definiert immer eine
konstante Modulationsintensität.
Sie können eine weitere Modulationsquelle aus dem Einblendmenü „via“ auswählen, das die
Modulationsintensität steuert.
Wenn Sie einen anderen Wert als „off“ für „via“ auswählen, wird der Schieberegler „Intensity“ in
zwei Hälften unterteilt. Jede dieser Hälften verfügt nun über ein eigenes Pfeilsymbol.
•• Die obere Hälfte des Schiebereglers bestimmt die maximale Modulationsintensität bei voll aufgedrehtem
via-Regler.
•• Die untere Hälfte des Reglers bestimmt die minimale Modulationsintensität, wenn der „via“-
Regler (z. B. das Modulationsrad) ganz heruntergedreht ist.
•• Der Bereich zwischen den beiden Reglerhälften markiert den Modulationsbereich des
via-Reglers.
Kapitel 3 ES2 57
Modulations-Routing erzeugen, das eine „via“-Quelle enthält
1 Wählen Sie im Einblendmenü „Target“ ein Modulationsziel aus.
2 Wählen Sie im Einblendmenü „Source“ eine Modulationsquelle aus.
3 Wählen Sie über das Einblendmenü „via“ die Modulationsquelle aus, die Sie für die Regelung der
Modulationsintensität verwenden möchten.
4 Bewegen Sie die obere Pfeilspitze des Intensity-Schiebereglers rechts vom Modulations-Routing
in vertikaler Richtung, um die maximale Modulationsintensität einzustellen.
5 Bewegen Sie die untere Pfeilspitze des Intensity-Schiebereglers in vertikaler Richtung, um die
minimale Modulationsintensität einzustellen.
Bereich „via“ als Ganzes bewegen
mm Bewegen Sie den Bereich vertikal (den Bereich zwischen den beiden Reglerhälften).
Kapitel 3 ES2 58
Beide Pfeilspitzen bewegen sich gemeinsam.
Wenn der Bereich zu klein ist, um ihn bewegen zu können, bewegen Sie mit der Maus einen
nicht benutzten Bereich des Schiebereglers „Intensity“, um den Bereich zu bewegen.
Modulationsintensität auf Null setzen
mm Klicken Sie auf das Symbol mit der Null neben dem „via“-Parameter.
Effekt der via-Modulationsquelle umkehren
mm Klicken Sie auf den Parameter „via invert (inv)“ rechts neben dem „via“-Parameter.
ES2 LFOs
ES2 LFO – Übersicht
Der ES2 integriert zwei LFOs mit mehreren Wellenformen. Beide stehen als Quellen im Router
zur Auswahl.
Der LFO 1 ist polyphon, d. h. die Modulationen der einzelnen Stimmen sind nicht phasenstarr.
Außerdem ist der LFO 1 zum Tastenanschlag synchronisiert: Jedes Mal, wenn Sie eine Taste
anschlagen, startet die LFO 1 Modulation der entsprechenden Stimme von Null.
Um diese nicht phasenstarre Charakteristik besser zu verstehen, stellen Sie sich vor, dass ein
Akkord auf der Klaviatur gespielt wird. Wenn LFO 1 beispielsweise zur Pitch-Modulation genutzt
wird, könnte die Tonhöhe einer Stimme nun steigen, während sie bei einer anderen Stimme fällt
und bei einer dritten Stimme ihren Maximalwert erreicht. Das heißt, die Modulation ist unabhängig
für jede Stimme bzw. Note.
Die Key-Sync-Funktion stellt sicher, dass der LFO-Zyklus immer bei Null beginnt, wodurch die
Modulation konsistenter wird. Wenn die LFO-Wellenformdurchgänge nicht in dieser Form synchronisiert
werden, klingen einzelne Noten-Modulationen unsauber.
•• LFO 1 ist für die Regelung der Tonhöhe aller drei Oszillatoren vorkonfiguriert. Er kann gleichzeitig
für die Modulation anderer Parameter verwendet werden.
•• Der LFO 1 kann dank eines eingebauten Hüllkurvengenerators auch automatisch ein- oder
ausgeblendet werden.
•• Der LFO 2 ist monophon, d. h. die Modulation ist für alle Stimmen gleich. Stellen Sie sich
beispielsweise vor, dass ein Akkord auf dem Keyboard gespielt wird. Wenn LFO 2 zur
Pitch-Modulation genutzt wird, steigt und fällt die Tonhöhe aller Stimmen in dem gespielten
Akkord synchron. Der LFO 2 eignet sich besonders zum Erzeugen von rhythmischen
Modulationseffekten, die auch während der Änderungen des Projekttempos im Takt bleiben.
Kapitel 3 ES2 59
LFO-Parameter
•• Schieberegler „LFO 1 EG“: Bewegen Sie den Schieberegler, um zu bestimmen, wie lange es
dauert, bis die LFO-Modulation ein- oder ausgeblendet wird. Der Wert wird in Millisekunden
unterhalb des Reglers angezeigt. Klicken Sie auf die Null, um den Hüllkurvengenerator LFO
1 auszuschalten.
•• Schieberegler „LFO 1 Rate“: Verschieben Sie den Schieberegler, um die Frequenz
(Geschwindigkeit) der Modulation von LFO 1 einzustellen. Der Wert wird in Hertz (Hz) unterhalb
des Reglers angezeigt.
•• Tasten „LFO 1 Wave“: Wählen Sie die Wellenform aus, die durch LFO 1 verwendet wird. Weitere
Informationen finden Sie unter LFO-Wellenformen im ES2 auf Seite 59.
•• Schieberegler „LFO 2 Rate“: Verschieben Sie den Schieberegler, um die Frequenz der
Modulation von LFO 2 einzustellen. LFO 2 kann mit dem Tempo der Host-Anwendung
synchronisiert werden.
LFO-Wellenformen im ES2
Wählen Sie eine Wellenform für LFO 1 oder LFO 2 mit den Tasten „LFO Wave“ aus. Die Tabelle
unten erklärt, welche Auswirkungen diese Wellenformen auf Klänge haben.
Tipp: Probieren Sie diese Wellenformen mit einem aktiven Modulations-Routing für Pitch123
(Tonhöhe aller drei Oszillatoren) aus.
Wellenform Anmerkungen
Dreieck Geeignet für Vibrato-Effekte
Sägezahn Geeignet für Helikopter- und Space-Gun-Sounds. Intensive
Modulationen der Oszillator-Frequenzen durch den negativen
Sägezahn führen zu einem Blubbern. Intensive Sägezahn-Modulationen
für „Cutoff“ und „Resonance“ im Lowpass-Filter sorgen für rhythmische
Effekte. Die umgekehrte Sägezahn-Wellenform stellt einen unterschiedlichen
Startpunkt für den Modulationszyklus bereit.
Rechteck Rechteckwellen bewirken ein regelmäßiges Wechseln des LFO zwischen
zwei Werten. Die obere Einstellung wechselt zwischen einem positiven
Wert und dem Wert Null. Die untere schwankt zwischen einem
positiven und negativen Wert gleichen Betrags oberhalb/unterhalb
von Null. Ein interessanter Effekt ergibt sich übrigens, wenn Sie die
Modulationsintensität einer Modulation von Pitch123 so bemessen, dass
die Tonhöhe immer um den Wert einer musikalischen Quinte hin- und
herspringt. Hierfür bietet sich die obere der beiden Rechteckwellen an.
Sample & Hold Die unteren zwei LFO-Wellenformen geben zufällige Werte aus. Diese
werden in regelmäßigen Zeitabständen ausgegeben, die durch die
LFO-Frequenz bestimmt werden. Die obere Zufalls-Wellenform springt
zwischen Zufallswerten um, schaltet also direkt zwischen diesen Werten
um. Die untere Zufalls-Wellenform wird geglättet, was zu gleitenden
Änderungen der Werte führt. Der Begriff „Sample & Hold“ (S & H) leitet
sich von einem technischen Verfahren ab, bei dem einem Rauschsignal
in regelmäßigen Zeitabständen Proben (Samples) entnommen werden.
Die Spannung dieser Samples wird dann bis zur Entnahme des nächsten
Samples gehalten.
Tipp: Eine zufällige Modulation von Pitch123 führt zu einem Effekt, der
unter dem Namen „Zufallstonmustergenerator“ oder „Sample & Hold“
bekannt ist. Probieren Sie eine sehr schnelle und intensive Modulation
sehr hoher Noten aus. Sie kennen diesen Sound-Effekt aus vielen
Science-Fiction-Filmen.
Kapitel 3 ES2 60
ES2-LFOs verwenden
Mit den ES2 LFO s erzeugen Sie verzögerte Modulationen, freie Modulationen und
Modulationen, die mit Ihrem Hostprogramm synchronisiert werden.
LFO 1-Modulations-Fade-Zeit einstellen
mm Blenden Sie die LFO-Modulation wie folgt ein: Wählen Sie einen positiven Wert für „LFO 1 EG“ aus.
Je höher der Wert, desto länger ist die Verzögerungszeit.
mm Blenden Sie die LFO-Modulation wie folgt aus: Wählen Sie einen negativen Wert für „LFO 1 EG“ aus.
Sie erfolgt umso schneller, je weiter Sie den Regler nach unten bewegen.
Verzögertes Vibrato erzeugen
LFO-Hüllkurven werden oft für ein verzögert einsetzendes Vibrato verwendet. Viele
Instrumentalisten und Sänger intonieren jede längere Note so.
1 Bewegen Sie den Regler „LFO 1 EG“ in die obere Hälfte (Delay) und modulieren Sie im Router das
Target „Pitch123“ durch die Source „LFO1“.
2 Belassen Sie es bei einer sehr dezenten Modulationsintensität.
3 Wählen Sie eine „Rate“ für LFO 1 von ungefähr 5 Hz.
4 Wählen Sie als Wellenform des LFO 1 die Dreieckwelle.
Freie Rate für LFO 2 einstellen
mm Wählen Sie einen Wert in der oberen Hälfte des Schiebereglerbereichs von „LFO 2 Rate“ aus, um
LFO 2 frei zu betreiben.
Die Rate wird in Hertz angezeigt.
Rate für LFO 2 mit dem Song-Tempo synchronisieren
mm Wählen Sie einen Wert in der unteren Hälfte des Schiebereglerbereichs von „LFO 2 Rate“ aus, um
LFO 2 mit dem Host-Anwendungstempo zu synchronisieren.
Die Geschwindigkeit (“Rate“) wird in rhythmischen Werten angezeigt (wenn die Synchronisation
zum Projekttempo aktiviert ist).
Der Wertebereich erstreckt sich von einer 64stel-Note bis hin zu 32 Takten. Triolische und punktierte
Notenwerte sind ebenfalls verfügbar.
ES2-Hüllkurven
ES2-Hüllkurven – Übersicht
Jede Stimme im ES2 verfügt über drei Hüllkurvengeneratoren. Diese werden auf der
Bedienoberfläche und im Router als „ENV 1“, „ENV 2“ und „ENV 3“ angezeigt. Zusätzlich enthält
der ES2 die ausgeklügelte Vector-Hüllkurve. Weitere Informationen finden Sie unter Verwenden
der Vector-Hüllkurve.
Die Herkunft des Begriffs „Hüllkurvengenerator“ und seine Funktionsweise sind unter Amplifier-
Hüllkurve – Überblick auf Seite 452 erläutert.
Kapitel 3 ES2 61
Die Parameter von ENV 2 und ENV 3 sind identisch. ENV 3 bestimmt stets den Pegelverlauf einer
jeden Note. ENV 3 ist gewissermaßen mit dem Modulationsziel „AMP“ des Routers fest verdrahtet.
ENV 2 regelt die Cutoff-Frequenz von beiden ES2-Filtern.
Hinweis: Alle Hüllkurven können zum gleichzeitigen Regeln mehrerer Parameter
verwendet werden.
Hüllkurve 1 von ES2
Obwohl Hüllkurve 1 (ENV 1) einfach wirkt, ist sie für eine ganze Reihe von
Synthesizer-Funktionen nützlich.
Decay/Release Mode
button
Trigger Modes menu
Attack via Velocity slider
Parameter von Hüllkurve 1
•• Einblendmenü „Trigger Modes“: Wählen Sie einen Modus aus, um das Trigger-Verhalten von
ENV 1 zu definieren.
•• Poly: Der Hüllkurvengenerator verhält sich so, wie man es von einem modernen polyphonen
Synthesizer erwartet: Jede Stimme hat ihre eigene Hüllkurve.
•• Mono Ein einzelner Hüllkurvengenerator moduliert alle Stimmen auf dieselbe Weise.
Alle Noten müssen abgesetzt werden, bevor die Hüllkurve neu ausgelöst (getriggert)
werden kann. Beim Legato-Spiel oder wenn mindestens eine Taste gedrückt ist, wird der
Hüllkurvenverlauf nicht neu gestartet.
•• Retrig: Ein einzelner Hüllkurvengenerator moduliert alle Stimmen auf dieselbe Weise. Die
Hüllkurve wird durch jede angeschlagene Note neu ausgelöst, auch wenn andere Noten
gehalten werden. Alle bereits gehaltenen Noten sind von der neu ausgelösten Hüllkurve
gleichermaßen betroffen.
•• Schieberegler „Attack via Velocity“: Der Regler für die Attack-Zeit ist zweigeteilt. Der untere
Schieberegler bestimmt die Attack-Zeit bei hartem Anschlag (Maximum). Der obere
Schieberegler bestimmt die Attack-Zeit bei sanftem Anschlag (Minumum). Bewegen Sie
den Zeiger bei gedrückter Maustaste im Bereich zwischen den Reglerhälften, um so beide
Reglerhälften gleichzeitig zu bewegen. Wenn dieser Abschnitt zu klein ist, klicken Sie auf einen
unbenutzten Bereich des Reglerwegs und verschieben Sie ihn vertikal.
•• Modustaste „Decay/Release“: Schaltet ENV 1 zwischen einer Attack/Decay- oder einer Attack/
Release-Hüllkurve um. Die Tastenbezeichnung ändert sich, um den jeweils aktivierten Modus
wiederzugeben (D=Decay, R=Release).
•• Im Attack/Decay-Modus: Der Pegel fällt nach Ablauf der Attack-Phase auf Null ab, ganz gleich,
ob die Note gehalten wird oder nicht. Dies erfolgt bei gleicher Geschwindigkeit, auch wenn
die Taste losgelassen wird. Die Decay-Zeit wird mit dem Regler „D“ (Decay) bestimmt.
•• Im Attack/Release-Modus: Die Hüllkurve verharrt nach Ablauf der Attack-Phase auf ihrem
vollen Pegel, solange die Taste gehalten wird. Nach dem Loslassen der Taste fällt der Pegel
über den Zeitraum ab, der mit dem Regler „R“ (Release) festgelegt ist.
Kapitel 3 ES2 62
Hüllkurven ENV 2 und 3 des ES2
Die Ausstattung von ENV 2 und ENV 3 ist identisch, allerdings ist ENV 3 stets für den Pegelverlauf
der Note zuständig, um die Dynamikstufe zu modulieren. ENV2 ist für das Regeln der Cutoff-
Frequenz von beiden Filtern vorkonfiguriert.
Sowohl ENV 2 als auch ENV 3 können auch gleichzeitig als Quellen im Router verwendet werden.
Die Zeitparameter stehen auch als Modulationsziele (Targets) im Router zur Verfügung.
Attack Time slider is
divided into two halves
that determine the attack
time at maximum and
minimum velocities.
Click the center symbol
to set the Sustain Time
slider to its center value.
Sustain Time and
Sustain Level are set
independently in the ES2.
Parameter von Hüllkurve 2 und 3
•• Schieberegler „Attack“: Bestimmt die Zeit, in der der Pegel einer Note von der Amplitude Null
bis zur eingestellten Amplitude ansteigt. Die Attack-Drehregler der Hüllkurven ENV 2 und ENV
3 sind zweigeteilt.
•• Die untere Hälfte des Reglers bestimmt die Attack-Zeit bei hartem Anschlag (Velocity = 127).
Die obere Hälfte des Reglers bestimmt die Einschwingzeit bei sanftem Anschlag
(Velocity = 1).
Bewegen Sie den Zeiger bei gedrückter Maustaste im Bereich zwischen den Reglerhälften, um
so beide Reglerhälften gleichzeitig zu bewegen. Wenn dieser Abschnitt zu klein ist, klicken Sie
auf einen unbenutzten Bereich des Reglerwegs und verschieben Sie ihn vertikal.
•• Schieberegler „Decay“: Bestimmt die Zeit, in der der Pegel einer gehaltenen Note nach
Beendung der Attack-Phase auf den Sustain-Pegel zurückfällt.
•• Ist für „Sustain“ der maximale Wert gewählt, hat „Decay“ keinen Effekt.
•• Ist für „Sustain“ der minimale Wert gewählt, definiert „Decay“ die Dauer oder Ausschwingzeit
der Note.
•• Schieberegler „Sustain“ und „Sustain Time“: Die zwei Sustain-Parameter beeinflussen sich gegenseitig.
Der eine steuert den Sustain-Pegel, während der andere die Sustain-Dauer festlegt.
Weitere Informationen finden Sie unter Sustain-Parameter von Hüllkurve 2 und 3 des ES2 auf
Seite 63.
•• Schieberegler „(R) Release Time“: Bestimmt die Zeit, in der der (Sustain-)Pegel nach dem
Loslassen der Taste auf den Wert Null fällt.
•• Schieberegler „Vel“ (Velocity Sensitivity): Bestimmt die Anschlagsdynamik der gesamten
Hüllkurve. In der maximalen Einstellung gibt die Hüllkurve nur bei maximalem Anschlag ihren
vollen Pegel aus. Bei weicherem Anschlag ändern sich die Hüllkurvenpegel proportional: Bei
einer Anschlagsstärke von 50 % wird auch jeder Parameter für den Hüllkurvenpegel halbiert.
Kapitel 3 ES2 63
Sustain-Parameter von Hüllkurve 2 und 3 des ES2
Wenn für den Schieberegler des Zeitparameters „Sustain Time“ der Mittelwert gewählt
wurde, verhält sich der Sustain-Pegel-Schieberegler (S) wie der von ADSR-Hüllkurven anderer
Synthesizer.
In diesem Fall definiert der Sustain-Pegel-Schieberegler den Pegel, auf dem der Ton bis zum
Loslassen der Taste verharrt, nachdem die Attack- und Decay-Phasen abgelaufen sind.
Mit dem Regler „Sustain“ wird die Zeit bestimmt, die der Pegel benötigt, um vom Sustain-Pegel
auf Null abzufallen oder wieder bis zum Maximum anzusteigen:
•• Einstellungen in der unteren Hälfte des Reglers „Sustain Time“ (Fall) bestimmen die Zeit, die
benötigt wird, bis der Pegel vom Sustain-Pegel auf Null abfällt. Je niedriger der Regler eingestellt
ist, desto schneller fällt der Pegel ab.
•• Einstellungen in der oberen Hälfte (Rise) bestimmen die Zeit, die benötigt wird, bis der Pegel
vom Sustain-Level bis zum Maximum ansteigt. Je höher der Regler eingestellt ist, desto schneller
steigt der Pegel an.
Instrumentenverhalten über Decay-Modulation der Hüllkurve emulieren
1 Legen Sie das folgende Modulations-Routing fest: Modulationsziel „Env3Dec“, Quelle „Kybd“.
2 Vergewissern Sie sich, dass der Schieberegler „Intensity“ auf einen negativen Wert eingestellt ist.
3 Passen Sie die Einstellungen für Env3 an.
Dieses Routing simuliert das Verhalten von Pianos und Zupfinstrumenten, bei denen hohe Noten
schneller abfallen als niedrige Noten.
Verwenden der Vector-Hüllkurve
Bei der Vector-Hüllkurve handelt es sich um eine loopfähige Multipoint-Steuerquelle. Sie dient
ausschließlich zur Echtzeitsteuerung der Zeigerbewegungen in der Oszillatoren-Mischstufe
(Dreieck) sowie des Planar Pads. Die Vector-Hüllkurve nutzt ebenfalls den Platz, der durch den
Modulations-Router in Anspruch genommen wird.
Jede wiedergegebene Stimme verfügt über eine eigene Vector-Hüllkurve, die mit dem Beginn
einer jeden Note neu ausgelöst (getriggert) wird.
Möglicherweise ist die Vector-Hüllkurve – ebenso wie Planar Pad und Triagle – nicht gleich verständlich.
Durch Experimentieren kann jedoch schnell herausgefunden werden, wie einfach diese
Funktionen verwendet werden können. Durch die Kombination mit anderen Synthese-Optionen
können Sie einzigartige Sounds erzeugen, die sich – im wahrsten Sinn des Wortes – bewegen.
Vector Mode
Planar Pad
Targets
Env Mode Loop Mode Loop Rate Time Scaling
Solo Point
Vector Envelope Curve Triangle Planar Pad
Kapitel 3 ES2 64
Vector-Hüllkurve anzeigen
mm Klicken Sie auf die Taste „Vector Envelope“ rechts neben dem Router, um die
Vector-Hüllkurve anzuzeigen.
Vector-Hüllkurve ein- oder ausschalten
mm Aktivieren der Vector-Hüllkurve: Deaktivieren Sie die Taste „Solo Point“.
mm Dektivieren der Vector-Hüllkurve: Aktivieren Sie die Taste „Solo Point“.
Wenn „Solo Point“ aktiviert ist, sind nur die aktuell eingestellten Positionen für Triangle und
Planar Pad aktiv.
Planar Pad und Triangle mit der Vector-Hüllkurve regeln
mm Wählen Sie im Einblendmenü „Vector Mode“ das Ziel für die Vector-Hüllkurve aus – Planar Pad,
Triangle oder beide.
•• Off: Die Vector-Hüllkurve steuert weder Triangle noch Planar Pad. Sie ist vollständig abgeschaltet.
Sie können die Zeigersymbole für Triangle und Planar Pad manuell einstellen.
•• Mix: Die Vector-Hüllkurve steuert Triangle, jedoch nicht Planar Pad.
•• XY: Die Vector-Hüllkurve steuert Planar Pad, jedoch nicht Triangle.
•• Mix+XY: Die Vector-Hüllkurve steuert sowohl Triangle als auch Planar Pad.
Kontextmenü der Vector-Hüllkurve verwenden
1 Klicken Sie mit der rechten Maustaste bzw. bei gedrückter Taste „Ctrl“ auf eine beliebige Stelle in
der Vector-Hüllkurve, um ein Kontextmenü mit Befehlen und Funktionen zu öffnen.
2 Wählen Sie eine beliebige Option in dem Menü, um den Vorgang auszuführen.
Punkte, Zeiten und Loops der Vector-Hüllkurve
Vector-Hüllkurvenpunkten verwenden
Die Zeitachse der Vector-Hüllkurve verläuft von links nach rechts.
Loop point is shown on
row below time axis.
Sustain point is shown
on row above time axis.
Vector Envelope
time axis
Point 1
Point time value shown
in milliseconds (ms).
Auf der Zeitachse können bis zu 16 Punkte dargestellt werden (in der Abbildung oben werden
10 angezeigt). Jeder Punkt kann die Positionen der Zeigersymbole in Triangle und Planar
Pad steuern.
Die Punkte sind von links nach rechts entlang der Zeitachse fortlaufend nummeriert.
Es sind immer mindestens drei Punkte: Punkt 1 ist der Startpunkt, Punkt 2 ist als Sustain-Punkt
definiert und Punkt 3 ist der Endpunkt.
Kapitel 3 ES2 65
Jeder beliebige Punkt kann zum Sustain-Punkt erklärt werden. Wenn eine gespielte Note ausreichend
lange gehalten wird und kein Loop aktiv ist, stoppt jede Hüllkurvenbewegung, sobald
der Sustain-Punkt erreicht ist. Der Sustain-Punkt wird so lange gehalten, bis die Taste losgelassen
wird (bis zum MIDI-Note-Off-Befehl).
Jeder beliebige Punkt kann zum Loop-Punkt erklärt werden. Der geloopte Bereich ist der Bereich
zwischen Sustain- und Loop-Punkt. Zwischen diesen Punkten können Sie weitere Punkte anlegen,
welche die Bewegungen der Zeigersymbole im Planar Pad und Triangle beschreiben.
Je mehr Punkte Sie definieren, desto komplexer können Sie den Hüllkurvenverlauf gestalten.
Punkt auswählen
mm Klicken Sie auf den Punkt, um ihn auszuwählen.
Jetzt können Sie ihn bearbeiten.
Neuen Punkt erzeugen
mm Klicken Sie bei gedrückter Umschalttaste zwischen zwei Punkte.
Dabei wird der Bereich zwischen den beiden bereits vorhandenen Punkten an der angeklickten
Position geteilt. Die Summe der beiden neuen Segmentzeiten entspricht dabei der
ursprünglichen Segmentzeit. Dies gewährleistet, dass alle nachfolgenden Punkte ihre absoluten
Zeitpositionen beibehalten. Bereits angelegte Positionen der Zeigersymbole für Triangle und
Planar Pad werden fixiert, wodurch sichergestellt ist, dass neu erzeugte Punkte keine Auswirkung
auf bestehende Bewegungen haben.
Punkt löschen
mm Klicken Sie bei gedrückter Taste „Ctrl“ auf den Punkt.
Zum Standardwert für einen Punkt zurückkehren
Führen Sie einen der folgenden Schritte aus:
mm Halten Sie die Wahltaste gedrückt und klicken Sie auf Triangle.
Der Zeiger wird auf die Mittelposition von Triangle zurückgesetzt, wobei alle Oszillatoren auf
demselben Pegel bleiben.
mm Klicken Sie bei gedrückter Wahltaste auf Planar Pad.
Der Zeiger wird auf die Mittelposition von Planar Pad zurückgesetzt. Die Werte für X und Y
werden auf Null gesetzt.
Solo- und Sustain-Punkte der Vector-Hüllkurve verwenden
Sie verwenden die Taste „Solo Point“, um die Vector-Hüllkurve ein- oder auszuschalten. Wenn die
Taste „Solo Point“ eingeschaltet ist, finden keine dynamischen Modulationen durch die Vector-
Hüllkurve statt. In diesem Szenario sind die aktuell sichtbaren Zeigerpositionen in Triangle und
Planar Pad dauerhaft aktiv. Dabei handelt es sich um die Zeigerpositionen des aktuell ausgewählten
Punkts auf der Vector-Hüllkurve.
Wenn Sie einen anderen Punkt der Vector-Hüllkurve durch Klicken auswählen, werden die
Zeigerpositionen in Triangle und Planar Pad auf Ihre Auswahl aktualisiert. Wenn die Taste „Solo
Point“ eingeschaltet ist, dann ist dieser neu ausgewählte Punkt der Solo-Punkt.
Hinweis: Sie können die Vector-Hüllkurvenmodulation des Planar Pads unabhängig abschalten,
indem Sie den Vector-Modus auf „off“ einstellen. Weitere Informationen finden Sie unter
Verwenden der Vector-Hüllkurve.
Kapitel 3 ES2 66
Jeder beliebige Punkt kann zum Sustain-Punkt erklärt werden. Wenn die Note ausreichend
lang gehalten wird und kein Loop aktiviert ist, bleibt die Hüllkurve beim Sustain-Punkt
stehen. Der Sustain-Punkt wird so lange gehalten, bis die Taste losgelassen wird (bis zum
MIDI-Note-Off-Befehl).
Punkt als Sustain-Punkt definieren
mm Klicken Sie oberhalb des ausgewählten Punkts auf die türkise Leiste.
Der Sustain-Punkt wird durch ein „S“ auf der türkisen Leiste zwischen Punkt und entsprechender
Nummer angezeigt.
Vector-Hüllkurven-Loops einrichten
Die Vector-Hüllkurve kann im One-Shot-Modus durchlaufen, solange die Note gehalten wird.
Alternativ kann sie so eingestellt werden, dass sie eine definierte Anzahl von Wiederholungen
durchläuft oder unendlich wiederholt wird – ähnlich wie eine LFO-Modulation. Erzeugt werden
diese Wiederholungen mit den Loop-Funktionen.
Obwohl die Loop-Parameter möglicherweise an die Schleifenparameter erinnern, die Sie im
Zusammenhang mit Samples kennengelernt haben, gibt es jedoch erhebliche Unterschiede.
Die Vector-Hüllkurve gibt lediglich Steuersignale aus, die zur Bewegung der Zeigersymbole in
Triangle und Planar Pad benutzt werden. Die Audiosignale des ES2 werden keinesfalls geloopt.
Jeder beliebige Punkt kann zum Loop-Punkt erklärt werden. Vorausgesetzt die Note wird lange
genug gehalten, können Abschnitte der Hüllkurve wiederholt oder geloopt werden.
Der geloopte Bereich ist der Bereich zwischen Sustain- und Loop-Punkt. Zwischen diesen
Punkten können Sie nun weitere Punkte definieren, welche die Bewegungen der Zeigersymbole
in Triangle und Planar Pad beschreiben.
Punkt als Loop-Punkt definieren
mm Klicken Sie unterhalb des ausgewählten Punkts auf die türkise Leiste.
Der Loop-Punkt wird durch ein L in der unteren Leiste angezeigt.
Loop-Modus der Vector-Hüllkurve einstellen
mm Wählen Sie einen der folgenden Loop-Modi für die Vector-Hüllkurve aus: „Off“, „Forward“,
„Backward“ und „Alternate“.
•• Off: Wenn „Loop Mode“ auf „Off“ steht, läuft die Vector-Hüllkurve ohne Wiederholung von
Anfang bis Ende ab, insofern der Ton lang genug gehalten wird, um alle Hüllkurvenphasen zu
durchlaufen. Die übrigen Loop-Parameter werden deaktiviert.
Kapitel 3 ES2 67
•• Forward: Wenn „Loop Mode“ auf „Forward“ gesetzt ist, durchläuft die Vector-Hüllkurve all ihre
Punkte vom Anfang bis zum Sustain-Punkt, um von dort den Bereich zwischen Sustain-Punkt
und Loop-Punkt zyklisch von vorne zu wiederholen.
•• Backward: Wenn „Loop Mode“ auf „Backward“ gesetzt ist, durchläuft die Vector-Hüllkurve all
ihre Punkte vom Anfang bis zum Sustain-Punkt, um von dort den Bereich zwischen Sustain-
Punkt und Loop-Punkt zyklisch von hinten zu wiederholen.
•• Alternate: Wenn „Loop Mode“ auf „Alternate“ gesetzt ist, läuft die Vector-Hüllkurve vom
Anfang bis zum Sustain-Punkt und schaltet dann periodisch vor zum Loop-Punkt und dann
wieder zurück zum Sustain-Punkt – wobei die Bewegungsrichtung zwischen „Forward“ und
„Backward“ wechselt.
Click here to choose a
Loop mode.
Loop-Rate der Vector-Hüllkurve einstellen
Führen Sie einen der folgenden Schritte aus:
mm Verschieben Sie die grüne Markierung in der Mitte des Loop-Rate-Balkens nach links oder rechts.
mm Verschieben Sie das Feld „as set“ vertikal (vgl. Abbildung unten).
Der Loop der Vector-Hüllkurve kann mit definierter Geschwindigkeit den Zyklus durchlaufen. Er
kann auch mit dem Tempo der Host-Anwendung synchronisiert werden.
•• As set: Wenn Sie den Parameter „Loop Rate“ auf „as set“ setzen, entspricht die Länge der
Schleife der Summe der Zeiten zwischen Sustain- und Loop-Punkt. Klicken Sie auf das Feld „as
set“ unterhalb des Reglers „Rate“, um diese Funktion auszuwählen.
•• Rhythmic: Wenn Sie den Parameter „Loop Rate“ auf einen rhythmischen Wert (sync) einstellen,
indem Sie die Loop-Rate-Markierung in die linke Hälfte des Regelwegs verschieben, folgt
die Loop Rate dem Projekttempo. Der Wertebereich erstreckt sich von 32 Takten bis zum
Notenwert einer 64stel Triole.
•• Free: Sie können auch eine freie Loop Rate einstellen, indem Sie die Loop-Rate-Markierung
in die rechte Hälfte des Regelwegs (free) verschieben. Der Wert gibt an, wie viele
Schleifendurchgänge pro Sekunde erfolgen.
Hinweis: Wenn die Loop Rate nicht auf „as set“ steht, werden bei aktiviertem Loop Mode
(„Forward“, „Backward“ oder „Alternate“) die Zeiten der Segmente zwischen Loop- und
Sustain-Punkt sowie ggf. die Zeit „Loop Smooth“ anstatt in Millisekunden in Prozent der
Schleifendauer angezeigt.
Weiche Loop-Übergänge für die Vector-Hüllkurve einstellen
mm Wenn Sie für „Loop Mode“ den Wert „Forward“ oder „Backward“ gewählt haben, gibt es einen
Übergang vom Sustain-Punkt zum Loop-Punkt. Aktivieren Sie „Loop Smooth“, um diesen
Übergang auszugleichen und abrupte Positionsänderungen zu vermeiden.
•• Wenn „Loop Rate“ auf „Sync“ oder „Free“ steht, wird die Loop-Smooth-Zeit in Prozent der
Loop-Dauer angegeben.
Kapitel 3 ES2 68
•• Wenn „Loop Rate“ auf „as set“ eingestellt ist, wird die Loop-Smooth-Zeit in Millisekunden (ms)
angegeben.
Loop-Anzahl für eine Vector-Hüllkurve festlegen
mm Der Loop-Durchgang der Vector-Hüllkurve kann eine festgelegte Anzahl von Malen wiederholt
werden. Gemäß der festgelegten Anzahl an Wiederholungen läuft die Vector-
Hüllkurve vom Sustain-Punkt weiter. Mögliche Werte sind „1“ bis „10“ sowie „infinite“ für die
unendliche Wiederholung.
Verhalten der Release-Phase der Vector-Hüllkurve
Im Menü „Env Mode“ stehen zwei Optionen für die Release-Phase zur Auswahl: „Normal“ und
„Finish“.
Wenn im Menü „Env Mode“ der Modus „Normal“ ausgewählt ist und Sie eine gehaltene Taste
loslassen (Note-Off-Befehl), geht die Vector-Hüllkurve in die Release-Phase über (die Phase nach
dem Sustain-Punkt). Das heißt, dieser Übergang in die Release-Phase erfolgt von dem Punkt der
Vector-Hüllkurve aus, an dem Sie die Taste losgelassen haben. Daraus ergeben sich folgende
Möglichkeiten:
•• Ist die Loop-Funktion ausgeschaltet, wird der Sustain-Punkt bei Erreichen so lange gespielt,
wie Sie eine Taste gedrückt halten.
•• Ist die Loop-Funktion aktiviert und liegt der Loop-Punkt vor dem Sustain-Punkt, wird die Loop
(Schleife) so lange gespielt, wie Sie eine Taste gedrückt halten.
•• Ist die Loop-Funktion aktiviert und liegt der Loop-Punkt hinter dem Sustain-Punkt, wird der
Vector-Hüllkurven-Loop so lange in der Schleife gespielt, bis die gesamte Release-Phase des
Sounds abgeschlossen ist, die mit dem Parameter „ENV 3 Release“ festgelegt ist.
Wenn für „Env Mode“ der Modus „Finish“ ausgewählt ist und Sie eine gedrückte Taste loslassen,
geht die Vector-Hüllkurve nicht sofort in die Release-Phase über. Stattdessen vollzieht sie ihren
eingestellten Verlauf bis zum Endpunkt, unabhängig davon, ob Sie die Taste loslassen oder
halten. Daraus ergeben sich folgende Möglichkeiten:
•• Ist die Loop-Funktion ausgeschaltet, wird der Sustain-Punkt ignoriert. Die Vector-Hüllkurve
durchläuft unabhängig davon, ob Sie die Taste halten oder loslassen, alle Punkte bis
zum Endpunkt.
•• Ist die Loop-Funktion eingeschaltet, vollzieht die Vector-Hüllkurve ihren eingestellten Verlauf
bis zum Erreichen des Loop-Punkts und spielt den Loop, bis der Endpunkt erreicht ist, unabhängig
davon, ob Sie die Taste loslassen oder halten. Dabei spielt es keine Rolle, ob der Loop-
Punkt vor oder hinter dem Sustain-Punkt liegt.
•• Ist die Loop-Funktion eingeschaltet und „Loop Count“ auf einen anderen Wert als „infinite“
eingestellt, läuft die Vector-Hüllkurve bis zu den nachfolgenden Punkten – nachdem sie die
eingestellten Loop-Schleifen absolviert hat. Ist „Loop Count“ hingegen auf „infinite“ gesetzt,
werden die Punkte nach der Schleife ignoriert.
Kapitel 3 ES2 69
Kurvenformen für die Übergangspunkte der Vector-Hüllkurve
Mit „Curve“ können Sie die Kurvenform zwischen den einzelnen Punkten bestimmen. Wählen Sie
aus neun konvexen und neun konkaven Kurvenformen aus, plus „hold+step“ und „step+hold,“
mit denen sprunghafte Modulationen möglich sind.
•• step+hold: Der Sprung findet zu Beginn des eingestellten Übergangs statt.
•• hold+step: Der Sprung findet zum Ende des eingestellten Übergangs statt.
Hinweis: Mit „hold+step“ lassen sich rhythmische Modulationen mit bis zu 15
Schritten verwirklichen.
Zeiten für die Vector-Hüllkurve festlegen
Bis auf den ersten Punkt, der mit dem Beginn der Note (dem Note-On-Befehl) zusammenfällt,
hat jeder Punkt einen Parameter „Time“. Dieser Parameter beschreibt die Dauer, in welcher die
Positionsmarkierung vom vorherigen zum aktuellen Punkt läuft. Die Zeiten werden normalerweise
in Millisekunden (ms) angegeben.
Zeitwert einstellen
mm Bewegen Sie den numerischen Wert bei gedrückter Maustaste in vertikaler Richtung.
Hinweis: Durch die Änderung des Zeitwerts ändern sich die absoluten Zeitpositionen aller nachfolgenden
Punkte.
Zeitwert ohne Änderung der absoluten Zeitpositionen der nachfolgenden Punkte einstellen
mm Verschieben Sie den Parameter „Time“ bei gedrückter ctrl-Taste, um die Laufzeit zum nächsten
Punkt zu verkürzen oder zu verlängern.
Die Zeiteinstellung des darauf folgenden Punkts wird gleichzeitig um den entsprechenden
Betrag angepasst. Dies bedeutet, dass dieser und die nachfolgenden Punkte ihre absoluten
Zeitpositionen beibehalten.
Verwenden der Zeitskalierung für die Vector-Hüllkurve
Sie können die gesamte Vector-Hüllkurve dehnen und stauchen. Um beispielsweise die
Geschwindigkeit der Vector-Hüllkurve zu verdoppeln, stellen Sie für die Zeitskalierung 50 % ein,
anstatt die Zeitwerte für jeden einzelnen Punkt zu halbieren.
Click here to change the
time scale.
•• Der Wertebereich für „Time Scaling“ reicht von 10 % bis 1000 %. Die Werte sind
logarithmisch skaliert.
•• Wenn für „Loop Rate“ der Wert „as set“ gewählt ist, beeinflusst die Skalierung auch den Loop.
•• Wenn für „Loop Rate“ ein freier oder gesyncter Wert gewählt wurde, nimmt der Parameter
„Time Scaling“ keinen Einfluss auf diese Einstellung.
Kapitel 3 ES2 70
Zeitskalierung und Loop-Rate mit „Fix Timing“ normalisieren
mm Klicken Sie auf „Fix Timing“, um den Wert für die Zeitskalierung mit allen Zeitparametern zu multiplizieren.
Die Zeitskalierung wird auf 100 % zurückgesetzt.
Es gibt keinen hörbaren Unterschied. Dabei handelt es sich einfach um
ein Normalisierungsverfahren.
Wenn „Loop Rate“ auf einen gesyncten Wert gesetzt wurde, schalten Sie die „Loop Rate“ durch
Klicken auf „Fix Timing“ auf „as set“, wodurch die absolute Rate erhalten bleibt.
Verwenden von Planar Pad
Das Planar Pad basiert auf den beiden Achsen X (horizontal) und Y (vertikal). Zwei benutzerdefinierte
Parameter können mit den X- und Y-Werten moduliert werden, damit Sie die Maus wie
einen Joystick verwenden können.
Die Achsen X und Y haben positive und negative Wertebereiche. Während Sie den Zeiger (das
Quadratsymbol) verschieben, werden permanent Werte für beide Achsen ausgegeben.
Vector Mode menu
Vector Intensity parameters
Vector Target menus
Planar Pad
Über die Target-Menüs für „Vector X“ und „Vector Y“ bestimmen Sie, welcher Parameter über
die Zeigerbewegungen im Planar Pad moduliert wird. Diese Modulationsziele sind mit den
im Router verfügbaren Modulationszielen identisch. Weitere Informationen finden Sie unter
Oszillator-Modulationsziele im ES2 auf Seite 71, Filter-Modulationsziele im ES2 und Weitere
ES2-Modulationsziele.
Die Position (Koordinaten) des Zeigers im Planar Pad steht auch im Router über die Einträge
„Pad-X“ und „Pad-Y“ in den Quellen und den via-Optionen zur Verfügung. Weitere Informationen
finden Sie unter Referenz der Modulationsquellen im ES2 auf Seite 75 und unter Steuern der
Modulationsintensität des ES2 mit „via“-Quellen auf Seite 56.
Die maximale Intensität, die Empfindlichkeit, aber auch die Polarität der Modulation bestimmen
Sie mit „Vector X Int“ und „Vector Y Int“.
Modulationsintensität festlegen
mm Ziehen Sie vertikal in den Int-Feldern für „Vector X“ und „Vector Y“.
Verwenden Sie einen negativen Wert, um die Polarität der Modulation umzukehren.
Kapitel 3 ES2 71
Referenz der Modulationsziele im ES2
Oszillator-Modulationsziele im ES2
Die folgende Tabelle zeigt alle Oszillator-relevanten Modulationsziele.
Target Anmerkungen
Pitch123 Moduliert die Frequenz (also die wahrgenommene Tonhöhe) aller drei
Oszillatoren. Ein LFO als Source führt bei diesem Target zu Vibratound
Sireneneffekten. Eine Hüllkurvenmodulation mit der Einstellung
Null für Attack, kurzem Decay, Null für Sustain und kurzem Release als
Quelle wird für synthetische Tomtom- und Kickdrum-Sounds benötigt.
Pitch 1 Moduliert die Frequenz (Tonhöhe) von Oszillator 1. Sehr dezente
Hüllkurvenmodulationen führen dazu, dass sich das Ausmaß der
Verstimmung gegenüber den anderen Oszillatoren mit der Zeit verändert,
wenn Oszillator 1 zusammen mit einem anderen (nicht modulierten)
Oszillator erklingt. Das gilt auch für andere Pitch-Ziele und ist
besonders für Synthesizer-Bläserklänge empfehlenswert.
Pitch 2 Moduliert die Frequenz (Tonhöhe) von Oszillator 2.
Pitch 3 Moduliert die Frequenz (Tonhöhe) von Oszillator 3.
Detune Moduliert das Ausmaß der Verstimmung zwischen allen drei
Oszillatoren. Bitte beachten Sie, dass die Empfindlichkeit für alle
Tonhöhen-Targets von der Modulationsintensität abhängt. Die
Abstufungen sind in der Liste unten aufgeführt und erlauben es
Ihnen, sehr dezente Vibrati im Cent-Bereich (1/100 Halbton) und große
Tonhöhensprünge im Oktavbereich zu erzeugen.
•• Modulationsintensität von 0 bis 8: Die Schrittweite beträgt 1,25 Cents.
•• Modulationsintensität von 8 bis 20: Die Schrittweite beträgt
3,33 Cents.
•• Modulationsintensität von 20 bis 28: Die Schrittweite beträgt
6,25 Cents.
•• Modulationsintensität von 28 bis 36: Die Schrittweite beträgt
12,5 Cents.
•• Modulationsintensität von 36 bis 76: Die Schrittweite beträgt
25 Cents.
•• Modulationsintensität von 76 bis 100: Die Schrittweite beträgt
100 Cents.
Daraus lassen sich folgende einfache Regeln für die
Modulationsintensität ableiten:
•• Eine Intensität von 8 entspricht einer Tonhöhenänderung von
10 Cent.
•• Eine Intensität von 20 entspricht einer Tonhöhenänderung von
50 Cent (ein Viertelton).
•• Eine Intensität von 28 entspricht einer Tonhöhenänderung von
100 Cent (ein Halbton).
•• Eine Intensität von 36 entspricht einer Tonhöhenänderung von
200 Cent (zwei Halbtöne).
•• Eine Intensität von 76 entspricht einer Tonhöhenänderung von
1.200 Cent (eine Oktave).
•• Eine Intensität von 100 entspricht einer Tonhöhenänderung von
3.600 Cent (drei Oktaven).
Kapitel 3 ES2 72
Target Anmerkungen
OscWaves Je nachdem, welche Wellenformen in den einzelnen Oszillatoren
gewählt wurden, modulieren Sie mit diesem Target:
•• Pulsbreite der Rechteck- oder Pulswelle
•• Intensität der Frequenzmodulation (nur Oszillator 1)
•• Klangfarbe des Rauschens (nur Oszillator 3)
•• Position der Digiwaves
„OscWaves“ wirkt auf alle Oszillatoren gleichzeitig.
Weitere Informationen zu den Effekten dieser Modulationen finden Sie
unter Pulsbreitenmodulation im ES2 auf Seite 36, Frequenzmodulation
im ES2 auf Seite 37, Verwenden des ES2-Noise-Generators auf Seite 39
und Verwenden von ES2-Digiwaves auf Seite 38.
Osc1Wave Je nachdem, welche Wellenform für Oszillator 1 ausgewählt ist,
können Sie die Impulsbreite von rechteckigen und Impulswellen, den
Umfang der Frequenzmodulation oder die Digiwave-Position steuern.
In klassischen FM-Synthesizern wird der FM-Umfang in Echtzeit von
Velocity-empfindlichen Hüllkurvengeneratoren gesteuert. Wählen Sie
hierfür eine der ENVs als Quelle.
Osc2Wave Wie Osc1Wave, außer dass Oszillator 2 keine FM bietet. Bitte beachten
Sie, dass die Pulsbreitenmodulation sogar mit der synchronisierten
und mit der ringmodulierten Rechteckwelle funktioniert.
Osc3Wave Siehe Osc1Wave und Osc2Wave; entsprechend für Oszillator 3, der
weder Ringmodulation noch FM bietet. Dafür kann die Klangfarbe
des Rauschens (Noise) von Oszillator 3 mit diesem Parameter
moduliert werden.
OscWaveB Die Übergänge zwischen Digiwaves während einer Wavetable-
Modulation (bei der Sie zwischen verschiedenen Digiwaves umschalten)
verläuft immer weich. Sie können die Form des Übergangs
mithilfe des Ziels „OscWaveB“ dauerhaft zwischen weich und hart
modulieren. Dieses Ziel gilt für alle Oszillatoren.
Osc1WaveB Wenn die Wavetable-Modulation für Digiwaves aktiviert ist (und
„Osc1Wav“ verwendet wird), können Sie die Art der Überblendung
zwischen Digiwaves bei Oszillator 1 modulieren. Wenn Sie Oszillator
1 frequenzmodulieren, ergeben sich durch das Ziel „Osc1WaveB“
wesentlich höhere FM-Intensitäten als durch die Ziele „Osc1 FM“ oder
„Osc1Wave“.
Osc2WaveB Identisch wie oben für eine Digiwave, die das Ziel „ Osc2Wav“ nutzt.
Osc3WaveB Identisch wie oben für eine Digiwave, die „Osc3Wav“ als Ziel nutzt.
SineLev1 Mit „SineLevl“ (Sine Level) modulieren Sie den Pegel von Sine Wave von
Oszillator 1. Der Parameter bestimmt die Grundtönigkeit des Klangs
von Oszillator 1. Weitere Informationen finden Sie unter Optimierte
ES2-Sounds mit Sine Level auf Seite 53.
OscLScle Mit „OscLScle“ (Osc Level Scale) modulieren Sie den Pegel aller
drei Oszillatoren gleichzeitig. Der Modulationswert 0 schaltet alle
Oszillatoren stumm, während der Wert 1 den gesamten Mix um 12 dB
anhebt. Diese Modulation erfolgt immer vor dem Drive-Verzerrer und
eignet sich daher besonders für dynamisch verlaufende Verzerrungen.
Osc1Levl Mit (Osc 1 Level) modulieren Sie den Pegel von Oszillator 1.
Osc2Levl Mit (Osc 2 Level) modulieren Sie den Pegel von Oszillator 2.
Osc3Levl Mit (Osc 3 Level) modulieren Sie den Pegel von Oszillator 3.
Kapitel 3 ES2 73
Filter-Modulationsziele im ES2
Die folgende Tabelle enthält alle Filter-relevanten Modulationsziele.
Target Anmerkungen
Cutoff 1 Moduliert die Cutoff-Frequenz-Parameter von Filter 1. Weitere
Informationen finden Sie unter Filter-Cutoff-Frequenz und
Resonanz – Übersicht auf Seite 49.
Resonance 1 (Reso 1) Moduliert die Resonance-Parameter von Filter 1.
Cutoff 2 Moduliert die Cutoff-Frequenz-Parameter von Filter 2.
Resonance 2 (Reso 2) Moduliert die Resonance-Parameter von Filter 2.
LPF FM Bestimmt die Intensität der Frequenzmodulation für das Lowpass-
Filter (LPF FM) in Filter 2 – mit einer Sinuswelle (mit gleicher
Frequenz wie Oszillator 1). Dieser Parameter ist beschrieben unter
Modulieren der Frequenz von Filter 2 des ES2 auf Seite 52.
Cut 1+2 Moduliert die Cutoff-Frequenz beider Filter parallel. Das ist, als ob
Sie die identische Modulation auf „Cutoff 1“ und „Cutoff 2“ in zwei
Modulations-Routings anwenden.
Cut1inv2 Mit „Cut1inv2“ (Cutoff 1 normal und Cutoff 2 invers) modulieren Sie
gleichzeitig die Cutoff-Frequenzen der ersten und zweiten Filter
gegenphasig (in unterschiedliche Richtungen). Wenn die Cutoff-
Frequenz des ersten Filters durch die Modulation steigt, wird
die Cutoff-Frequenz des zweiten Filters nach unten verschoben
und umgekehrt.
Wenn Sie Filter 1 als Hochpass einstellen und eine serielle
Filterverschaltung für Filter 2 wählen, ergibt sich ein Bandpass. Eine
Modulation des Cut1 inv 2-Targets sorgt in diesem Szenario für
eine Modulation der Bandbreite des Bandpass-Filters.
Filter Blend (FltBlend) moduliert den Parameter „Filter Blend“. Weitere
Informationen finden Sie unter Überblenden zwischen ES2-
Filtern auf Seite 47.
Weitere ES2-Modulationsziele
Die folgende Tabelle enthält alle weiteren Modulationsziele.
Target Anmerkungen
Amp Mit diesem Target modulieren Sie die Dynamikstufe, also den
Pegel der Stimmen. Wenn Sie „Amp“ als Target wählen und es mit
einem LFO als Source modulieren, schwankt der Pegel periodisch
und Sie hören ein Tremolo.
Pan Mit diesem Target modulieren Sie die Panoramaposition
der Stimme im Stereo- oder Surround-Spektrum. Wenn Sie
„Pan“ mit einem LFO modulieren, hören Sie ein Stereo- oder
Surround-Tremolo (Auto-Panning). Im Unison-Modus werden die
Panoramapositionen der einzelnen Stimmen automatisch über das
gesamte Stereo- oder Surround-Spektrum verteilt. Dennoch kann
„Pan“ moduliert werden. Dabei werden die einzelnen Positionen
parallel verschoben. Der erweiterte Parameter „Surround Range“
bestimmt den Winkel aus den Modulationswerten. Wenn beispielsweise
Pan mit dem Maximalwert eines LFO (der eine
Sägezahnwelle nutzt) moduliert wird, führt der Wert 360 für die
„Surround Range“ zu einer Kreisbewegung des Voice-Outputs.
Kapitel 3 ES2 74
Target Anmerkungen
Diversity Mit diesem Parameter (nur in den Surround-Instanzen des ES2
verfügbar) wird die Verteilungsstärke des Voice-Outputs über die
Surround-Kanäle dynamisch gesteuert. Negative Werte reduzieren
diesen Effekt.
LFO1Asym (LFO1 Asymmetry) moduliert die ausgewählte Wellenform von
LFO 1. Bei einer Rechteckwelle wird die Pulsbreite verändert.
Bei einer Dreieckwelle werden Änderungen zwischen Dreieck
und Sägezahn erzeugt. Bei einer Sägezahnwelle wird der
Nulldurchgang angehoben.
LFO1Curve Mit diesem Target modulieren Sie die Glättung von Rechteck- und
Zufallswellen. Wenn der LFO eine Dreieck- oder Sägezahnwelle
benutzt, wechselt er zwischen konvexen, linearen und
konkaven Kurven.
Skalierte ES2-Modulationsziele
Die folgenden Modulationsziele sorgen für eine skalierte Modulation, was bedeutet, dass
der Ziel-Parameterwert mit dem Modulationswert multipliziert wird. Beispiel: Bei einem
Modulationswert von 0.0 tritt keine Änderung auf, ein Modulationswert von +1.0 entspricht einer
Multiplikation mit dem Faktor 10, während ein Modulationswert von −1.0 einer Multiplikation mit
dem Faktor 0.04 gleichkommt.
Target Anmerkungen
LFO1Rate Mit diesem Target modulieren Sie die Frequenz (Rate)
des LFO 1. Sie können die Rate von LFO 1 automatisch
beschleunigen oder verlangsamen, indem Sie das Ziel
„LFO1Rate“ mit einem der Hüllkurvengeneratoren
(ENCV) oder mit LFO 2 modulieren.
Env2Atck (Envelope 2 Attack) moduliert die Attack-Zeit des
zweiten Hüllkurvengenerators.
Env2Dec (Envelope 2 Decay) moduliert die Decay-Zeit des
zweiten Hüllkurvengenerators. Wenn Sie „Env2Dec“
als Target und „Velocity“ als Source wählen, können
Sie mit der Anschlagsgeschwindigkeit die Dauer
bestimmen, mit der die Noten abklingen. Wählen
Sie „Keyboard“ als Source und hohe Noten klingen
schneller (oder langsamer) ab als tiefe Noten.
Env2Rel Mit „Env2Rel“ (Envelope 2 Release) modulieren Sie die
Release-Zeit des zweiten Hüllkurvengenerators.
Env2Time Mit Env2Time (Envelope 2 All Times) modulieren Sie
alle Zeitparameter von ENV2: Attack-, Decay-, Sustainund
Release-Zeiten.
Env3Atck Mit „Env3Atck“ (Envelope 3 Attack) modulieren Sie die
Attack-Zeit von ENV3.
Env3Dec Mit „Env3Dec“ (Envelope 3 Decay) modulieren Sie die
Decay-Zeit von ENV3.
Env3Rel Mit „Env3Rel“ (Envelope 3 Release) modulieren Sie die
Release-Zeit von ENV3.
Env3Time Mit Env3Time (Envelope 3 All Times) modulieren Sie
alle Zeitparameter von ENV3: Attack-, Decay-, Sustainund
Release-Zeiten.
Kapitel 3 ES2 75
Target Anmerkungen
Glide Mit diesem Target modulieren Sie die Dauer des
Portamentos (Glide). Wenn Sie „Glide“ modulieren,
wobei „Velocity“ als Quelle ausgewählt ist, bestimmt
die Anschlagsgeschwindigkeit die Dauer, in der die
gespielte Note die Zieltonhöhe erreicht.
Referenz der Modulationsquellen im ES2
Folgende Modulationsquellen sind verfügbar:
Source Anmerkungen
LFO1 LFO 1 wird als Quelle verwendet.
LFO2 LFO 2 wird als Quelle verwendet.
ENV1 Hüllkurvengenerator 1 wird als Quelle verwendet.
ENV2 Hüllkurvengenerator 2 wird als Quelle verwendet.
ENV3 Hüllkurvengenerator 3 wird als Quelle verwendet. Der
dritte Hüllkurvengenerator bestimmt zugleich immer
den Pegelverlauf jeder Note.
Pad-X, Pad-Y Ordnet die Achsen des Planar Pads als
Modulationsquellen für das gewählte Modulationsziel
zu. Näheres hierzu finden Sie unter Verwenden von
Planar Pad auf Seite 70 und Verwenden der Vector-
Hüllkurve auf Seite 63.
Max „Max“ setzt den Wert für diese Quelle auf +1. Dies
ermöglicht interessante Optionen zur Steuerung der
Modulationsintensität mit allen möglichen Werten
für via.
Kybd „Kybd“ (Keyboard) gibt den Wert für die
Tastaturposition (die MIDI-Notennummer) aus. Der
Bezugspunkt ist das C3 (ein Output-Wert von 0). Bei
fünf Oktaven darüber oder darunter wird ein Output-
Wert von –1 bzw. +1 ausgegeben. Moduliert das
Ziel „Cut 1+2“ mit der Quelle „Kybd“, um die Cutoff-
Frequenzen der Filter über die Tastaturposition zu
steuern: Je nachdem, in welcher Lage Sie auf der
Tastatur spielen, werden die Cutoff-Frequenzen entsprechend
geändert. Eine Modulationsintensität von
0.5 skaliert die Cutoff-Frequenzen proportional zu den
Tonhöhen der Tasten des Keyboards.
Velo Die Anschlagsdynamik dient als Modulationsquelle.
Bender (Pitch Bender) Das Pitch-Bend-Rad dient als bipolare
Modulationsquelle. Dies gilt auch, wenn bei den
Oszillatoren die Empfindlichkeit des Benders (Bend
Range) auf 0 gesetzt ist.
ModWhl Das Modulationsrad dient als Modulationsquelle.
Bei den meisten Standardanwendungen verwenden
Sie das Rad vermutlich als via-Regler. Üblicherweise
dient es zur Steuerung der Intensität der periodischen
LFO-Modulationen. In diesem Fall kann es für
direkte, statische Modulationen benutzt werden wie
zur Steuerung der beiden Filter-Cutoff-Frequenzen
(Ziel = Cut 1+2).
Kapitel 3 ES2 76
Source Anmerkungen
Touch Die Druckdynamik dient als Modulationsquelle, wenn
Sie für Source „Touch“ (After Touch) wählen. Der ES2
spricht auf Poly-Pressure (polyphones Aftertouch) an.
Wenn Sie das Target auf „Cut 1+2“ einstellen, fallen
und steigen die Cutoff-Frequenzen abhängig von der
Stärke, mit der Sie eine Taste auf einem anschlagsempfindlichen
MIDI-Keyboard – nach dem ersten
Anschlagen der Note – drücken.
Whl+To Sowohl das Modulationsrad als auch die
Druckdynamik dienen als Modulationsquelle.
MIDI-Controller A-F Im Router finden Sie die Felder „Ctrl A“ bis „Ctrl F“, die
beliebigen Controller-Nummern zugewiesen werden
können. Weitere Informationen finden Sie unter
ES2-Makro- und Reglerzuweisungen – Überscht auf
Seite 79.
RndN01 „RndNO1“ (Note On Random1) gibt immer, wenn eine
Note ausgelöst oder erneut ausgelöst wird, einen
neuen Zufallswert zwischen –1,0 und 1,0 aus. Die
(zufällige) Note-on-Modulation bleibt während der
Notendauer bis zum nächsten Note-on-Trigger konstant.
Beim Spielen von Legato im Legato-Modus gibt
es keine Werteänderung.
RndN02 „RndNO2“ (Note On Random 2) verhält sich
grundsätzlich wie „Note On Random1“, mit dem
Unterschied, dass der neue Zufallswert gleitend und
nicht schrittweise erreicht wird. Die Gleitzeit wird
durch den Parameter „Glide“ und dessen eventuelle
Modulationen bestimmt. Ein weiterer Unterschied
liegt darin, dass sich der Wert der Zufallsmodulation
ändert, wenn Sie im Legato-Modus legato spielen.
SideCh SideCh (Side-Chain-Modulation) verwendet ein
Side-Chain-Signal als Modulationssignal (Trigger).
Die Side-Chain-Quelle kann im Einblendmenü „Side
Chain“ im oberen grauen Bereich des Plug-In-Fensters
ausgewählt werden. Sie wird über den internen
Hüllkurvenfolger gespeist, der eine Modulation auf
Basis des aktuellen Eingangssignals im Side-Chain
erzeugt.
Referenz der via-Modulationsquellen im ES2
Die folgenden Sources können verwendet werden, um die Modulationsintensität zu steuern.
via Source Anmerkungen
LFO1 Die Modulation schwankt mit der Geschwindigkeit
und Wellenform von LFO1, der die
Modulationsintensität steuert.
LFO2 Die Modulation schwankt mit der Geschwindigkeit
und Wellenform von LFO2, der die
Modulationsintensität steuert.
ENV1 ENV1 regelt die Modulationsintensität.
ENV2 ENV2 regelt die Modulationsintensität.
ENV3 ENV3 steuert die Modulationsintensität.
Kapitel 3 ES2 77
via Source Anmerkungen
Pad-X, Pad-Y Die beiden Achsen des Planar Pad stehen ebenfalls
als via-Quellen zur Verfügung, sodass Sie die
Modulationsintensität damit regeln können.
Kybd „Kybd“ (Keyboard) gibt den Wert für die
Tastaturposition (die MIDI-Notennummer) aus. Der
Bezugspunkt ist das C3 (ein Output-Wert von 0). Bei
fünf Oktaven darüber oder darunter wird ein Output-
Wert von –1 bzw. +1 ausgegeben. Wenn Sie „Pitch123“
als Ziel auswählen, es mit der Quelle „LFO1“ modulieren
und „Keyboard“ als via-Wert wählen, ändert sich
„Vibrato Depth“ abhängig von der Tastenposition. Das
heißt, die Intensität des Vibratos ist dann bei höheren
oder tieferen Noten eine andere als bei der angegebenen
Keyboardposition.
Velo Wenn Sie für „via“ die Option „Velo“ (Velocity)
wählen, wird die Intensität der Modulation von der
Anschlagsgeschwindigkeit geregelt, je nachdem wie
fest bzw. schnell die Taste gedrückt wird.
Bender (Pitch Bender) Das Pitch-Bend-Rad regelt die Modulationsintensität.
ModWhl Wenn Sie „ModWhl“ (Modulation Wheel) für „via“
wählen, wird die Intensität der Modulation in
Abhängigkeit vom Modulationsrad geregelt.
Touch Wenn Sie für „via“ den Wert „Touch“ (Aftertouch)
wählen, wird die Modulation in Abhängigkeit vom
Druck geregelt, den Sie auf die Tastatur ausüben
(Aftertouch wird auch als Druckempfindlichkeit
bezeichnet).
Whl+To Sowohl das Modulationsrad als auch Aftertouch
(Druckdynamik) steuern die Modulationsintensität.
MIDI-Controller A-F Die MIDI-Controller im Router werden als „Ctrl A–F“
bezeichnet, nicht als „Expression“, „Breath“ und
„General Purpose 1–4“ (die MIDI-Controller 16 bis 19
sind auch unter der Bezeichnung „General Purpose
Slider 1/2/3/4“ bekannt). Diese können mit den
Einblendmenüs „Controller Assignment“ zufälligen
Controller-Nummern zugewiesen werden.
RndN01 „RndNO1“ (Note On Random1) gibt immer, wenn
eine Note ausgelöst oder erneut ausgelöst wird,
einen neuen Zufallswert für die Modulationsintensität
zwischen –1,0 und 1,0 aus. Die (zufällige) Note-on-
Modulation bleibt während der Notendauer bis zum
nächsten Note-on-Trigger konstant.Hinweis: Beim
Spielen von Legato im Legato-Modus gibt es
keine Werteänderung.
RndN02 „RndNO2“ (Note On Random 2) verhält sich
grundsätzlich wie „Note On Random1“, mit dem
Unterschied, dass der neue zufällige Intensitätswert
gleitend und nicht schrittweise erreicht wird. Die
Gleitzeit wird durch den Parameter „Glide“ und
dessen eventuelle Modulationen bestimmt. Ein weiterer
Unterschied liegt darin, dass sich der Wert der
Zufallsmodulation ändert, wenn Sie im Legato-Modus
legato spielen.
Kapitel 3 ES2 78
via Source Anmerkungen
SideCh SideCh (Side Chain-Modulation) verwendet ein Side-
Chain-Signal als Signal für die Modulationsintensität
(Trigger). Die Side-Chain-Quelle kann im
Einblendmenü „Side Chain“ im oberen grauen Bereich
des Plug-In-Fensters ausgewählt werden. Sie wird
über den internen Hüllkurvenfolger gespeist, der eine
Modulation auf Basis des aktuellen Eingangssignals im
Side-Chain erzeugt.
Integrierter Effektprozessor des ES2
Der ES2 verfügt über einen integrierten Effektprozessor. Alle Änderungen an den Parametern
dieser Effekte werden innerhalb des jeweiligen Sound-Settings gespeichert.
Intensity and Speed
parameters are shared
by the Chorus, Flanger,
and Phaser effects.
Click to choose Chorus,
Flanger, or Phaser effect.
Adjust to set the level of
Distortion.
Use the Tone parameter
to alter the tonal color of
the Distortion effect.
Click to choose a hard
or soft type of Distortion
effect.
Es können nur zwei Effekte gleichzeitig aktiv sein.
•• Distortion
•• Wählen Sie den Effekt „Chorus“, „Flanger“ oder „Phaser“ aus. Diese Effekte teilen sich dieselben
Drehregler für „Intensity“ und „Speed“.
Ein Chorus-Effekt beruht auf einem Delay, dessen Output mit dem Originalsignal (Dry-
Signal) gemischt wird. Die kurze Delay-Zeit wird zyklisch moduliert. Dadurch entstehen
Tonhöhenschwankungen im Effektsignal. Durch die Mischung des Signals schwankender
Tonhöhe mit dem Originalsignal entsteht der Chorus-Effekt.
Der Flanger funktioniert ähnlich wie der Chorus-Effekt, allerdings ist die Verzögerungszeit noch
kürzer gewählt. Der Output des Effekts wird auf den Input zurückgekoppelt. Dadurch entstehen
harmonische Resonanzen, die wegen der Modulation der Delay-Zeit zyklisch durch das
Frequenzspektrum wandern und so den Sound „metallisch“ wirken lassen.
Der Phaser mischt ein verzögertes Signal mit dem Originalsignal. Das verzögernde Element
ist hier ein Allpass-Filter, dessen Verzögerungszeit frequenzabhängig ist. Die Verzögerungszeit
kann deshalb als Phasenwinkel angegeben werden. Der Effekt beruht auf so genannten
Kammfiltereffekten, die sich durch Frequenzauslöschungen anstelle von Resonanzen (wie
beim Flanger) auszeichnen und auch durch das Frequenzspektrum wandern.
Kapitel 3 ES2 79
Parameter „Distortion“
•• Taste „Soft“: Aktiviert den Soft-Modus des Verzerrungseffekts. Der Sound eines Verzerrers ist an
Röhrenverzerrungen angelehnt.
•• Taste „Hard“: Aktiviert den Hard-Modus des Verzerrungseffekts. Der Effekt erinnert an den Klang
eines Transistorverzerrers.
•• Drehregler „Distortion“: Stellen Sie durch Drehen den Wert für die Verzerrung ein. Wenn Sie
diesen Drehregler auf Null setzen, ist der Effekt deaktiviert.
•• Drehregler „Tone“ Stellen Sie durch Drehen des Reglers die hohen Töne des
Verzerrungssignals ein.
Parameter „Chorus“, „Flanger“ oder „Phaser“
•• Wenn „Chorus“ aktiviert ist:
•• Drehregler „Intensity“: Stellen Sie durch Drehen die Effekttiefe ein (wie „umfassend“ die
Modulation ist). Stellen Sie diesen Drehregler auf Null, um den Effekt zu deaktivieren.
•• Drehregler „Speed“: Stellen Sie durch Drehen die Modulationsrate ein.
•• Wenn „Flanger“ aktiviert ist:
•• Drehregler „Intensity“: Stellen Sie durch Drehen die Effekttiefe ein (wie „schneidend“ die
Modulation ist). Stellen Sie diesen Drehregler auf Null, um den Effekt zu deaktivieren.
•• Drehregler „Speed“: Stellen Sie durch Drehen die Modulationsrate ein.
•• Wenn „Phaser“ aktiviert ist:
•• Drehregler „Intensity“: Stellen Sie durch Drehen die Tiefe des Sweep-Effekts ein (die
Modulationsbreite). Stellen Sie diesen Drehregler auf Null, um den Effekt zu deaktivieren.
•• Drehregler „Speed“: Stellen Sie durch Drehen die Modulationsrate ein.
ES2-Makroregler und Reglerzuweisungen
ES2-Makro- und Reglerzuweisungen – Überscht
In diesem Abschnitt an der Unterseite der Bedienoberfläche des ES2 stehen drei Ansichten zur
Verfügung:
Macro control
parameters
Click here to
choose a view.
•• Macro: Klicken Sie zum Anzeigen einer Reihe von Makro-Parametern, die mehrere andere
Parameter beeinflussen.
•• MIDI: Klicken Sie zum Zuweisen von MIDI-Controllern zu bestimmten Modulationswegen.
Weitere Informationen finden Sie unter Referenz der via-Modulationsquellen im ES2 auf
Seite 76.
•• Macro only: Klicken Sie, um die Bedienoberfläche des ES2 durch eine kleinere Ansicht zu ersetzen,
die auf die Makro-Steuerungen begrenzt ist.
Kapitel 3 ES2 80
Makro-Steuerungen im ES2
Über die Makro-Drehregler können Sie einfach auf mehrere verbundene und damit zusammenhängende
Parameter zugreifen.
Wenn Sie die Makro-Steuerungen drehen, verändert sich auch die ES2-Bedienoberfläche und
es werden ein oder mehr Parameter angezeigt. Wenn Sie beispielsweise die Makro-Steuerung
„Detune“ verändern, wirkt sich das gleichzeitig auf den Parameter „Analog“ und die Oszillator-
Frequenz-Parameter „Coarse“ und „Fine“ aus.
Die Makro-Parameter sind bezüglich der Einstellungen mit den ES2-basierten Instrumenten
in GarageBand kompatibel. Das heißt, der ES2 und einige Synthesizer-Settings in GarageBand
sind austauschbar.
Wichtig: Die Wirkung jeder Makro-Steuerung hängt vollständig von den Parameterwerten
der aktuellen Einstellung ab. Bei einigen Sounds haben einige Makro-Steuerungen eventuell
keine Wirkung.
ES2-Controller-Zuweisung
Mit dem Bereich „Controller Assignments“ können Sie die Dreh- und Schieberegler sowie weiteren
Regler Ihrer MIDI-Tastatur zuweisen, um als Steuerquellen für die ES2-Parameter zu dienen.
Hier stehen sechs Menüs von Ctrl A bis Ctrl F zur Auswahl. Sie können einen beliebigen der MIDIController
in den Menüs für diese Reglerquellen verwenden.
Diese Parameter werden mit jedem Setting gesichert. Sie werden lediglich bei Verwendung der
Standardeinstellung geändert, die bei der Initialisierung des Plug-Ins geladen wird oder wenn ein
Setting mit einem Projekt gesichert wird. Dieser Ansatz erlaubt es Ihnen, die Parametersteuerung
an Ihren MIDI-Controller anzupassen, ohne die entsprechende Einstellung separat für jedes
Setting vornehmen und sichern zu müssen.
Die Controller 0 und 32 sind für Bank-Select-Befehle reserviert, Controller 1 wird als
Modulationsquelle im Router benutzt, Controller 33 bis 63 dienen als LSB für die Controller 1 bis
31, die Controller 64 bis 69 sind für Pedal-Befehle reserviert, die Controller 120 bis 127 sind für
Channel-Mode-Befehle reserviert.
In der MIDI-Spezifikation sind alle Controller von 0 bis 31 als Most Significant Bit (MSB) Controller-
Definitionen vorgesehen. Jeder dieser Controller (0 bis 31) enthält zudem eine Least Significant
Bit (LSB) Controller-Definition (32 bis 63). Durch Kombination des zweiten LSB-Controllers mit
dem MSB-Controller lässt sich eine Auflösung von 14 anstatt von 7 Bit erzielen. Der ES2 kann
diese Befehle, etwa den Breath- oder Expression-Controller, korrekt auswerten.
Im Detail:
•• 14-Bit-Controller sind Paare aus normalen Control-Change-Befehlen (CC), wobei die Nummer
des zweiten CC-Befehls (LSB) um den Wert 32 über der des ersten CC-Befehls (MSB) liegt.
Beispiele für gültige 14-Bit-Paare: CC1/33, CC7/39 und CC10/42.
•• 14-Bit-Controller bieten eine Auflösung von 16.384 Schritten, wodurch sich Plug-In-Parameter
sehr genau steuern lassen. Der erste CC-Befehl eines 14-Bit-Paares (MSB) hat eine grobe
Auflösung von 128 Schritten. Jeder dieser Schritte kann nun mithilfe des zweiten CC-Befehls
(LSB) in 128 weitere Schritte unterteilt werden. Es ergeben sich also 128 x 128 = 16.384 Schritte.
Kapitel 3 ES2 81
•• Um 14-Bit-Controller zu verwenden, müssen Sie weder neue noch spezielle Datentypen
erzeugen. Die feinere Auflösung wird einfach durch das Komplementieren des zugewiesenen
CC-Befehls (MSB) mit seinem LSB erreicht. Der im ES2 zugewiesene CC-Befehl kann auch
immer alleine ausgeführt werden, sofern Ihr MIDI-Controller keine 14-Bit-Befehle ausgibt, allerdings
reduziert sich die Auflösung entsprechend auf 7 Bit = 128 Schritte.
Die 14-Bit-Fähigkeit ist der Grund, warum die CC-Nummern 33–63 nicht in den Menüs Ctrl A–F
zugewiesen werden können. Der Einsatz dieser (LSB) CC-Nummern würde dazu führen, dass
1/128 des Parameterbereichs (anders ausgedrückt: 128 zusammenhängende Schritte aus 16.384
Schritten) verändert würden.
MIDI-Controller zuweisen
1 Klicken Sie auf die Taste „MIDI“ in der unteren linken Ecke, um die
Controller-Zuweisungen anzuzeigen.
2 Klicken Sie auf ein beliebiges Menü (Ctrl A bis Ctrl F) und wählen Sie dann den Controller-Namen
(bzw. dessen Nummer), den Sie verwenden möchten, aus der Liste.
MIDI-Controller-Zuweisung anlernen
1 Klicken Sie auf die Taste „MIDI“ in der unteren linken Ecke, um die
Controller-Zuweisungen anzuzeigen.
2 Wählen Sie den Eintrag „Learn“ aus einem Control-Menü (Ctrl A bis Ctrl F).
3 Bewegen Sie den ausgewählten Controller auf Ihrer MIDI-Tastatur oder Ihrem MIDI-Controller.
Hinweis: Falls innerhalb von 20 Sekunden kein MIDI-Befehl empfangen wird, wird der ausgewählte
Controller auf seinen ursprünglichen Wert/Zuweisung zurückgesetzt.
Surround-Modus des ES2
Bei Surround-Instanzen des ES2 werden zwei zusätzliche Parameter in den erweiterten
Parametern am unteren Rand der Bedienoberfläche angeboten: “Surround Range“ und „Surround
Diversity“.
Surround-Parameter
•• Surround Range: Bestimmt den Bereich des Surround-Winkels (0 bis 360 Grad). Das heißt, der
Parameter legt die Breite des Surround-Felds fest. Sie können die Bewegung der Sounds innerhalb
der „Surround Range“ über das Pan-Ziel im Router steuern.
•• Surround Diversity: Bestimmt die Verteilungsstärke des Output-Signals über Ihre Surround-
Lautsprecher. Wenn Sie den Wert 0 wählen, geben nur diejenigen Lautsprecher das Signal aus,
die am nächsten zur Position des Originalsignals liegen. Der Diversity-Wert 1 verteilt das Signal
zu gleichen Teilen auf alle Lautsprecher. Sie können die Verteilung der Signale mit dem Ziel
„Diversity“ im Router zwischen den Lautsprechern modulieren.
Kapitel 3 ES2 82
ES2 – Erweiterte Parameter
ES2 verfügt über zwei Parameter, auf die Sie durch Klicken auf das Dreiecksymbol links unten auf
der Oberfläche zugreifen können.
Erweiterte Parameter
•• Einblendmenü „Midi Mono Mode“: Wählen Sie „Off“, „On“ (Common Base Channel 1) oder „On“
(Common Base Channel 16).
In jedem der beiden Modi empfängt jede Stimme auf einem anderen Midi-Channel.
Controller und Midi-Befehle, die auf dem Base Channel gesendet werden, haben Einfluss auf
alle Stimmen.
•• Einblendmenü „MIDI Mono Pitch Range“: Wählen Sie 0, 24 oder 48.
Der ausgewählte Wert für den Pitch Bend Range hat Einfluss auf einzelne Note Pitch Bend-
Befehle, die nicht auf dem Common Base Channel empfangen werden. Der Standard sind 48
Halbtonschritte, was mit der Musiktastatur von Mobile GarageBand im Pitch-Modus vergleichbar
ist. Für den Einsatz einer MIDI-Gitarre sind 24 Halbtonschritte die bevorzugte Einstellung.
Die meisten MIDI Converter haben dies als Standardeinstellung.
Erzeugen von zufälligen Sound-Variationen im ES2
Verwenden der Zufalls-Parameter des ES2
Der ES2 bietet eine leistungsfähige Funktion, Soundeinstellungen zufällig zu variieren. Das
Ausmaß der Variation können Sie selbst bestimmen, ebenso wie die zu beeinflussende
Baugruppe. Die Zufallsfunktion wird Sie beim Programmieren neuer Sounds inspirieren
und unterstützen.
Sie können das Ausmaß der zufälligen Änderung der Parameter mit dem Schieberegler „Random
Intensity“ festlegen.
Die Zufallsfunktion variiert stets die aktuellen Einstellungen, nicht das Original-Setting. Wenn Sie
mehrfach auf die Taste „RND“ klicken, entfernen Sie sich also immer weiter vom Original.
Sound zufällig variieren
mm Klicken Sie auf die Taste „Randomize“.
Die Variation wird durch einmaliges Klicken ausgelöst und kann jederzeit wiederholt werden.
Grad der Zufallsvariation anheben
mm Bewegen Sie den Schieberegler „Randon Intensity“ weiter nach rechts.
Mehrere dezente Abweichungen der aktuellen Einstellung erzeugen
mm Laden Sie die Originaleinstellung nach jeder Zufallsvariation neu, wobei Sie diese unter einem
neuen Namen speichern.
Kapitel 3 ES2 83
Beschränkung der Random-Funktion
Sie können mithilfe des Einblendmenüs „Randomize Section“ die Random-Funktion auf
bestimmte Parametergruppen beschränken.
Einige Aspekte Ihres Sounds sind vielleicht schon genau richtig eingestellt. Beispielsweise
weist Ihr aktueller Sound eine schöne Perkussion auf und die Variation soll ebenso perkussiv
klingen. Stattdessen ist eine Variation der Klangfarbe erwünscht. In diesem Fall bietet es sich
an, die Variation auf die Einstellungen der Oszillatoren oder der Filter zu beschränken. Stellen
Sie die „RND Destination“ entsprechend auf „Waves“ oder „Filters“ ein, wodurch die Hüllkurven-
Parameter aus der Variation ausgeschlossen sind.
Hinweis: Die Parameter „Master Level“, „Filter Bypass“ sowie die Parameter „Oscillator On/Off“
werden nie zufällig gewählt. Bei Zufallsvariationen der Vector-Hüllkurve wird der Parameter „Solo
Point“ immer auf „off“ gesetzt.
Sie können die Zufallsvariationen auf die folgenden Parametergruppen beschränken:
Abschnitt „Randomize“ Anmerkungen
All Alle Parameter mit Ausnahme der oben genannten
werden variiert.
Alle außer Router und Pitch Alle Parameter, mit Ausnahme der Router-Parameter
und der Grundtonhöhe (Halbton-Einstellung der
Oszillatoren), werden variiert. Die Feinstimmung des
Oszillators wird allerdings zufällig variiert.
Alle außer Vector Env Alle Parameter, mit Ausnahme der Vector-
Hüllkurvenparameter, werden variiert. Dadurch bleibt
das rhythmische Feeling eines vorgegebenen Settings
erhalten.
Waves Nur die Oszillator-Parameter „Wave“ und „Digiwave“
werden variiert. Andere Oszillatoren (Tuning,
Mix und Modulationswege im Router) bleiben
hiervon unberührt.
Digiwaves Für alle Oszillatoren werden neue Digiwaves
ausgewählt. Andere Oszillatoren (Tuning, Mix
und Modulationswege im Router) bleiben
hiervon unberührt.
Filter Die folgenden Filter-Parameter werden variiert: „Filter
Structure“ (seriell oder parallel), „Filter Blend“, „Filter
Mode“, „Cutoff Frequency“ und „Resonance“ für Filter
1 und 2. Die Parameter „Fat(ness)“ und „Filter FM“ von
Filter 2 werden ebenfalls variiert.
Envs Alle Parameter der drei Hüllkurven (ENV 1, ENV 2 und
ENV 3) werden zufällig variiert. Die Vector-Hüllkurve
ist von der Variation ausgenommen.
LFOs Alle Parameter beider LFOs werden variiert.
Router Alle Router-Parameter – in allen Modulations-Routings
– werden variiert (alle Intensitäten, Target-, via- und
Source-Parameter werden verändert).
FX Alle Effekt-Parameter werden zufällig variiert.
Vector-Hüllkurve Alle Vector- Hüllkurvenparameter inklusive des X/YRoutings
des Planar Pads werden variiert.
Kapitel 3 ES2 84
Abschnitt „Randomize“ Anmerkungen
Vector Env Mix Pad Die Mischpegel der Oszillatoren der Vector-
Hüllkurvenpunkte werden verändert.
Modulationsrhythmus und -geschwindigkeit (die
Zeitparameter der Punkte) bleiben unberührt.
Vector Env XY Pad Die Positionen des Zeigers im Planar Pad (die
Vector-Hüllkurvenpunkte) werden zufällig variiert.
Das X/Y-Routing wird allerdings nicht variiert.
Modulationsrhythmus und -geschwindigkeit
(die Zeitparameter der Punkte) bleiben ebenfalls
unberührt.
Sie können eine gemeinsame Variationsrichtung
angeben, indem Sie eine der folgenden Optionen
wählen:
•• Vector Env XY Pad X only
•• Vector Env XY Pad Y only
Vec Env Times Nur die Zeitparameter der Punkte der Vector-
Hüllkurve werden variiert.
Vec Env Structure Nur der Aufbau der Vector-Hüllkurve wird variiert. Dies
umfasst: Sämtliche Zeiten, Sustain-Punkt, Anzahl der
Punkte und alle Loop-Parameter.
Vec Env Shuffle Times Die Zufallszeiten der Vector-Hüllkurve (innerhalb der
Loops) werden variiert. Dies umfasst den Wert „Loop
Smooth“, wenn für den Loop-Modus die Einstellung
„Forward“ oder „Backward“ eingestellt wurde.
Tutorials zum ES2
Erzeugen von völlig neuen ES2-Sounds
ES2-Sound-Design – Übersicht
In diesem Tutorial werden Ihnen die Grundlagen der allgemeinen Klangprogrammierung
auf vermittelt. Im zweiten Abschnitt des Tutorials ES2-Sound-Design mit Templates auf
Seite 94 werden Sie durch den Prozess zur Sound-Erzeugung geführt, wobei Sie Vorlagen als
Ausgangspunkt verwenden.
Um die Einstellungen für diese Tutorials im ES2-Fenster darzustellen, öffnen Sie das
Einblendmenü „Settings“ und wählen dort „Tutorial Settings“.
Das Tutorial-„Setting Analog Saw Init“ soll als Ausgangspunkt für die Klangprogrammierung
neuer Sounds dienen. Für die Programmierung völlig neuer Sounds greifen professionelle
Sound-Designer gerne auf dieses Setting zurück, bei dem ein ungefilterter Sägezahn-Sound
ohne Hüllkurven, Modulationen oder andere Besonderheiten zum Einsatz kommt. Auch zum
Kennenlernen eines neuen Synthesizers ist dieses Setting hervorragend geeignet. Dadurch
können Sie alle Parameter unbeeinflusst von Voreinstellungen ausprobieren.
•• Beginnen Sie mit den Filtern, dem Herz des subtraktiven Synthesizers. Probieren Sie die vier
Lowpass-Filtertypen „12 dB“, „18 dB“, „24 dB“ und „fat“ (Filter 2) mit verschiedenen Werten für
„Cut“ (Cutoff Frequency) und „Res“ (Resonance) aus. Stellen Sie „Env 2“ als Filterhüllkurve ein.
Die erforderliche Modulation im Routing ist voreingestellt.
Kapitel 3 ES2 85
•• Stellen Sie „Filter Blend“ ganz nach links, sodass Sie Filter 1 isoliert hören können. In vielen
Fällen werden Sie zwar dem wirkungsvolleren Filter 1 den Vorzug geben, aber auch das
Filter 2 hat seine Vorzüge. Filter 1 bietet neben dem 12-dB-Lowpass-Filter (Lo) auch die
Elemente Highpass, Peak, Bandpass (BP) und Bandsperre (BR). Im Lowpass-Bereich klingt
Filter 2 im Vergleich zu Filter 1 „weicher“. Er eignet sich besonders gut für Klänge, bei denen
die Filterwirkung nicht so deutlich wahrgenommen werden soll, z. B. bei Streichern oder
FM-Sounds. Ebenso sind verzerrte Sounds, die an den Bass-Synthesizer TB303 erinnern, mit
Filter 2 besser zu verwirklichen als mit Filter 2.
•• Das Setting ist ebenfalls sehr gut geeignet, um mit verschiedenen Wellenformen der
Oszillatoren zu experimentieren.
Fette ES2-Sounds erzeugen
Schon immer waren „fette“ Synthesizer-Sounds äußerst beliebt. Und dies gilt heute bei
Musikstilen wie Trance, Techno, R & B umso mehr.
Fette ES2-Sounds mit verstimmten Oszillatoren und dem Unison-Modus erzeugen
Das Setting „Analog Saw 3 Osc“ umfasst drei gegeneinander verstimmte Oszillatoren und klingt
schon recht fett. Es gibt aber Möglichkeiten, den Klang noch deutlich fetter zu formen.
Bei vielen Werkseinstellungen ist der Unison-Modus bereits aktiviert. Dies erfordert sehr viel
Rechenleistung. Wenn Ihr Computer nicht schnell genug ist, kann auf den Unison-Modus verzichtet
werden und stattdessen z. B. der Ensemble-Effekt in einem Bus für mehrere Plug-Ins
verwendet werden. Dies führt zu einer Systementlastung. Eine andere Möglichkeit ist, mehrere
Software-Instrumentspuren einzufrieren (Freeze-Funktion) oder zu bouncen.
Führen Sie die folgenden Schritte aus:
mm Probieren Sie zunächst den 3-Oszillatoren-Basisklang mit unterschiedlichen Filter- und Envelope-
Einstellungen aus.
mm Probieren Sie den Chorus-Effekt mit verschiedenen Einstellungen für „Intensity“ und „Speed“ aus.
mm Aktivieren Sie den Unison-Modus und wählen Sie einen höheren Wert für „Analog“. Da der polyphone
Modus eingestellt ist, wird jede Note doppelt gespielt. Die Anzahl der gleichzeitig abspielbaren
zehn Noten reduziert sich von 10 auf 5. Dafür erhalten Sie aber einen sehr dichten und
breiten Klang. Durch das Kombinieren von „Unison“ und höheren Analog-Werten wird auch eine
deutlich wahrnehmbare Spreizung über das Stereo- oder Surround-Spektrum erzeugt.
Bei vielen Werkseinstellungen ist der Unison-Modus bereits aktiviert. Dies erfordert sehr viel
Rechenleistung. Wenn Ihr Computer nicht schnell genug ist, kann auf den Unison-Modus verzichtet
werden und stattdessen z. B. der Ensemble-Effekt in einem Bus für mehrere Plug-Ins
verwendet werden. Dies führt zu einer Systementlastung. Eine andere Möglichkeit ist, mehrere
Software-Instrumentspuren einzufrieren (Freeze-Funktion) oder zu bouncen.
Verstimmte monophone Sounds und Effekte mit dem ES2 erzeugen
Das Setting „Analog Saw Unison“ ist ein extrem verstimmter, ungefilterter Basis-Sound, der an
Fatness kaum noch zu überbieten ist. Drei Sägezahn-Oszillatoren werden verwendet, die aber
noch stärker gegeneinander verstimmt sind. Das Entscheidende ist die Kombination von „Unison“
und „Analog“ (auf einen hohen Wert gesetzt). Da der Modus „Mono“ eingestellt ist, werden zehn
Stimmen gestackt. Alles in allem ergibt dies ohne zusätzliche Effekte einen unglaublich mächtigen
Lead-Sound, wie er bei unzähligen Dance- und Trance-Produktionen eingesetzt wird. Bei entsprechenden
Hüllkurveneinstellungen (Modulation des Filters!) können aus diesem Setting auch
Elektro-Sounds abgeleitet werden, die ideal für Arpeggio- und Sequenzer-Sounds sind.
Kapitel 3 ES2 86
Führen Sie die folgenden Schritte aus:
mm Stellen Sie „Cutoff Frequency“ von Filter 2 auf „0“. Dadurch wird die voreingestellte Filter-
Hüllkurve aktiviert. Probieren Sie auch andere Einstellungen aus.
mm Schalten Sie „Osc 1“ eine (–12 s) oder zwei Oktaven (–24 s) tiefer.
mm Erhöhen Sie „Drive“ oder „Distortion“.
mm Für „Env 2“ sollte „Velocity“ eingestellt sein. Sie können jetzt das Filter mit der
Anschlagsdynamik modulieren.
mm Fügen Sie einen Delay-Effekt im Instrument-Channel-Strip des ES2 (oder einem Bus-Ziel) ein.
ES2-Bass-Sounds erzeugen
Nicht jeder Sound muss aus mehreren Oszillatoren zusammengesetzt sein. Es gibt auch sehr einfache,
aber trotzdem wirkungsvolle Sounds mit nur einem Oszillator. Dies gilt z. B. für bestimmte
Synthbässe, die auf Basis des Settings „Analog Bass Clean“ schnell erzeugt werden können.
Saubere 1-Oszillator-Bass-Sounds erzeugen
Im Setting „Analog Bass Clean“ ist der Basissound eine Rechteckwelle, die um eine Oktave nach
unten transponiert wird. Der Sound wird durch Filter 2 gefiltert. Das Besondere an diesem
Sound ist der Modus „Legato“ in Kombination mit „Glide“ (Portamento). Wenn Sie staccato spielen,
hören Sie keinen Glide-Effekt. Der Glide-Effekt ist nur bei gebundener Spielweise (Legato)
aktiv. Die Filter-Hüllkurve wird nur dann mit jeder Note neu ausgelöst, wenn alle Tasten vor dem
Anschlagen einer neuen Note losgelassen werden.
Führen Sie die folgenden Schritte aus:
mm Probieren Sie verschiedene Filter- und Envelope-Einstellungen aus.
mm Wählen Sie statt der Rechteckwelle die Sägezahnwelle.
mm Stellen Sie andere Glide-Werte ein.
Tipp: Die Bearbeitung funktioniert am besten bei einer laufenden Bass-Sequenz. Erzeugen oder
spielen Sie eine monophone Basslinie, wobei Sie meistens staccato und nur einige wenige Noten
legato spielen. Dabei kann auch eine sehr lange Glide-Zeit gut funktionieren.
Verzerrte analoge Bässe erzeugen
In der Einstellung Analog Bass Distorted wird Filter 1 in Verbindung mit hohen Drive- und
Distortion-Werten eingesetzt. Das Filter 1 ist für verzerrte Analog-Sounds besser geeignet als
Filter 2.
Führen Sie die folgenden Schritte aus:
mm Probieren Sie Filter 2 aus, indem Sie „Filter Blend“ ganz nach rechts stellen. Sie werden hören,
warum Filter 1 für verzerrte Klänge besser geeignet ist.
mm Bewegen Sie zur Steuerung der Filtermodulation die grünen Schieberegler der ersten
Modulationsweiterleitung im Routing-Feld. Dadurch wird die Modulationsintensität gesteuert.
ES2-FM-Sounds erzeugen
Beim ES2 ist Oszillator 1 immer der „Träger“ und Oszillator 2 immer der „Modulator“. Das heißt,
Oszillator 2 moduliert Oszillator 1.
Das Setting „FM Start“ ist ein guter Ausgangspunkt, um die Synthese der linearen
Frequenzmodulation (FM) kennenzulernen.
Kapitel 3 ES2 87
ES2-Sounds über FM Intensity und Frequency erzeugen
Laden Sie das Setting „FM Start“, um einen unmodulierten Sinusklang zu hören, der durch
Oszillator 1 erzeugt wird. Oszillator 2 wird aktiviert und ebenfalls für die Erzeugung einer
Sinus-Oszillation eingestellt, der Pegel wird jedoch auf 0 eingestellt: Bewegen Sie das kleine
Rechtecksymbol in der obersten Ecke des Dreiecks, um die Einstellungen zu ändern.
Führen Sie die folgenden Schritte aus:
mm Stellen Sie die Intensität der Frequenzmodulation ein, indem Sie den Wave-Drehregler langsam
von „Sine“ bis „FM“ drehen. Sie hören ein typisches FM-Spektrum bei gleicher Frequenz von
Träger und Modulator.
mm Ändern Sie die Modulatorfrequenz (Oszillator 2) durch Anpassen von „Fine Tune“ von 0 c auf
50 c. Sie hören dann eine sehr langsame Frequenzmodulation, die mit dem Effekt eines LFO
verglichen werden kann. Die eigentliche Frequenzmodulation erfolgt jedoch im Audiospektrum.
Sie wird mit der Frequenzwahltaste in Halbtonschritten eingestellt. Testen Sie den Bereich von
–36 s bis +36 s für Oszillator 2. Sie hören jetzt bereits ein breites Spektrum an FM-Sounds. Einige
Einstellungen werden Sie an Sounds klassischer FM-Synthesizer erinnern.
mm Wählen Sie andere Wellenformen für Oszillator 2. Die Sinuswellenform ist zwar die klassische
FM-Basiswellenform, aber auch andere Wellenformen können interessante Ergebnisse hervorbringen,
insbesondere die Digiwaves.
mm Noch außergewöhnlichere Ergebnisse erzielen Sie, wenn die Frequenz des Trägers (Oszillator
1) verändert wird. Testen Sie auch hier den Bereich von –36 s bis +36 s. Vor allem die ungeraden
Werte sind äußerst interessant. Allerdings ist zu bedenken, dass sich dabei die
Grundstimmung verändert.
FM-Intensität im ES2 mit einer Hüllkurve und FM-Scaling steuern
Im Setting „FM Envelope“ steuern Sie die FM-Intensität mit einer Hüllkurve durch Envelope 2. Das
Modulationsziel ist der Bereich zwischen „Sine“ und „FM“ auf dem Wellenform-Drehregler der
Oszillatoren. Für diesen Modulationsweg wird der erste Router-Kanal verwendet. Es ist aber mit
weiteren Modulationswegen möglich, einen weitaus größeren Bereich abzudecken. Die weiteren
Modulationswege sind bereits vorbereitet. Sie müssen lediglich die Werte einstellen. Da vorerst
ohne „Velocity“ gearbeitet wird, können Sie die Werte in der Editor-Ansicht einstellen, indem Sie
den unteren Fader zusammen mit dem oberen ganz nach oben schieben.
Führen Sie die folgenden Schritte aus:
mm Stellen Sie das zweite Modulations-Routing auf 1,0 ein. Sie hören deutlich, dass ein größeres
Klangspektrum kontrolliert wird.
mm Stellen Sie die Modulations-Routings 3 und 4 ebenfalls auf den Wert 1,0 ein. Der Klangbereich
wird drastisch erweitert.
mm Nach der drastischen Ausweitung des Modulationsbereichs ist der Klang über die gesamte
Tastatur unausgewogen. Im unteren und mittleren Tastaturbereich ist der Klang optimal, während
die FM-Intensität im oberen Bereich zu stark ist. Dies kann mit den ebenfalls bereits vorbereiteten
Modulationswegen 5 und 6 kompensiert werden. Dabei wird das Modulationsziel „Osc 1
Wave“ von Tastaturposition „kybd“ gesteuert. So wird ein Scaling der FM-Intensität erzeugt.
mm Da der Klangbereich aufgrund der vier Modulationen sehr groß ist, sind für dieses FM-Scaling
zwei Modulationswege erforderlich. Bewegen Sie die unteren Hälften des Schiebereglers
jeweils ganz nach unten. Das Scaling ist für die Spielbarkeit von FM-Sounds von
fundamentaler Bedeutung!
Kapitel 3 ES2 88
FM Drive und Filter FM zum Ändern der Tonfarbe verwenden
Das Setting „FM Drive“ zeigt deutlich, wie sehr sich der Charakter von FM-Sounds verändert,
wenn Sie „Drive“ und „Filter FM“ verwenden. Die Ergebnisse ähneln dem Feedback der klassischen
FM-Synthese.
Führen Sie die folgenden Schritte aus:
mm Experimentieren Sie mit verschiedenen Einstellungen für „Drive“ und „Filter FM“.
mm Setzen Sie die Cutoff-Frequenz von Filter 2 auf „0“ herab. Envelope 2 wirkt dann auch auf Filter 2.
Die entsprechende Modulation ist in dem Setting bereits voreingestellt.
FM-Sounds mit Digiwaves erzeugen
Im Setting „FM Digiwave“ wird eine Digiwave als FM-Modulator eingesetzt. Dadurch können
z. B. glockige Klänge aus nur zwei Operatoren programmiert werden. Bei der traditionellen
FM-Synthese sind solche Sounds in der Regel nur mit einer Vielzahl an Sinuswellen möglich.
Um einen schwebungsreicheren, atmosphärischen Grundklang zu realisieren, wurde
der polyphone Unison-Modus aktiviert. Für die Klangformung wurden Filter- und
Amplituden-Hüllkurven voreingestellt.
Führen Sie die folgenden Schritte aus:
mm Testen Sie die Wirkung unterschiedlicher Digiwaves als FM-Modulationsquellen.
mm Probieren Sie verschiedene Intensitäten für den Parameter „Analog“ aus.
FM-Sounds mit Wavetables erzeugen
Äußerst lebendige FM-Klänge entstehen, wenn die Modulation durch ein Morphing zwischen
Digiwaves (Wavetable-Scanning) erfolgt. Das Morphing im Setting „FM Digiwave“ wird durch den
LFO 2 gesteuert. Die Geschwindigkeit des LFO 2 und deshalb auch das Morphing hängen vom
Tempo des Host-Programms ab (hier zwei Takte).
Führen Sie die folgenden Schritte aus:
mm Stellen Sie für den LFO2 andere Wellenformen ein. Vor allem die Wellenform „Lag S/H“ (geglätteter
Zufall) ist für Wavetables geeignet.
mm Experimentieren Sie mit unterschiedlichen FM-Intensitäten und Oszillatorfrequenzen.
mm Verändern Sie die Modulationsintensität des ersten Routings (LFO2 moduliert „Osc2 Wave“) und
die LFO 2 Rate.
Verzerrte FM-Sounds mit Monophonic Unison erzeugen
Das Setting „FM Megafat“ eignet sich besonders für verzerrte Bässe oder gitarrenähnliche
Sounds. Im oberen Bereich wird der Sound etwas kratzig. Dies ist hier auch mit noch so viel
Keyscaling nicht aufzufangen – aber nicht jeder Sound muss über 5 Oktaven gut klingen!
Führen Sie die folgenden Schritte aus:
mm Probieren Sie eine extreme Verstimmung mit „Analog“ aus.
mm Der Flanger passt gut zu diesem Sound.
mm Aktivieren Sie die voreingestellte Filter-Hüllkurve, indem Sie die „Cutoff Frequency“ von Filter 2
auf „0“ herabsetzen.
mm Für fette Lead-Sounds eignet sich etwas „Glide“.
mm Und wie immer beim FM erzielen Sie drastische Klangveränderungen durch andere
Frequenzeinstellungen der beiden Oszillatoren. Scheuen Sie keine krummen Intervalle.
Kapitel 3 ES2 89
FM-Sounds mit unüblichen Spektren erzeugen
Die interessantesten Ergebnisse lassen sich bei ungeraden Frequenzverhältnissen erzielen, wenn
man zunächst einmal keine Rücksicht auf die Beibehaltung der Grundstimmung nimmt.
Das Setting „FM Out of Tune“ bietet einen glockigen Klang, ähnlich wie der einer Ringmodulation.
Es wurde durch ein Setting von 30 s 0 c erreicht, wobei der Modulator auf einen Wert von 0 s 0 c
eingestellt wurde. Solche Klänge wurden häufig in der elektronischen Musik der achtziger Jahre
verwendet und werden in den Musikrichtungen Ambient und Trance wieder populärer.
Mithilfe von Filtern, Hüllkurven und Effekten kann der Sound weiterentwickelt werden. Allerdings
gibt es ein kleines Problem: Der Sound ist verstimmt.
Führen Sie die folgenden Schritte aus:
mm Verwenden Sie Oszillator 3 als Referenz für die Stimmung des FM-Sounds, indem Sie den Zeiger
im Triangle bewegen.
mm Sie werden feststellen, dass der FM-Klang in F gestimmt ist, also 5 Halbtöne zu hoch bzw. 7
Halbtöne zu tief.
mm Stellen Sie Oszillator 1 und 2 um jeweils fünf Halbtöne (500 ct) tiefer ein. Eine Höherstimmung
kommt nicht in Frage, da Oszillator 1 dann auf „37 s 0 c“ stehen müsste, der Maximalwert aber „36
s 0 c“ beträgt.
mm Wichtig ist bei diesem Vorgang, dass das Frequenzverhältnis (Intervall) zwischen Oszillator 1 und
2 beibehalten wird. Das heißt, Oszillator 1 = 25 s O c und Oszillator 2 = –5 s 0 c.
ES2-PWM-Sounds erzeugen
Die Pulsbreitenmodulation (Pulse Width Modulation, PWM) ist eine der wichtigsten Funktionen
jedes Analogsynthesizers.
Einfachen PWM-Sound einrichten
mm Wählen Sie das Setting „PWM Start“ und bewegen Sie langsam den Wave-Drehregler zwischen
den Symbolen für Rechteckwelle und Pulswelle hin und her. Beide Symbole sind grün markiert.
Was Sie hören, ist eine manuelle Pulsbreitenmodulation.
mm Wählen Sie das Setting „PWM Slow“. Der LFO 1 steuert in diesem Fall die Quelle der
Pulsbreitenmodulation und nicht Ihre manuellen Bewegungen. Das Ergebnis dürfte sich
ähnlich anhören.
mm Heben Sie die „LFO 1 Rate“ vom voreingestellten Wert 0,230 auf 4,400 an. Das Ergebnis ist eine
klassische, schnelle PWM.
mm In diesem und im nächsten Schritt soll die PWM so eingestellt werden, dass die Modulation
unten langsamer und oben zunehmend schneller wird. Dies ist für viele Sounds wünschenswert
(z. B. Synth-Strings). Reduzieren Sie zunächst „LFO 1 Rate“ auf 3.800.
mm Stellen Sie die Intensität der bereits vorbereiteten zweiten Modulation (Target = LFO1 Rate,
Source = Kybd) auf 0,46. Die PWM wird dadurch anders skaliert und ist jetzt im oberen Bereich
schneller als unten. Das Ergebnis können Sie auch im Setting „PWM Scaled“ hören.
Tipp: Vermeiden Sie bei PWM-Sounds „Drive“ oder „Distortion“.
Fettere Sounds
mm Um den PWM-Klang fetter und dichter zu gestalten, nehmen wir Oszillator 3 zuhilfe, der ebenfalls
PWM erzeugen kann. Tatsächlich kann sogar auch Oszillator 1 PWM liefern. Die Oszillatoren 2 und
3 sind im Setting „PWM 2 Osc“ relativ stark gegeneinander verstimmt. Ziel ist es, diesen PWMBasisklang
zu typischen PWM-Strings weiterzuentwickeln. Hier ist Ihr eigener Geschmack gefragt.
Kapitel 3 ES2 90
mm Stellen Sie den Chorus-Effekt mit „Intensity“ ein. Es bieten sich höhere Werte an, die den Sound
recht breit machen.
mm Programmieren Sie Envelope 3 nach Ihren eigenen Vorstellungen. Sie sollten zumindest die
Zeiten für „Attack“ und „Release“ erhöhen. Wenn Sie mögen, stellen Sie „Velocity“ ein. Wenn Sie
den Sound nicht nur als simples Pad einsetzen möchten, ist es auch sinnvoll, eine relativ kurze
Decay-Zeit und einen niedrigeren Sustain-Pegel von etwa 80 % bis 90 % einzustellen.
mm Reduzieren Sie die Werte von „Cutoff“ und „Resonance“ von Filter 1, um den Sound weicher
zu gestalten.
mm Sichern Sie den neu gestalteten Sound als Setting.
mm Vergleichen Sie das Ergebnis mit dem Original-Setting von „PWM 2 Osc“. Sie werden überrascht
sein, wie stark sich der Klang mit nur wenigen Einstellungen verändert hat.
mm Vergleichen Sie Ihre eigenen PWM-Strings auch mit dem Setting „PWM Soft Strings“, das ebenfalls
auf Basis der obigen Schritte entstand. Eine gewisse Ähnlichkeit sollte erkennbar sein.
Ringmodulierte ES2-Sounds erzeugen
Bei einer Ringmodulation werden die beiden Input-Signale des Ringmodulators so miteinander
verknüpft, dass ihre Summen- und Differenzfrequenzen am Output des Ringmodulators zur
Verfügung stehen.
Beim ES2 gibt Oszillator 2 eine Ringmodulation aus, der von einer Rechteckwelle des Oszillators
2 und der Welle des Oszillators 1 gespeist wird, wenn „Ring“ als Wellenform von Oszillator 2
festgelegt ist.
Dies ergibt bei ungeraden Intervallen (Frequenzverhältnissen) der Oszillatoren glockenähnliche
Klänge, wie im Setting „Ringmod Start“.
Der dritte Oszillator kann als Referenzoszillator für das Erhalten der korrekten Grundstimmung
verwendet werden. Allerdings kann es auch reizvoll sein, den ringmodulierten Klang „Out of
Tune“ beizubehalten, wenn dieses Signal als Oberton- und Harmonieanteil für eine andere
Wellenform gesehen wird. Der Grundton kann dann von Oszillator 3 zugemischt werden.
Atmosphärischen Glockenklang erzeugen
Probieren Sie Folgendes mit dem Setting „Ringmod Start“:
mm Um die Möglichkeiten der Ringmodulation kennenzulernen, sollten Sie zunächst ausgiebig mit
den Frequenzeinstellungen der Oszillatoren 1 und 2 experimentieren. Vielleicht kehren Sie zu
der vorgegebenen Einstellung „29 s 0 c/21 s 0 c“ zurück, die übrigens nicht verstimmt klingt
Die Ringmodulation eignet sich nicht nur für glockige Klänge. Wenn Sie niedrigere Frequenzen
einstellen, werden Sie auf recht experimentelle Klänge stoßen. Auch das Fine Tuning der
Oszillatoren kann interessante Effekte ergeben.
mm Probieren Sie einmal diese Einstellung für den Chorus-Effekt aus: „Intensity“ = 50 % und „Rate“ ca.
2/3 des Maximalwerts.
mm Setzen Sie die Zeiten für „Attack“ und „Release“ von Envelope 3 nach Ihrem Geschmack.
mm Wenn der Sound etwas rauer sein soll, versuchen Sie es mit „Drive“ und „Filter FM“.
mm Alles andere bleibt Ihrer Kreativität und Phantasie überlassen.
Kapitel 3 ES2 91
Sync-Sounds mit dem ES2-Oszillator erzeugen
Durch die Verwendung der Sync-Wellenformen Rechteck und Sägezahn werden die Frequenzen
der Oszillatoren 2 und 3 mit der Frequenz des Oszillators 1 synchronisiert. Im Setting „Sync Start“
klingt nur Oszillator 2. Oszillator 3 ist ausgeschaltet.
Ein typischer Sync-Sound entsteht, wenn die Frequenz des Sync-Oszillators über einen großen
Bereich dynamisch verändert wird. Diese Frequenzmodulationen (Sweeps) können auf unterschiedliche
Weise erfolgen.
Setting „Sync Start“ erweitern
Führen Sie die folgenden Schritte aus:
mm Probieren Sie zunächst die bereits vorprogrammierte Sync-Modulation mit dem
Modulationsrad aus.
mm Als zweite Modulation wurde die Steuerung mit der Envelope 1 voreingestellt (Target = Pitch
2, Source = Env 1). Wenn Sie den Minimumwert auf 1,0 setzen, hören Sie eine klassische Sync-
Hüllkurve. Testen Sie auch kürzere Decay-Zeiten von Envelope 1.
mm Damit der Sync-Sound (nach Ausklingen der Decay-Phase) nicht steril wird, kann zusätzlich eine
Sync-Modulation mit dem LFO erfolgen. Verwenden Sie hierfür den dritten Router-Kanal und
setzen Sie den Minimalwert der von LFO 1 erzeugten Modulation auf 0,50.
mm Ersetzen Sie die synchronisierte Rechteckwelle durch eine synchronisierte Sägezahnwelle und
entscheiden Sie, ob Ihnen das Ergebnis gefällt.
Hinweis: Eine Pulsbreitenmodulation (PWM) ist auch mit der synchronisierten Rechteckwelle der
Oszillatoren 2 und 3 möglich. Eine Modulation des jeweiligen Wave-Parameters resultiert in einer
PWM, wenn die synchronisierte Rechteckwelle ausgewählt ist.
Vector-Synthese im ES2
In den folgenden Beispiel-Settings erhalten Sie praktische Hilfe und Tipps zur Programmierung
von Vector-Hüllkurven.
Vector Envelope kennenlernen
In dem Setting „Vector Start“ werden die Mischungsverhältnisse der drei Oszillatoren mit der
Hüllkurve „Vector Envelope“ gesteuert. Für die Oszillatoren ist jeweils eine unterschiedliche
Wellenform eingestellt.
mm Wechseln Sie von der Router-Ansicht zur Vector-Ansicht.
mm In der Basis-Einstellung verfügt die Vector-Hüllkurve über drei Hüllkurvenpunkte. Punkt 1 ist
der Startpunkt, Punkt 2 ist der Sustain-Punkt, Punkt 3 ist der Endpunkt, der in der Release-Phase
angefahren wird. Wenn Sie auf die Punkte klicken, können Sie im Triangle beobachten, dass dort
das Mischungsverhältnis immer hundertprozentig auf Oszillator 1 eingestellt ist.
mm Klicken Sie auf Punkt 2 und verschieben Sie den Zeiger im Triangle in Richtung Oszillator 2. Sie
hören jetzt statt des vorherigen Sägezahnklangs (Oszillator 1) eine Rechteckwelle (Oszillator 2).
mm Aktivieren Sie die Vector-Hüllkurve, indem Sie den Parameter „Solo Point“ ausschalten.
Solange er eingeschaltet ist, hören Sie ausschließlich die für den markierten Punkt ausgewählte
Klangeinstellung und keine dynamische Modulation. Nach dem Ausschalten von „Solo
Point“ hören Sie nun mit jeder ausgelösten Note einen fließenden Übergang von Sägezahnzu
Rechteckwelle.
mm Verändern Sie die voreingestellte Zeit von 498 ms zwischen den Punkten 1 und 2.
Kapitel 3 ES2 92
mm Klicken Sie bei gedrückter Umschalttaste auf den Bereich zwischen den Punkten 1 und 2. Ein
neuer Punkt wird hinzugefügt und der bisherige Punkt 2 wird zu Punkt 3. Die vorherige Zeit
zwischen Punkt 1 und 2 wird auf die beiden neuen Abschnitte (Punkt 1 und 2, Punkt 2 und 3)
verteilt. Die Anteile hängen davon ab, wo der neue Punkt gesetzt wird. Wenn Sie ihn in der Mitte
setzen, findet eine etwa gleiche Aufteilung statt.
mm Klicken Sie auf den neu erzeugten Punkt 2 und verschieben Sie nun den zugehörigen Zeiger im
Triangle in Richtung Oszillator 2.
mm Klicken Sie auf Punkt 3 und verschieben Sie den zugehörigen Zeiger im Triangle in Richtung
Oszillator 3. Sie hören jetzt ein Morphing zwischen den drei Oszillatoren, also den Wellenformen
Sägezahn, Rechteck und Dreieck am Sustain-Punkt.
mm Klicken Sie auf Punkt 4 (Endpunkt) und verschieben Sie den zugehörigen Zeiger im Triangle in
Richtung Oszillator 1, wenn er nicht bereits dort steht. Stellen Sie Release (R) in Mittelposition. Sie
hören jetzt, dass der Klang nach Loslassen der Taste zum Sägezahn von Oszillator 1 übergeht.
Vector-Synthese mit dem Planar Pad
Das Setting „Vector Envelope“ setzt dort an, wo das Setting „Vector Start“ endete. Es ist also eine
einfache Vector-Hüllkurve vorhanden, die aus vier Punkten besteht und bisher ausschließlich das
Mischungsverhältnis der Oszillatoren (das Dreieck) moduliert.
Im vorliegenden Fall soll die Vector-Hüllkurve zusätzlich zwei weitere Parameter steuern: die
„Cutoff Frequency“ von Filter 2 und „Panorama“. Diese sind als X- und Y-Ziele im Planar Pad voreingestellt.
Ihre Intensität beträgt jeweils 0,50.
Führen Sie die folgenden Schritte aus:
mm Aktivieren Sie „Solo Point“, um die Einstellungen für die einzelnen Punkte besser hören
zu können.
mm Klicken Sie auf Punkt 1. Sie hören jetzt nur noch den Oszillator 1 (Sägezahnwelle).
mm Verschieben Sie den Zeiger im Planar Pad ganz nach links, was zu einer tiefen Cutoff-Frequenz für
Oszillator 2 führt.
mm Klicken Sie auf Punkt 2. Sie hören jetzt nur noch den Oszillator 2 (Rechteckwelle).
mm Verschieben Sie den Zeiger im Planar Pad ganz nach unten, um die Panorama-Position ganz nach
rechts zu verschieben.
mm Klicken Sie auf Punkt 3. Sie hören jetzt nur noch Oszillator 3 (Dreieckwelle).
mm Verschieben Sie den Zeiger im Planar Pad ganz nach oben, um die Panorama-Position ganz nach
links zu verschieben.
mm Aktivieren Sie „Solo Point“. Der von der Vector-Hüllkurve gesteuerte Sound beginnt jetzt mit einer
stark gefilterten Sägezahnwelle, die in eine ungefilterte Rechteckwelle übergeht. Der Ton beginnt
rechts und endet schließlich bei einer Dreieckwelle auf der linken Seite. Nach Loslassen der Taste
erklingt wieder der Sägezahn.
Vector-Synthese-Loops verwenden
Der Basisklang des Settings „Vector Loop“ (ohne die Vector-Hüllkurve) besteht aus drei
Elementen:
•• Osc 1 = Ein metallisches FM-Spektrum, das von dem im Oszillator 2 eingestellten Wavetable
moduliert wird.
•• Osc 2 = Ineinander übergehende Digiwaves, gesteuert durch den LFO 2, bilden einen so
genannten „Wavetable“.
•• Osc 3 = Ein PWM-Klang, der in der Modulationsgeschwindigkeit aufgrund des Rate-Scalings
von LFO 1 ausgewogen ist.
Kapitel 3 ES2 93
Die sehr unterschiedlichen Klangfarben sollen als Basis für die Vector Loop verwendet werden.
„Unison“ und „Analog“ tragen dazu bei, dass der Sound fett und breit klingt.
Eine sehr langsame Forward Loop ist bereits voreingestellt. Diese bewegt sich von Oszillator 3
(Punkt 1, PWM) zu Oszillator 1 (Punkt 2, FM), dann wieder zu Oszillator 3 (Punkt 3, PWM), danach
zu Oszillator 2 (Punkt 4, Wavetable) und schließlich erneut zu Oszillator 3 (Punkt 5, PWM). Die
Punkte 1 und 5 sind identisch, um so einen Übergang von Punkt 5 zu Punkt 1 in der Forward
Loop zu vermeiden. Dieser Übergang ließe sich zwar durch den Parameter „Loop Smooth“ glätten,
dies würde sich aber ungünstig bei der späteren rhythmischen Gestaltung auswirken.
Die Abstände zwischen den Punkten der Vector-Hüllkurve wurden im Hinblick darauf auch
bereits exakt gleich eingestellt. Bei aktivierter „Loop Rate“ werden die Hüllkurvenzeiten nicht in
Millisekunden (ms), sondern in Prozent angegeben. Da vier Zeiten mit einer Länge von je 25 %
vorhanden sind, bestehen optimale Voraussetzungen für eine Umwandlung in Notenwerte.
Führen Sie die folgenden Schritte aus:
mm Schalten Sie die Vector-Hüllkurve aus, indem Sie „Solo Point“ auf „on“ setzen. Hören Sie sich die
einzelnen Bestandteile des Klangs zunächst einmal isoliert an.
mm Nutzen Sie die Gelegenheit und ändern Sie die Positionen des Zeigers im Planar Pad nach Ihrem
Geschmack. Die X/Y-Achsen des Planar Pads steuern die Cutoff-Frequenz von Filter 2 und die
Panorama-Position. Änderungen an diesen Werten lassen den Sound noch lebendiger wirken.
mm Aktivieren Sie die Vector-Hüllkurve, indem Sie „Solo Point“ auf „off“ setzen. Überprüfen Sie das
Ergebnis und stellen Sie die Zeigerpositionen im Planar Pad fein ein.
mm Verändern Sie die Loop Rate vom voreingestellten Wert 0,09 auf 2,00. Sie hören nun eine periodische
Modulation wie die eines LFOs. Allerdings ist noch keine Temposynchronisation vorhanden.
Um die Loop-Geschwindigkeit zum Projekttempo zu synchronisieren, bewegen Sie den Rate-
Drehregler ganz nach links und wählen Sie dort einen Notenwert bzw. eine Taktanzahl.
mm Sie können schnellere rhythmische Notenwerte erzeugen, indem Sie auf den Bereich zwischen
zwei Punkten klicken und die Werte (entstehend aus der Rasterung) auf z. B. 12,5 % setzen.
Erzeugen von Kickdrums mithilfe eines selbstoszillierenden Filters und der Vector-Hüllkurve
Sie wissen vielleicht, dass mit oszillierenden Filtern wunderbare elektronische Kicks erzeugt
werden können. Dies funktioniert auch mit dem ES2 hervorragend, insbesondere wenn die
Vector-Hüllkurve zur Filtermodulation verwendet wird. Der Vorteil gegenüber den ADSRHüllkurven
besteht darin, dass zwei voneinander unabhängige Decay-Phasen eingestellt werden
können. Der Distortion-Effekt sorgt für den richtigen Druck, ohne dass der Basisklang seinen
Charakter verliert.
Hinweis: Damit das Setting auch richtig knallt, muss unbedingt „Flt Reset“ aktiviert sein, da alle
Oszillatoren in diesem Setting ausgeschaltet sind und das Filter etwas Zeit braucht, bis es zu
schwingen beginnt. „Flt Reset“ speist einen kurzen Impuls bei Notenbeginn in das Filter, sodass
es von Anfang an schwingt.
Mithilfe des Basis-Settings „Vector Kick“ werden Sie vermutlich für jede Dance-Produktion in kürzester
Zeit den passenden Bassdrum-Sound finden.
Ändern Sie die folgenden Parameter, um Klangvariationen zu erzeugen:
mm Flankensteilheiten von Filter 2: 12 dB, 18 dB, 24 dB
mm Distortion: „Intensity“ und „Soft“ oder „Hard“
mm Envelope 3 Decay-Zeit: (D)
mm Vector-Hüllkurvenzeit 1 > 2 (= Preset 9,0)
Kapitel 3 ES2 94
mm Vector-Hüllkurvenzeit 2 > 3 (= Preset 303)
mm Vector Time Scaling
Perkussive Synthesizer und Bässe mit zwei Filter-Decay-Phasen erzeugen
Wie beim Setting „Vector Kick“ verwendet auch hier das Setting „Vector Perc Synth“ die Vector-
Hüllkurve zur Steuerung der Filter-Cutoff-Frequenz mit zwei voneinander getrennt einstellbaren
Decay-Phasen. Dies wäre mit einer normalen ADSR-Hüllkurve nicht realisierbar.
Versuchen Sie, mit einer Modifikation dieser Parameter weitere perkussive Synthesizersounds
oder Synthesizerbässe zu programmieren:
mm Vector-Hüllkurvenzeit 1 > 2 (= Decay 1)
mm Vector-Hüllkurvenzeit 2 > 3 (= Decay 2)
mm Vector Time Scaling
mm Punkte 1, 2, und 3 (= Cutoff-Frequenz) im Planar Pad
mm Wellenformen (andere Wellenformen wählen)
Erzeugen von ES2-Sounds mit Templates
ES2-Sound-Design mit Templates
Es gibt eine Reihe von Templates für das Tutorial, die Sie über das Einblendmenü „Settings“
öffnen können (wählen Sie den Ordner „Tutorial Settings“).
Diese Programmierübung mit dem ES2 wurde als Teil der „Werkzeuge“ eingebaut, um Ihnen den
Aufbau des ES2 durch praktische Übungen näherzubringen.
Wenn Sie sich mit dem ES2 und seinen Funktionen und Parametern in dieser Weise vertraut
machen, erzeugen Sie auch Settings, die als Vorlage und Ausgangspunkt für weitere
Klangschöpfungen dienen.
Slapped StratENV-Setting im ES2
Ziel dieses Settings war es, den Sound einer Stratocaster nachzubilden, bei dem sich der
Pickup-Schalter in der Mittelposition für den mittleren und den Stegpickup (in Phase) befindet.
Besonderes Augenmerk wurde dabei auf das nasale, für diesen Sound typische „Twäng“ gelegt.
Das Ergebnis ist ein recht brauchbares Template für Saiteninstrumente, Cembalos, Clavinets
oder Ähnliches.
Der Aufbau:
Die Oszillatoren 1 und 3 bestimmen die grundlegende Wellenform im Bereich der Digiwaves.
Die Veränderung beider Digiwaves in Abstimmung miteinander liefert bereits eine umfangreiche
Anzahl an Grundvariationen. Manche erfüllen ihren Zweck auch recht gut für
E-Piano-ähnliche Keyboardsounds.
Oszillator 2 fügt in seiner synchronisierten Einstellung Obertöne hinzu, daher sollten Sie hier
lediglich seine Frequenz oder die Sync-Wellenform verändern. Daher gibt es einige Werte, die ein
wesentlich stärkeres, ausgewogeneres Signal erzielen.
Es wurde ein alter Trick verwendet, der eine kraftvolle Attack gewährleistet. Dadurch wurde
ein Effekt erzeugt, den die Verwendung einer bloßen Welle selbst mit den besten und
schnellsten Filtern nicht ermöglichen würde: Sie verwenden eine Hüllkurve (in diesem Fall Env 1)
für einen kurzen „Ruck“ des Fensters einer Wavetable (oder aller Wavetables gemeinsam, falls dies
sinnvoll ist).
Kapitel 3 ES2 95
Die Decay-Zeit von Envelope 1 erzeugt diesen kurzen Ruck, indem die Wave-Drehregler sämtlicher
Oszillatoren bewegt werden. (Obwohl es nicht wirklich sinnvoll ist, diesen Hüllkurventrick
auch auf den gesyncten Sägezahn-Oszillator Osc2 anzuwenden, sollten Sie es trotzdem einmal
versuchen.) Sie können daher die Qualität des „Knacks“ variieren zwischen:
•• Hüllkurve 1 nimmt Einfluss auf den Attack-Noise und ändert die Decay-Länge – ein kurzes
Decay sorgt für eine Pegelspitze, ein langes Decay führt dagegen zu einem Grollen (Growl), da
Hüllkurve 1 mehrere Wellen aus der Wavetable ausliest.
•• Modulationsziel – Sie können es jedem Oszillator separat zuweisen.
•• Startpunkt – Sie variieren den Start des Wellenfensters mit der minimalen und maximalen
Regelung der Modulation von EG1/Osc.waves: Negative Werte für eine Startwelle vor der ausgewählten
Welle, positive Werte für eine Startwelle von einer Position hinter der ausgewählten
Welle, die die Tabelle zurückrollt.
Experimentieren Sie mit der Wellenmodulation. Der „Growl“-Effekt eignet sich für Brass-Sounds
und so manche Orgel profitiert vom Klick des kurzen Wavetable-Schubs.
Envelope 2, die für die Filterangelegenheiten verantwortlich ist, kommt mit einem leichten
Attack für den Slap-Charakter hinzu. Allerdings können Sie Attack genauso gut auf den schnellsten
Wert setzen, um das Wah-Wah-Attack herauszunehmen. Dabei bleibt genug Knack erhalten.
LFO 2 wird zu Spielzwecken als Echtzeitquelle für ein Vibrato verwendet. Im vorliegenden
Beispiel ist das Filter „Modwheel“ und „Pressure“ zugewiesen. Sie können jederzeit die
Einstellungen für Rad und Druck ändern.
Die Anschlagsdynamik ist sehr sensibel gewählt, da viele Synthesizer-Spieler die Tasten
nicht so stark anschlagen wie Klavierspieler. Spielen Sie die Strat also sanft, da sich sonst der
Slap ein wenig zirpig verhalten könnte. Oder aber passen Sie einfach den Velocity-Wert der
Filtermodulation Ihrer eigenen Spielweise an.
Sie können bei Bedarf auch den Wert für die Stimmenanzahl (Voices) auf den Maximalwert
erhöhen. Sechs Saiten sollten für eine Gitarre genügen, jedoch können sich ein paar zusätzliche
Stimmen bei gehaltenen Noten als nützlich erweisen.
ES2-Wheelrocker-Setting
Dieser gewöhnliche Orgel-Patch offenbart keine tiefgreifenden Geheimnisse fortgeschrittener
Programmierkünste: Er besteht lediglich aus einer Kombination dreier Oszillatoren mit gemischten
Wave-Pegeln. Sie finden sicherlich eine andere Kombination, die Ihren Vorstellungen von
einem Orgelklang eher entspricht. Experimentieren Sie einfach mit den Digiwaves.
Beachten Sie den Effekt des Modulationsrads: Halten Sie einen Akkord und bewegen Sie
das Rad langsam bis ganz nach oben. Das Programm simuliert einen beschleunigenden
Leslie-Rotor-Lautsprecher.
Die Modulationseinrichtungen erfüllen folgende Aufgaben:
•• Die Modulation 1 weist Envelope 2 dem Filter 1 zu (das einzige, das in diesem Patch
Verwendung findet), um von der Hüllkurve einen kleinen Orgelklick zu erhalten. Im Diskant
wird das Filter durch den Maximum-Drehregler „Keyboard as via“ weiter geöffnet.
•• Die Modulationen 2 und 3 erzeugen ein gegenphasiges Vibrato der Oszillatoren durch LFO 1.
•• Das Modulations-Routing 4 muss nicht eingestellt werden, aber Sie können es natürlich dennoch
einstellen. Es wurde so konfiguriert, dass es ENV1 nutzt, um die Wavetable zu „pushen“.
Stellen Sie „ENV1 Decay“ ein, um den Sound mehr wie eine Kirchenorgel klingen zu lassen.
Stellen Sie „ENV1 Attack“ ein, um durch die Wavetable zu sweepen.
Kapitel 3 ES2 96
•• Die Modulation 5 reduziert die Gesamtlautstärke, damit sich der Gesamtpegel nicht allzu drastisch
erhöht, wenn sich die Modulationen in Richtung des Maximalwerts bewegen.
•• Die Modulationen 6 und 7 verstimmen die Oszillatoren 2 und 3 mit symmetrischen Werten
gegeneinander, sodass sich die Gesamtstimmung nicht ändert. Auch dies erfolgt gegenphasig
zu den Modulationen 2 und 3. Oszillator 1 behält seine Stimmung bei.
•• Die Modulation 8 bringt LFO 1 als Modulator für die Panoramabewegung ins Spiel. Das Patch
verändert sich von Mono zu Stereo. Sollten Sie den Stereo-Effekt auch in Ruheposition des
Leslies bevorzugen, belegen Sie einfach das Minimum mit einem Wert, um eine permanente,
langsame Rotationsbewegung zu erzielen. Eine andere Modifikation kann in einer stärkeren
Kanaltrennung durch einen höheren Maximum-Wert bestehen.
•• Die Modulation 9 beschleunigt die Modulationsfrequenz von LFO 2.
•• Modulation 10: Zur Verstärkung der Modulationsintensität wurde die Cutoff-Frequenz auf
Filter 1 ein wenig angehoben.
Passen Sie diese Einstellungen Ihren eigenen Vorstellungen an. Beachten Sie dabei allerdings,
dass es Modulationspaare gibt, die symmetrisch verändert werden sollten: Die Modulations-
Routings 2 und 3 arbeiten ebenso wie die Modulations-Routings 6 und 7 als Paar. Wenn Sie
also den Maximalwert von Pitch 2 auf einen Minuswert setzen, beachten Sie bitte, dass der
Maximalwert von Pitch 3 auf denselben positiven Wert gesetzt werden muss (das Gleiche gilt für
das Modulationspaar 6 und 7).
Sie können auch LFO 2 verwenden, um die Pitch-Diffusion gegen die Pitch- und Pan-
Bewegungen von LFO 1 zu erhöhen. Tauschen Sie ihn dazu einfach gegen LFO 1 auf den
Modulationen 2 und 3 aus. Beachten Sie, dass es keine Modulationsquelle für die Leslie-
Beschleunigung gibt, daher müssen Sie diese auf statische Weise durch Einblenden verwenden.
Als Alternative müssen Sie eine der anderen Modulationen zugunsten eines zweiten Twirl opfern.
Um eine weitere Stereo-Modifikation zu erzielen, können Sie das Patch im Unison-Modus mit
einer leichten Verstimmung verwenden. Passen Sie hierfür den Parameter „Analog“ an.
Crescendo-Blechbläser-Setting im ES2
Die Oszillatoren werden für die folgenden Vorgänge verwendet:
•• Oszillator 1 spielt die für klassische, synthetische Blechbläser-Sounds typische Sägezahnwelle.
•• Oszillator 2 fügt dem eine nicht sehr nach Blechbläsern klingende Pulswelle für den Ensemble-
Effekt hinzu: Sie wird von LFO 1 (Modulation 4) in der Pulsbreite moduliert.
Hinweis: Bei jeder Modifikation sollte der folgende wichtige Punkt beachtet werden. Es gibt vier
Parameter, die schwer zu handhaben sind, da sie sich recht unterschiedlich verhalten, wenn einer
von ihnen verändert wird. Deshalb müssen immer alle vier Parameter angepasst werden, sobald
einer verändert wird.
•• Sie können die mittlere Pulsbreite mit dem Wave-Parameter von Oszillator 2 einstellen. Im
vorliegenden Beispiel wurde eine Art „fette“ Position gewählt, die sich nahe an der idealen
Rechteckwelle befindet, da das Ziel ein voller, voluminöser Synthbrass-Sound ist.
•• Die Modulation 4 steuert die Modulationsintensität, d. h. wie weit sich die Pulsbreite
von „weit“ zu „eng“ bewegt, wenn sie durch den LFO moduliert wird. Variieren Sie den
Minimum-Parameter.
•• Die Geschwindigkeit der Pulsbreitenmodulation wird von der „LFO 1 Rate“ bestimmt. Für
dieses Patch wurden beide LFOs eingesetzt, um eine stärkere Diffusion mit unterschiedlichen
Modulationsgeschwindigkeiten zu erzielen.
Kapitel 3 ES2 97
Tipp: Es empfiehlt sich, den LFO1 für alle permanenten, automatisierten Modulationen zu
verwenden, da seine Intensität mit seinem eigenen EG-Parameter verzögert werden kann.
LFO 2 eignet sich mehr für alle Echtzeitmodulationen, die Sie während der Wiedergabe per
Modulationsrad, Pressure oder andere Controller in Echtzeit steuern.
•• Eine Keyboard-Zuweisung wurde als Quelle für Modulations-Routing 4 angelegt, da alle
Tonhöhen- oder Pulsbreitenmodulationen eine stärkere Verstimmung in den tieferen
Tastaturlagen zu bewirken scheinen, während mittlere und hohe Lagen durchaus den
Diffusionseffekt liefern können. Daher sollten Sie die tieferen Lagen zuerst abstimmen, um
eine akzeptable Modulation zu erzielen. Überprüfen Sie, ob die Modulationen im oberen
Tastaturbereich für Sie zufriedenstellend klingen. Passen Sie Intensität (Maximum) und
Tastaturbelegung (Minimum) an.
Oszillator 3 erzeugt eine Digiwave, die im Wellenmix „blechern“ genug ist. Es hätte ebenso gut
eine weitere Pulsbreitenmodulation angelegt werden können, um den Ensemble-Effekt zu unterstützen,
oder ein weiterer Sägezahn, der gegen den auf Oszillator 1 hätte verstimmt werden
können, um den Sound noch fetter zu gestalten.
Außerdem wird durch einen kurzen „Ruck“ des Wavetables ein wenig „Growl“ hinzugemischt, wie
bereits unter Slapped StratENV-Setting im ES2 auf Seite 94 beschrieben. Diese Anordnung befindet
sich in Modulation 3 (Oszillator 3 Wave wird durch das Decay von Envelope 1 bewegt).
Andere Regler haben verschiedene Funktionen:
•• Envelope 1 moduliert die Frequenz von Oszillator 2 und invers die von Oszillator 3. Reibungen
der beiden Oszillatoren sind die Folge. Auch die stabile Frequenz von Oszillator 1 ist davon in
der Attack-Phase des Sounds betroffen.
•• Die Filterhüllkurve schließt impulsiv in der Attack-Phase, um danach mit einem etwas langsameren
Crescendo wieder zu öffnen.
•• Das Modulationsrad erzeugt in Echtzeit bei Bedarf ein weiteres Crescendo, das die allgemeine
Frequenzmodulation durch LFO2 auslöst.
•• „Pressure“ wiederum schließt als eine dagegen wirkende Echtzeitmodulation das Filter. Daher
können Sie mit einem zusätzlichen Decrescendo spielen, das über Druck gesteuert wird.
Probieren Sie es aus, um ein Gefühl für das Verhalten des Patches zu bekommen. Sie werden
feststellen, dass es eine ganze Palette von Ausdrucksmöglichkeiten liefert: Velocity, Pressure
nach dem Note On und Pressure vorweg. Drücken Sie einmal mit der linken Hand bereits
angeschlagene Tasten, bevor Sie mit der rechten Hand einen neuen Akkord anschlagen.
ES2-MW-Pad-Creator-Setting
Hiermit wird versucht, ein Patch zu entwickeln, das selbst in der Lage ist, neue Patches
zu entwickeln.
Oszillator 2 ist in der Pulsbreite moduliert, um einen starken Ensemble-Effekt hervorzurufen (weitere
Informationen finden Sie unter Crescendo-Blechbläser-Setting im ES2 auf Seite 96).
Die Oszillatoren 1 und 3 sind innerhalb ihrer Wavetables auf eine Art Startkombination eingestellt.
Diese können nach Belieben verändert werden.
Das Modulationsrad auf Modulation 3 regelt eine Wavetable-Bewegung aller drei Oszillatoren.
Das heißt, Sie scrollen durch die Wavetables der Oszillatoren 1 und 3, während sich die Pulsbreite
des Oszillators 2 durch Bewegen des Modulationsrads verändert.
Kapitel 3 ES2 98
Bewegen Sie das Modulationsrad sehr langsam und Sie werden drastische Veränderungen innerhalb
der Wellenanordnung wahrnehmen. Jede Position des Rads erzeugt einen anderen, digitalen
Flächenklang. Vermeiden Sie hektische Bewegungen, sonst hören Sie Geräusche wie bei
einem AM-Radio.
Spielen Sie mit der Modulationsintensität der Wellenformen der Oszillatoren 1, 2 und 3 durch das
Modulationsrad. Dieser Parameter regelt sowohl Schrittweite als auch Bewegungsrichtung durch
die Wavetables. Experimentieren Sie mit positiven und negativen Werten.
Ein interessanter Nebeneffekt der FM-Zuweisung zu Filter 2 (Modulations-Routing 4 –
Lowpass-Filter FM) tritt auf, wenn das Modulationsrad in höhere Positionen bewegt wird: Die
Frequenzmodulation des Filters wird erhöht, was eine Betonung aller zyklischen Beats (vibrierende
Tonhöhen, Verstimmungen, Pulsbreite) bewirkt. So wird der gesamte Soundcharakter rauer
und rauschiger. Von daher bietet FM ein umfangreiches Experimentierfeld, wobei Sie zwischen
folgenden Optionen wählen können:
•• Festeingestellte Frequenzmodulation mit dem entsprechenden Regler des Filters 2.
Abschwächen der Intensität über das Modulationsrad: Definieren Sie als Maximum der
Modulation 4 einen negativen Wert.
•• Alternativ können Sie eine permanente Frequenzmodulation wählen, wobei Sie einen
Modulationskanal einsparen. Sie können „FM“ auch ausschalten, wenn es zu unrein klingt.
Als Spielhilfe ist die Druckdynamik (Pressure/Aftertouch) für das Vibrato angelegt (Modulation
10)* sowie eine leichte Anhebung der Cutoff-Frequenz, um die Modulation etwas zu betonen
(Modulation 9).
ES2-Wheelsyncer-Setting
Es gibt Sounds die nie aus der Mode kommen: Sounds mit synchronisierten Oszillatoren.
„Wheelsyncer“ ist ein 1-Oszillator-Lead-Sound, alle anderen Oszillatoren sind ausgeschaltet.
Obwohl Oszillator 2 der einzige ist, der einen Klang von sich gibt, hängt sein Ausgangssignal
vom stummgeschalteten Oszillator 1 ab.
Ändern Sie die Frequenz oder Verstimmung des Oszillators 1, wird die gesamte Tonhöhe transponiert
oder verstimmt.
Die Tonhöhe von Oszillator 2 definiert die Klangfarbe (oder die Obertöne) des synchronisierten
Sounds. Seine Veränderungen werden durch Modulation 7 geregelt, in der die Frequenz von
Oszillator 2 vom Modulationsrad gesteuert wird.
Wenn Sie das Modulationsrad drehen, können Sie durch das Spektrum von Obertönen scrollen,
die für Echtzeitveränderungen programmiert wurden. Jede Modifikation beginnt mit Oszillator
2, der 3 Halbtöne unterhalb der Gesamtstimmung liegt. Probieren Sie andere Werte aus. Eine
Änderung wird die Gesamtstimmung nicht beeinflussen.
Die nächste Modifikation kann in der Veränderung der Intensität von Modulation 7 liegen
(bzw. in ihrem Intervall). Wir haben den größtmöglichen Wert ausgewählt. Wenn er für Ihre
Anwendung zu extrem ist, können Sie ihn natürlich reduzieren.
Eine weitere Modifikation liegt in der Klangfarbe des Lead-Sounds selbst. Oszillator 1 ist
stummgeschaltet, da das Ergebnis bereits zufriedenstellend ist. Wenn Sie ihn aktivieren, ist die
gesamte Bandbreite seiner Wellenformen verfügbar. Von Digiwaves über die standardisierten
Synthesizerwellen bis zum Sinus, den Sie obendrein noch frequenzmodulieren können.
Kapitel 3 ES2 99
Die gesamte Echtzeitsteuerung erfolgt über das Modulationsrad, das zum Öffnen der Filter
im Modulations-Routing 6, für eine Panning-Bewegung im Modulations-Routing 8 und zur
Beschleunigung der Panning-Bewegung im Modulations-Routing 9 benutzt wird. Wenn Sie
intensivere Modulationsmöglichkeiten suchen, wird ein ähnliches Setup für eine Leslie-Speaker-
Simulation im Setting „Wheelrocker“ benutzt (vgl. ES2-Wheelrocker-Setting auf Seite 95.).
4
100
EFM1 – Übersicht
Der 16-stimmige EFM1 ist ein einfacher, aber leistungsstarker FM-Synthesizer. Er erzeugt obertonreiche,
glockige Digital-Sounds – Sounds, mit denen die FM-Synthese berühmt wurde.
Wenn Sie mit Synthesizer nicht vertraut sind, finden Sie weitere Informationen unter Synthesizer-
Grundlagen – Übersicht auf Seite 440. Hier werden grundlegende Begriffe erläutert und verschiedene
Klangerzeugungssysteme und ihre Funktionsweise im Überblick dargestellt.
Output parameters Extended parameters
Modulation parameters
Randomize parameters
Output parameters
Carrier parameters
Global parameters
Modulation parameters
Global parameters
Modulator parameters
EFM1 ist in mehrere Bereiche unterteilt.
•• Globale Parameter: Im oberen Bereich finden sich Parameter für die Gesamtstimmung des
EFM1. Weitere Parameter erlauben das Einstellen der Glide-Zeit (Portamento), das Beschränken
der maximalen Stimmenzahl und Andicken des Klangs mittels Unison. Weitere Informationen
finden Sie unter EFM1-Globalparameter auf Seite 105.
•• Modulator- und Carrier-Parameter: Zu der FM-Bedieneinheit gehören die Parameter des
Modulators, des Carriers (hervorgehobene, dunklere Bereiche) und der Drehregler für die
FM-Intensität (im Zentrum). Diese Parameter sind wesentlich für den grundlegenden Klang
von EFM1. Weitere Informationen finden Sie unter Modulator- und Carrier-Überblick auf
Seite 101.
EFM1
Kapitel 4 EFM1 101
•• Modulationsparameter: Die Modulationshüllkurve und der LFO, oben und unten in dem
pilzförmigen mittleren Bereich dienen dazu, Bewegung in den