diff --git a/CHANGELOG.md b/CHANGELOG.md index 72a53a95cc..95144de793 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,5 @@ # History +* [v4.2.0 'Batch'](#v4.2.0), 14th Sept, 2022 * [v4.1.0 'Phase'](#v4.1.0), 30th August 2022 * [v4.0.3 'Dovetail'](#v4.0.3), 18th July 2022 * [v4.0.2 'Relink'](#v4.0.2), 15th July 2022 @@ -28,6 +29,32 @@ * [v2.0.1](#v2.0.1), 9th Sept, 2014 * [v2.0 'Phoenix'](#v2.0), 2nd Sept, 2014 + + +## Version 4.2.0 'Batch' +14th September 2022 + + +The main purpose of this release is to address a booting issue discovered on a school Windows cluster with common security restrictions. This issue was reported by Adam Cooper from Moor Park High School & Sixth Form in the UK. Adam was wonderfully helpful in finding the specific issue and testing potential solutions. Thanks Adam! + +If you happen to have had any trouble running v4 of Sonic Pi on your school clusters, please give this release a go! (Note, this issue didn't affect v3 of Sonic Pi). + +In addition, there have been some translation improvements, Global Time Warp now has a greater range and a couple of `time_warp` related bugs were found and dealt with. Have fun! + +### GUI +* Change Global Time Warp range from +-250 to -250 -> 999. This lets users access the full phase down to a BPM of 48. + +### Improvements +* Booting process on Windows has been modified to enable it to run when executing in an environment which restricts access to CMD (which prevents terminal usage and running .bat files). This is typical in schools. +* Sonic Pi stores all its history, configuration and logs in a folder called `.sonic-pi` which is typically placed in the user's home directory. If the user happens to not have permission to write to their home directory, Sonic Pi now raises a descriptive error on boot and explains that the fix is to set an environment variable called `SONIC_PI_HOME` to point to a directory the user does have permission to write to. + +### Translations +* Improvements to the Dutch, Hungarian and Indonesian translations. + +### Bugfixes +* Teach timing safety system that `time_warp` doesn't sleep (even if it contains calls to `sleep` internally). This now means that wrapping all code within a `live_loop` with `time_warp` no longer causes the thread to spin out of control. It instead reports that the live loop did not sleep as expected. +* Throw error when attempting to call `sync` within a `time_warp`. This is because time warps are effectively timeless and `sync` asks the running thread to wait for an unknown period (until a matching event appears). Attempting to wait within a timeless context is clearly nonsensical! + ## Version 4.1.0 'Phase' diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index 4875a4624e..b940d1a68e 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -247,8 +247,7 @@ In addition to the Sonic Pi Core Team, we would like to extend our thanks to the following developers who have donated their time and effort to help grow and improve the Sonic Pi code base: - -* [Sam Aaron](https://github.com/sonic-pi-net/sonic-pi/commits?author=samaaron) (5304) +* [Sam Aaron](https://github.com/sonic-pi-net/sonic-pi/commits?author=samaaron) (5337) * [Ethan Crawford](https://github.com/sonic-pi-net/sonic-pi/commits?author=ethancrawford) (304) * [Hanno Zulla](https://github.com/sonic-pi-net/sonic-pi/commits?author=hzulla) (198) * [Joseph Wilk](https://github.com/sonic-pi-net/sonic-pi/commits?author=josephwilk) (160) @@ -313,7 +312,6 @@ effort to help grow and improve the Sonic Pi code base: * [Domingo Gómez](https://github.com/sonic-pi-net/sonic-pi/commits?author=domgomcom) (2) * [Eugene Kovalev](https://github.com/sonic-pi-net/sonic-pi/commits?author=wl8dr3) (2) * [Friends A.](https://github.com/sonic-pi-net/sonic-pi/commits?author=shaonianche) (2) -* [Haowen You](https://github.com/sonic-pi-net/sonic-pi/commits?author=) (2) * [Hubert Figuière](https://github.com/sonic-pi-net/sonic-pi/commits?author=hfiguiere) (2) * [Jose Añasco](https://github.com/sonic-pi-net/sonic-pi/commits?author=merongivian) (2) * [Katie Ots](https://github.com/sonic-pi-net/sonic-pi/commits?author=katiejots) (2) @@ -324,29 +322,19 @@ effort to help grow and improve the Sonic Pi code base: * [Mintesno Zewdu](https://github.com/sonic-pi-net/sonic-pi/commits?author=MinteZ) (2) * [Mistral Contrastin](https://github.com/sonic-pi-net/sonic-pi/commits?author=madgen) (2) * [Mukul Kolpe](https://github.com/sonic-pi-net/sonic-pi/commits?author=MukulKolpe) (2) -* [Nur Sodik](https://github.com/sonic-pi-net/sonic-pi/commits?author=) (2) -* [Pau Monfort](https://github.com/sonic-pi-net/sonic-pi/commits?author=) (2) * [Peter Shultz](https://github.com/sonic-pi-net/sonic-pi/commits?author=pashultz) (2) * [Phil Hagelberg](https://github.com/sonic-pi-net/sonic-pi/commits?author=technomancy) (2) * [Přemek Vyhnal](https://github.com/sonic-pi-net/sonic-pi/commits?author=premek) (2) -* [Rekc@h](https://github.com/sonic-pi-net/sonic-pi/commits?author=) (2) -* [Roger Narayan](https://github.com/sonic-pi-net/sonic-pi/commits?author=) (2) * [Scott Kitterman](https://github.com/sonic-pi-net/sonic-pi/commits?author=kitterma) (2) * [Shane Malone](https://github.com/sonic-pi-net/sonic-pi/commits?author=shanemalo) (2) -* [Theodore Tsirpanis](https://github.com/sonic-pi-net/sonic-pi/commits?author=) (2) +* [Theodore Tsirpanis](https://github.com/sonic-pi-net/sonic-pi/commits?author=teo-tsirpanis) (2) * [Will Stephenson](https://github.com/sonic-pi-net/sonic-pi/commits?author=wstephenson) (2) * [William W. Wu](https://github.com/sonic-pi-net/sonic-pi/commits?author=willy-vvu) (2) * [Adam Weiler](https://github.com/sonic-pi-net/sonic-pi/commits?author=dam-weiler) (1) * [Adlai](https://github.com/sonic-pi-net/sonic-pi/commits?author=adlai) (1) -* [Alejandro Sánchez Medina](https://github.com/sonic-pi-net/sonic-pi/commits?author=) (1) * [Alex McLean](https://github.com/sonic-pi-net/sonic-pi/commits?author=yaxu) (1) -* [Alex Popov](https://github.com/sonic-pi-net/sonic-pi/commits?author=) (1) -* [Anders Berggren](https://github.com/sonic-pi-net/sonic-pi/commits?author=) (1) -* [Andras Nemeth](https://github.com/sonic-pi-net/sonic-pi/commits?author=) (1) -* [Anhquan Phanle](https://github.com/sonic-pi-net/sonic-pi/commits?author=) (1) -* [Apokli](https://github.com/sonic-pi-net/sonic-pi/commits?author=) (1) +* [Apokli](https://github.com/sonic-pi-net/sonic-pi/commits?author=Apokli) (1) * [Aspasia Beneti](https://github.com/sonic-pi-net/sonic-pi/commits?author=aspasia) (1) -* [Basel Akasha](https://github.com/sonic-pi-net/sonic-pi/commits?author=) (1) * [Bernhard M. Wiedemann](https://github.com/sonic-pi-net/sonic-pi/commits?author=bmwiedemann) (1) * [Björn Ekström](https://github.com/sonic-pi-net/sonic-pi/commits?author=bjornekstrom) (1) * [Björn Þór Jónsson](https://github.com/sonic-pi-net/sonic-pi/commits?author=bthj) (1) @@ -354,7 +342,6 @@ effort to help grow and improve the Sonic Pi code base: * [Centre multimédia des Pieux](https://github.com/sonic-pi-net/sonic-pi/commits?author=epnlespieux) (1) * [Christian Perfect](https://github.com/sonic-pi-net/sonic-pi/commits?author=christianp) (1) * [Cosmin Stroe](https://github.com/sonic-pi-net/sonic-pi/commits?author=cstroe) (1) -* [Dan Hanley](https://github.com/sonic-pi-net/sonic-pi/commits?author=) (1) * [Daria Trainor](https://github.com/sonic-pi-net/sonic-pi/commits?author=dariatrainor) (1) * [Darío Hereñú](https://github.com/sonic-pi-net/sonic-pi/commits?author=kant) (1) * [Dionysis Zindros](https://github.com/sonic-pi-net/sonic-pi/commits?author=dionyziz) (1) @@ -363,19 +350,12 @@ effort to help grow and improve the Sonic Pi code base: * [Eduardo Fonseca](https://github.com/sonic-pi-net/sonic-pi/commits?author=edrd-f) (1) * [Eric M](https://github.com/sonic-pi-net/sonic-pi/commits?author=em13914) (1) * [Ezequiel Ramos](https://github.com/sonic-pi-net/sonic-pi/commits?author=ezequielramos) (1) -* [Fabian Aussems](https://github.com/sonic-pi-net/sonic-pi/commits?author=mozinator) (1) * [Falko Spiller](https://github.com/sonic-pi-net/sonic-pi/commits?author=zenon) (1) -* [Federico Pepe](https://github.com/sonic-pi-net/sonic-pi/commits?author=federico-pepe) (1) * [Garen Hartunian](https://github.com/sonic-pi-net/sonic-pi/commits?author=garenhart) (1) -* [Giovanni Domeneghini](https://github.com/sonic-pi-net/sonic-pi/commits?author=) (1) * [Graham Taylor](https://github.com/sonic-pi-net/sonic-pi/commits?author=vinnievg) (1) -* [Guntitat Sawadwuthikul](https://github.com/sonic-pi-net/sonic-pi/commits?author=) (1) * [Gábor Hermann](https://github.com/sonic-pi-net/sonic-pi/commits?author=gaborhermann) (1) -* [Hamidreza Montaseri](https://github.com/sonic-pi-net/sonic-pi/commits?author=) (1) * [Himanshu](https://github.com/sonic-pi-net/sonic-pi/commits?author=himanshu007-creator) (1) * [Hrafnkell Eiríksson](https://github.com/sonic-pi-net/sonic-pi/commits?author=hrafnkelle) (1) -* [Huiting Milewski](https://github.com/sonic-pi-net/sonic-pi/commits?author=) (1) -* [Hur Ezeiza Zaldua](https://github.com/sonic-pi-net/sonic-pi/commits?author=) (1) * [Ian Stevenson](https://github.com/sonic-pi-net/sonic-pi/commits?author=irstevenson) (1) * [Ikko Ashimine](https://github.com/sonic-pi-net/sonic-pi/commits?author=eltociear) (1) * [Ioan Bizău](https://github.com/sonic-pi-net/sonic-pi/commits?author=ibz) (1) @@ -391,7 +371,6 @@ effort to help grow and improve the Sonic Pi code base: * [John Lawrence Aspden](https://github.com/sonic-pi-net/sonic-pi/commits?author=johnlawrenceaspden) (1) * [Joseph Haig](https://github.com/sonic-pi-net/sonic-pi/commits?author=jrmhaig) (1) * [Josh Hatcher](https://github.com/sonic-pi-net/sonic-pi/commits?author=jbjbhatcher) (1) -* [Juhyun Lee](https://github.com/sonic-pi-net/sonic-pi/commits?author=) (1) * [Julian Cheal](https://github.com/sonic-pi-net/sonic-pi/commits?author=juliancheal) (1) * [Karl Hiner](https://github.com/sonic-pi-net/sonic-pi/commits?author=khiner) (1) * [Ken Perry](https://github.com/sonic-pi-net/sonic-pi/commits?author=krperry) (1) @@ -401,14 +380,10 @@ effort to help grow and improve the Sonic Pi code base: * [Lin Hsu](https://github.com/sonic-pi-net/sonic-pi/commits?author=chaosink) (1) * [Linda van der Pal](https://github.com/sonic-pi-net/sonic-pi/commits?author=lvdpal) (1) * [Lorenzo Moriondo](https://github.com/sonic-pi-net/sonic-pi/commits?author=Mec-iS) (1) -* [Lucas Cruz dos Reis](https://github.com/sonic-pi-net/sonic-pi/commits?author=) (1) -* [Madis Liias](https://github.com/sonic-pi-net/sonic-pi/commits?author=) (1) -* [Mahmutcan İlhandağ](https://github.com/sonic-pi-net/sonic-pi/commits?author=) (1) +* [Lucas Cruz dos Reis](https://github.com/sonic-pi-net/sonic-pi/commits?author=LCRERGO) (1) * [Manula Thejan](https://github.com/sonic-pi-net/sonic-pi/commits?author=manula2004) (1) -* [Manula Thejan](https://github.com/sonic-pi-net/sonic-pi/commits?author=) (1) * [Marko Peltola](https://github.com/sonic-pi-net/sonic-pi/commits?author=markopeltola) (1) -* [Martin Gondermann](https://github.com/sonic-pi-net/sonic-pi/commits?author=) (1) -* [Mateo Carreras](https://github.com/sonic-pi-net/sonic-pi/commits?author=) (1) +* [Martin Gondermann](https://github.com/sonic-pi-net/sonic-pi/commits?author=magicmonty) (1) * [Mateusz Bielec](https://github.com/sonic-pi-net/sonic-pi/commits?author=mbie) (1) * [Matt Meyer](https://github.com/sonic-pi-net/sonic-pi/commits?author=mmeyer0505) (1) * [Matthew Gilliard](https://github.com/sonic-pi-net/sonic-pi/commits?author=mjg123) (1) @@ -418,11 +393,7 @@ effort to help grow and improve the Sonic Pi code base: * [Michael Fulton](https://github.com/sonic-pi-net/sonic-pi/commits?author=fultonms) (1) * [Michał Lewandowski](https://github.com/sonic-pi-net/sonic-pi/commits?author=mlevvy) (1) * [Michel Kraaijeveld](https://github.com/sonic-pi-net/sonic-pi/commits?author=LandDragoon) (1) -* [Mircea Patrascu](https://github.com/sonic-pi-net/sonic-pi/commits?author=mpatrascu) (1) -* [Miroslav Hrabal](https://github.com/sonic-pi-net/sonic-pi/commits?author=) (1) * [Morgan Owens](https://github.com/sonic-pi-net/sonic-pi/commits?author=equiamos) (1) -* [Muamer Ribica](https://github.com/sonic-pi-net/sonic-pi/commits?author=) (1) -* [Narek Torosyan](https://github.com/sonic-pi-net/sonic-pi/commits?author=) (1) * [Neal McBurnett](https://github.com/sonic-pi-net/sonic-pi/commits?author=nealmcb) (1) * [Nigel Michki](https://github.com/sonic-pi-net/sonic-pi/commits?author=nigeil) (1) * [No Name Pro](https://github.com/sonic-pi-net/sonic-pi/commits?author=NoNamePro0) (1) @@ -431,12 +402,9 @@ effort to help grow and improve the Sonic Pi code base: * [Piotr Jagielski](https://github.com/sonic-pi-net/sonic-pi/commits?author=pjagielski) (1) * [Přemek Vyhnal](https://github.com/sonic-pi-net/sonic-pi/commits?author=premek) (1) * [Radu Raicea](https://github.com/sonic-pi-net/sonic-pi/commits?author=Radu-Raicea) (1) -* [Ran Tsoref](https://github.com/sonic-pi-net/sonic-pi/commits?author=) (1) * [Reuben Brown](https://github.com/sonic-pi-net/sonic-pi/commits?author=reubenbrown) (1) * [Ricardo Ramírez](https://github.com/sonic-pi-net/sonic-pi/commits?author=ricardoerl) (1) * [Rodrigo Iglesias](https://github.com/sonic-pi-net/sonic-pi/commits?author=Areidz) (1) -* [Rogério Pimentel](https://github.com/sonic-pi-net/sonic-pi/commits?author=) (1) -* [Rokibujjaman Rajon](https://github.com/sonic-pi-net/sonic-pi/commits?author=) (1) * [Roland Schmid](https://github.com/sonic-pi-net/sonic-pi/commits?author=Pr0gm4n) (1) * [Roman Milovskiy](https://github.com/sonic-pi-net/sonic-pi/commits?author=dcromster) (1) * [Russell Jones](https://github.com/sonic-pi-net/sonic-pi/commits?author=Russell-Jones) (1) @@ -450,14 +418,9 @@ effort to help grow and improve the Sonic Pi code base: * [Saravanan Selvamohan](https://github.com/sonic-pi-net/sonic-pi/commits?author=saravananselvamohan) (1) * [Serge Stinckwich](https://github.com/sonic-pi-net/sonic-pi/commits?author=SergeStinckwich) (1) * [Siim Põder](https://github.com/sonic-pi-net/sonic-pi/commits?author=windo) (1) -* [Stanislav Senveter](https://github.com/sonic-pi-net/sonic-pi/commits?author=) (1) -* [Suleyman Poyraz](https://github.com/sonic-pi-net/sonic-pi/commits?author=) (1) * [Suleyman Poyraz](https://github.com/sonic-pi-net/sonic-pi/commits?author=Zaryob) (1) -* [Surajnath Sidh](https://github.com/sonic-pi-net/sonic-pi/commits?author=electron0zero) (1) * [Takashi Udagawa](https://github.com/sonic-pi-net/sonic-pi/commits?author=udayan28) (1) -* [Tasos Protopapas](https://github.com/sonic-pi-net/sonic-pi/commits?author=) (1) * [Thibaut Barrère](https://github.com/sonic-pi-net/sonic-pi/commits?author=thbar) (1) -* [Thomas G. Kristensen](https://github.com/sonic-pi-net/sonic-pi/commits?author=tgk) (1) * [Thomas Starzynski](https://github.com/sonic-pi-net/sonic-pi/commits?author=dcts) (1) * [TimMo](https://github.com/sonic-pi-net/sonic-pi/commits?author=TimMo-prog) (1) * [Tom Holford](https://github.com/sonic-pi-net/sonic-pi/commits?author=tomholford) (1) @@ -465,26 +428,18 @@ effort to help grow and improve the Sonic Pi code base: * [Tomasz Nurkiewicz](https://github.com/sonic-pi-net/sonic-pi/commits?author=nurkiewicz) (1) * [Tomek Rabczak](https://github.com/sonic-pi-net/sonic-pi/commits?author=tomekr) (1) * [Tommi Toivonen](https://github.com/sonic-pi-net/sonic-pi/commits?author=hullum) (1) -* [Tomás Vilariño](https://github.com/sonic-pi-net/sonic-pi/commits?author=) (1) * [Tristram Oaten](https://github.com/sonic-pi-net/sonic-pi/commits?author=0atman) (1) -* [Tuomas Pyylampi](https://github.com/sonic-pi-net/sonic-pi/commits?author=) (1) * [Tyler Korthal](https://github.com/sonic-pi-net/sonic-pi/commits?author=tjkorthal) (1) * [Uriel Corfa](https://github.com/sonic-pi-net/sonic-pi/commits?author=korfuri) (1) * [Valentin Vidić](https://github.com/sonic-pi-net/sonic-pi/commits?author=vvidic) (1) * [Veith Roethlingshoefer](https://github.com/sonic-pi-net/sonic-pi/commits?author=RunOrVeith) (1) -* [ViperMiniQ](https://github.com/sonic-pi-net/sonic-pi/commits?author=) (1) -* [Warren Alex](https://github.com/sonic-pi-net/sonic-pi/commits?author=) (1) -* [Yang Wanjun](https://github.com/sonic-pi-net/sonic-pi/commits?author=) (1) * [miannoni](https://github.com/sonic-pi-net/sonic-pi/commits?author=miannoni) (1) -* [Олексій Овдієнко](https://github.com/sonic-pi-net/sonic-pi/commits?author=) (1) -* [ۋولقان](https://github.com/sonic-pi-net/sonic-pi/commits?author=) (1) ## Translation The following volunteers have generously helped to translate Sonic Pi into additional languages: - * Łukasz Siwiński (109) * Kenichi Kanai (101) * Nico Staelens (83) @@ -492,12 +447,12 @@ The following volunteers have generously helped to translate Sonic Pi into addit * Olivier Humbert (54) * Cindy Dallaire (48) * Hanno Zulla (47) -* Pau Monfort (41) +* Pau Monfort (43) * Olympia Brikis (38) * Emlyn Corrin (37) -* Federico Pepe (34) +* Federico Pepe (35) +* Mircea Patrascu (32) * Sam Aaron (32) -* Mircea Patrascu (31) * Petter Reinholdtsen (29) * Daria Szatan (26) * Mauro João Salgado Figueira (23) @@ -525,22 +480,26 @@ The following volunteers have generously helped to translate Sonic Pi into addit * Kenryu Shibata (8) * Ole Erik Yrvin (8) * Rachid Ben Moussa (8) +* Rekc@h (8) +* Yang Wanjun (8) * Berkin Kadiroğlu (7) * Eason Chang (7) * Jan Lund (7) * Paulo Chiliguano (7) +* Surajnath Sidh (7) * Timo Dankert (7) -* Yang Wanjun (7) * Alaa alden Aldroubi (6) * Davide Anzaldi (6) * G. Martin Butz (6) +* Mahmutcan İlhandağ (6) * Mark Lei (6) * Matthieu Ottaviani (6) * Miika Alonen (6) * RD WebDesign (6) -* Rekc@h (6) +* Stanislav Senveter (6) * Stefan (6) -* Surajnath Sidh (6) +* Suleyman Poyraz (6) +* Олексій Овдієнко (6) * Björn Ekström (5) * CaoYi (5) * Carlos Arturo Guerra Parra (5) @@ -551,17 +510,19 @@ The following volunteers have generously helped to translate Sonic Pi into addit * Hayato Osanai (5) * Ivan Decard (5) * Johan Ekblad (5) -* Mahmutcan İlhandağ (5) +* Manula Thejan (5) * Marcin "Tupteq" Bardź (5) * Michiel Leegwater (5) -* Stanislav Senveter (5) -* Suleyman Poyraz (5) +* Miroslav Hrabal (5) +* Muamer Ribica (5) +* Nur Sodik (5) * Theodore Tsirpanis (5) * Timo Dankert (5) -* Олексій Овдієнко (5) * Adeilson Silva (4) +* Aiko (4) * André Klöpfel (4) * ArtyomIsFlash (4) +* Basel Akasha (4) * Dahlia Sager (4) * Diego Gurnari (4) * Edson Cunha (4) @@ -570,11 +531,10 @@ The following volunteers have generously helped to translate Sonic Pi into addit * João Medeiros (4) * Kamyar (4) * Kaz Yamazaki (4) -* Manula Thejan (4) -* Miroslav Hrabal (4) -* Muamer Ribica (4) * Salih Vatansever (4) * Servaas Tilkin (4) +* Stefan Boeykens (4) +* Thomas G. Kristensen (4) * Abdeselam El-Haman (3) * Adrian Nöthlich (3) * Alban Vidal (3) @@ -582,38 +542,42 @@ The following volunteers have generously helped to translate Sonic Pi into addit * Alexandre Karpinski Manikowski (3) * Andreas Linz (3) * Andres Senn (3) +* Anhquan Phanle (3) * Anton Shestakov (3) * Aron Birkir Gudmundsson (3) -* Basel Akasha (3) * Black SheepX (3) * Chenebel Dorian (3) * Dago Sondervan (3) +* Dan Hanley (3) * Davide Facoetti (3) * Dustin Hendriks (3) * Esteban Betancur (3) * Fabricio S Benevides (3) * Hou Chen Zhong (3) +* Hur Ezeiza Zaldua (3) * Jiaxi Gu (3) * Juan Pablo Riaño (3) +* Juhyun Lee (3) * Jun Lin (3) * Lucas Cruz dos Reis (3) * Luis Lloret (3) * Lupa Lupin (3) * László van den Hoek (3) +* Maarten Brouwers (3) +* Madis Liias (3) * Moisés Cachay Tello (3) * Moon Sungjoon (3) * Nader Jafari (3) * Nami KJ (3) * Nathan Van der Auwera (3) -* Nur Sodik (3) * Raúl Jiménez Martín (3) * Rosdyana Kusuma (3) * Sander Kesting (3) * Sebastian Stahn (3) * Sebastien van der Kwast (3) -* Stefan Boeykens (3) * Sune Sylvest Nilausen (3) -* Thomas G. Kristensen (3) +* Tasos Protopapas (3) +* Tuomas Pyylampi (3) * Volkan Bakir (3) * _eternal_flame (3) * fossdd (3) @@ -623,8 +587,9 @@ The following volunteers have generously helped to translate Sonic Pi into addit * Airat (2) * Ajakko (2) * Alex Buznik (2) +* Alex Popov (2) +* Anders Berggren (2) * André Sá (2) -* Anhquan Phanle (2) * Arnold Ewald (2) * Arnold Marko (2) * Artem (2) @@ -633,7 +598,6 @@ The following volunteers have generously helped to translate Sonic Pi into addit * Cattice (2) * ChiakiQ (2) * CurlingTongs (2) -* Dan Hanley (2) * Diego Ramos (2) * Dimitris Panokostas (2) * Duarte Botelho (2) @@ -644,16 +608,21 @@ The following volunteers have generously helped to translate Sonic Pi into addit * Erick Bernalcrr (2) * Ertu (Er2, Err) (2) * Evgeni Latuhin (2) +* Fabian Aussems (2) * Gabriel Barba Gonzalez (2) * Gao Yuyang (2) * Genek Tomashko (2) +* Gergő Fazekas (2) +* Giovanni Domeneghini (2) * Goncalo Vieira (2) +* Guntitat Sawadwuthikul (2) +* Hamidreza Montaseri (2) +* Haowen You (2) * Haruki Niwa (2) * HelaBasa (2) * Hilla Shahrabani (2) * Huang Tianyu (2) * Hugo Vila (2) -* Hur Ezeiza Zaldua (2) * Italo Adler (2) * Ivan Zarea (2) * Jacek Andrzejewski (2) @@ -663,7 +632,6 @@ The following volunteers have generously helped to translate Sonic Pi into addit * Jon Georgsson (2) * Joschka Heinrich (2) * Joyinglee (2) -* Juhyun Lee (2) * Kaijing Zheng (2) * Kiki Hzz (2) * Lin Yu-Chien (2) @@ -673,15 +641,16 @@ The following volunteers have generously helped to translate Sonic Pi into addit * Luis Jimenez (2) * Lukas Spee (2) * Lázaro Henrique (2) -* Maarten Brouwers (2) -* Madis Liias (2) * Martin Lange (2) * Martin Solheim (2) * Martin-Zack Mekkaoui (2) +* Mateo Carreras (2) * Mathieu H (2) * Michael Peters (2) * Michal Slaski (2) * Moru (2) +* Narek Torosyan (2) +* Neko Nekowazarashi (2) * Nicholas Pellizer (2) * Nicolas Cosson (2) * Nimplex (2) @@ -689,8 +658,10 @@ The following volunteers have generously helped to translate Sonic Pi into addit * Philip Lafeber (2) * Pierre Pintado (2) * Přemek Vyhnal (2) +* Ran Tsoref (2) * Raphaël Forment (2) * Rodrigo Muniz (2) +* Roger Narayan (2) * Roland Illig (2) * Samuel El-Borai (2) * Sebastian Rasmussen (2) @@ -700,13 +671,14 @@ The following volunteers have generously helped to translate Sonic Pi into addit * Stefan Höhn (2) * Sugahara Masayuki (2) * Szymon Jakubiak (2) -* Tasos Protopapas (2) * Tiago Naufragado (2) -* Tuomas Pyylampi (2) +* Tomás Vilariño (2) * Umair Raihan (2) * Vera Rojman (2) * Vincent Renard (2) +* ViperMiniQ (2) * Vladimir Támara Patiño (2) +* Warren Alex (2) * Weizheng Liu (2) * Yakov Till (2) * Yandex (2) @@ -719,15 +691,16 @@ The following volunteers have generously helped to translate Sonic Pi into addit * sharmer156 (2) * tter (2) * zmni (2) +* ۋولقان (2) * キツネさん (2) * Aaro Asikainen (1) * Adam Süki (1) * AgentWu (1) * Ai Doan (1) +* Alejandro Sánchez Medina (1) * Alessandro Kiefer (1) -* Alex Popov (1) -* Anders Berggren (1) * Anderson Freitas B. da Silva (1) +* Andras Nemeth (1) * Andrey Raspopov (1) * Anna Knudsen (1) * Antonio Leal (1) @@ -767,7 +740,6 @@ The following volunteers have generously helped to translate Sonic Pi into addit * Elizabeth Sherrock (1) * Enrike Hurtado (1) * Evandro Afonso Rodrigues (1) -* Fabian Aussems (1) * Federico Saccà (1) * Felipe Kinoshita (1) * Feodor Aleksandrov (1) @@ -779,14 +751,12 @@ The following volunteers have generously helped to translate Sonic Pi into addit * Gabriele Boddi (1) * Garen Hart (1) * Gerardo Soares (1) -* Giovanni Domeneghini (1) * Glauco Luiz Corrêa Basilio Dos (1) * Guillaume Gautier (1) -* Guntitat Sawadwuthikul (1) * Gustavo Castro (1) * HSGamer (1) -* Hamidreza Montaseri (1) * Haotong Chen (1) +* Huiting Milewski (1) * Hyemin Shim (1) * Ian Molina (1) * Ingrid Yrvin (1) @@ -822,7 +792,6 @@ The following volunteers have generously helped to translate Sonic Pi into addit * Marek freezy Víger (1) * Martin Gondermann (1) * Martín Aguilar (1) -* Mateo Carreras (1) * Mathias Svendsen (1) * Matteo Giaccone (1) * Mattias Münster (1) @@ -834,7 +803,6 @@ The following volunteers have generously helped to translate Sonic Pi into addit * Mikkel Gravgaard (1) * Mui Kai En (1) * Nadezhda Ratckevich (1) -* Narek Torosyan (1) * Nathan (1) * Netanel-M (1) * Paola Ducolin (1) @@ -846,8 +814,9 @@ The following volunteers have generously helped to translate Sonic Pi into addit * Per-Erik Westerberg (1) * Peter Bolch (1) * Rafael Capaci Pereira (1) -* Ran Tsoref (1) * Rodrigo Iglesias (1) +* Rogério Pimentel (1) +* Rokibujjaman Rajon (1) * Sander Boer (1) * Satjawat Paanakaan (1) * Serge Stinckwich (1) @@ -868,7 +837,6 @@ The following volunteers have generously helped to translate Sonic Pi into addit * Tino Ejlerskov (1) * Tom Julux (1) * Tommi Toivonen (1) -* Tomás Vilariño (1) * Tuomas Hietala (1) * Vadim R (1) * Valdeci Gomes (1) @@ -877,10 +845,8 @@ The following volunteers have generously helped to translate Sonic Pi into addit * Veres Károly (1) * Vibo Lavida (1) * Victor Martin Garcia (1) -* ViperMiniQ (1) * Vitezslav Homolka (1) * Vladimir Knyazev (1) -* Warren Alex (1) * Wilson Dashing (1) * Wim Jaap (1) * Xubin Cao (1) @@ -899,7 +865,6 @@ The following volunteers have generously helped to translate Sonic Pi into addit * Иван Лавриков (1) * Максим Якимчук (1) * Рамиль Иксанов (1) -* ۋولقان (1) * 丁科 (1) * 张达 (1) * 郑小则 (1) diff --git a/app/api/include/api/sonicpi_api.h b/app/api/include/api/sonicpi_api.h index e1f36ee97e..668fd5bf0e 100644 --- a/app/api/include/api/sonicpi_api.h +++ b/app/api/include/api/sonicpi_api.h @@ -42,7 +42,8 @@ enum class APIInitResult { Successful, TerminalError, - ScsynthBootError + ScsynthBootError, + HomePathNotWritableError }; enum class BootDaemonInitResult @@ -55,6 +56,7 @@ enum class BootDaemonInitResult enum class SonicPiPath { RootPath, // Sonic Pi Application root + HomePath, // User-writable home directory root (parent of UserPath). UserPath, // User-writable folder for config/saves etc. RubyPath, // Path to ruby executable BootDaemonPath, // Path to the Boot Daemon script diff --git a/app/api/src/sonicpi_api.cpp b/app/api/src/sonicpi_api.cpp index f0cec96363..c90dabc3bd 100644 --- a/app/api/src/sonicpi_api.cpp +++ b/app/api/src/sonicpi_api.cpp @@ -646,6 +646,12 @@ APIInitResult SonicPiAPI::Init(const fs::path& root, bool noScsynthInputs) } } + if (m_homeDirWriteable) { + LOG(INFO, "Home dir writable: "); + } else { + return APIInitResult::HomePathNotWritableError; + } + EnsurePathsAreCanonical(); StartClearLogsScript(); @@ -671,11 +677,7 @@ APIInitResult SonicPiAPI::Init(const fs::path& root, bool noScsynthInputs) } }); - if (m_homeDirWriteable) { - LOG(INFO, "Home dir writable: "); - } else { - LOG(INFO, "Home dir NOT writable: "); - } + LOG(INFO, "Log Path: " + GetPath(SonicPiPath::LogPath).string()); m_state = State::Initializing; @@ -722,6 +724,7 @@ bool SonicPiAPI::InitializePaths(const fs::path& root) m_paths[SonicPiPath::RootPath] = fs::canonical(fs::absolute(root)); // Sonic pi home directory + m_paths[SonicPiPath::HomePath] = FindHomePath(); m_paths[SonicPiPath::UserPath] = FindHomePath() / ".sonic-pi"; // Set path to Ruby executable (system dependent) diff --git a/app/gui/qt/CMakeLists.txt b/app/gui/qt/CMakeLists.txt index e3c3bf0524..3ca534ef3a 100644 --- a/app/gui/qt/CMakeLists.txt +++ b/app/gui/qt/CMakeLists.txt @@ -2,16 +2,17 @@ cmake_minimum_required(VERSION 3.2) message(STATUS "CMakeLists: Sonic Pi Qt GUI") +if(APPLE) + set(CMAKE_OSX_DEPLOYMENT_TARGET "10.15") +endif() + project("Sonic Pi" LANGUAGES CXX C DESCRIPTION "A code-based music creation and performance tool" - VERSION 4.1.0 + VERSION 4.2.0 HOMEPAGE_URL "https://sonic-pi.net" ) -if(APPLE) - set(CMAKE_OSX_DEPLOYMENT_TARGET "10.15") -endif() set_property(GLOBAL PROPERTY USE_FOLDERS ON) diff --git a/app/gui/qt/html/doc.html b/app/gui/qt/html/doc.html index 72c2e4f0e9..f944f72d5b 100644 --- a/app/gui/qt/html/doc.html +++ b/app/gui/qt/html/doc.html @@ -15,7 +15,7 @@ code_as :art

-

v4.1.0

+

v4.2.0

diff --git a/app/gui/qt/html/info.html b/app/gui/qt/html/info.html index c8ee7bbef9..dfc61e679d 100644 --- a/app/gui/qt/html/info.html +++ b/app/gui/qt/html/info.html @@ -29,6 +29,6 @@
-

v4.1.0

+

v4.2.0

diff --git a/app/gui/qt/images/splash.png b/app/gui/qt/images/splash.png index 8062edca9c..42a148f4d6 100644 Binary files a/app/gui/qt/images/splash.png and b/app/gui/qt/images/splash.png differ diff --git a/app/gui/qt/images/splash2x.png b/app/gui/qt/images/splash2x.png index 542284dc1a..c9a74fc016 100644 Binary files a/app/gui/qt/images/splash2x.png and b/app/gui/qt/images/splash2x.png differ diff --git a/app/gui/qt/images/splash@2x.png b/app/gui/qt/images/splash@2x.png index 542284dc1a..c9a74fc016 100644 Binary files a/app/gui/qt/images/splash@2x.png and b/app/gui/qt/images/splash@2x.png differ diff --git a/app/gui/qt/lang/sonic-pi_hu.ts b/app/gui/qt/lang/sonic-pi_hu.ts index ecd7031fc9..07dbe2d971 100644 --- a/app/gui/qt/lang/sonic-pi_hu.ts +++ b/app/gui/qt/lang/sonic-pi_hu.ts @@ -147,7 +147,7 @@ Load Sonic Pi Buffer - + Sonic Pi puffer betöltése @@ -270,12 +270,12 @@ Hiding help... - + Segítség elrejtése... Showing help... - + Segítség mutatása... @@ -285,27 +285,27 @@ Log Auto Scroll on... - + Automatikus görgetés naplózása bekapcsolva... Log Auto Scroll off... - + Automatikus görgetés naplózása kikapcsolva... Colour Theme: - + Színvilág: Show autocompletion on - + Automatikus kiegészítés mutatása bekapcsolva Show autocompletion off - + Automatikus kiegészítés mutatása kikapcsolva @@ -320,17 +320,17 @@ Hiding preferences... - + Beállítások elrejtése... Showing preferences... - + Beállítások mutatása... Exit - + Kilépés @@ -370,12 +370,12 @@ Code Size Up - + Kód nagyítása Code Size Down - + Kód kicsinyítése @@ -385,27 +385,27 @@ Show Info - + Info mutatása Show Help - + Segítség mutatása Show Preferences - + Beállítások mutatása Show Line Numbers - + Sorszámok mutatása Show Code Completion - + Kód kiegészítés mutatása @@ -415,7 +415,7 @@ Enable Audio Inputs - + Hang bemenet engedélyezése @@ -450,12 +450,12 @@ Enable External Synths - + Külső szintetizátorok engedélyezése Invert Stereo - + Sztereó megfordítása @@ -485,12 +485,12 @@ Log Synths - + Szintetizátorok naplózása Clear Logs on Run - + Napló törlése futtatáskor @@ -500,17 +500,17 @@ Auto-Scroll Log - + Napló automatikus görgetése Live - + Élő Code - + Kód @@ -525,27 +525,27 @@ Light - + Világos Dark - + Sötét Pro Light - + Pro Világos Pro Dark - + Pro Sötét High Contrast - + Nagy kontraszt @@ -555,7 +555,7 @@ Show Titles - + Címek mutatása @@ -565,7 +565,7 @@ Colour Theme - + Színvilág @@ -580,121 +580,121 @@ MIDI Inputs - + MIDI Bemenetek No Connected Inputs - + Nincs csatlakoztatott bemenet MIDI Outputs - + MIDI Kimenetek No Connected Outputs - + Nincs csatlakoztatott kimenet Default MIDI Out Channel - + Alapértelmezett MIDI Ki Csatorna All Channels - + Minden csatorna 1 - + 1 2 - + 2 3 - + 3 4 - + 4 5 - + 5 6 - + 6 7 - + 7 8 - + 8 9 - + 9 10 - + 10 11 - + 11 12 - + 12 13 - + 13 14 - + 14 15 - + 15 16 - + 16 Local IP Addresses - + Helyi IP címek @@ -739,7 +739,7 @@ Show Log - + Napló mutatása @@ -749,12 +749,12 @@ Show Metronome - + Metronóm mutatása Show Buttons - + Gombok mutatása @@ -764,17 +764,17 @@ Full Screen Mode - + Teljes képernyős mód Language - + Nyelv Restarting Sonic Pi... - + Sonic Pi újraindítása... @@ -844,7 +844,7 @@ Advanced Users - + Haladó felhasználók @@ -854,7 +854,7 @@ SuperCollider Log - + SuperCollider napló @@ -870,7 +870,7 @@ Toggle the visibility of the help pane - + A segítség panel láthatóságának kapcsolása @@ -910,7 +910,7 @@ Studio Mode Enabled. Thank-you for supporting Sonic Pi. - + Stúdió mód engedélyezve. Köszönjük, hogy támogatod a Sonic Pi-t. @@ -930,12 +930,12 @@ Start recording to a WAV audio file - + Felvétel elindítása egy WAV hang fájlba Save - + Mentés @@ -1169,17 +1169,17 @@ Szerezd be: Sonic Pi %1 Examples - + Példák Synths - + Szintetizátorok Fx - + Effektek @@ -1232,7 +1232,7 @@ Szerezd be: Sonic Pi %1 Language - + Nyelv @@ -1375,17 +1375,17 @@ a jelenleg aktív hálózaton keresztül. all - + minden Default MIDI out channel - + Alapértelmezett MIDI ki csatorna Show code completion - + Kód kiegészítés mutatása @@ -1465,22 +1465,22 @@ Sonic Pi which can be sent via the midi_* fns Main Volume - + Fő hangerő Audio Input - + Hangbemenet Audio settings for working with audio inputs. - + Hang beállítások a hangbemenetekkel való dolgozáshoz. Enable Audio Inputs - + Hangbemenetek engedélyezése @@ -1490,7 +1490,7 @@ Sonic Pi which can be sent via the midi_* fns Enable external synths/FX - + Külső szintetizátorok/effektek engedélyezése @@ -1505,7 +1505,7 @@ Sonic Pi which can be sent via the midi_* fns Information unavailable. - + Elérhetetlen információ. @@ -1535,7 +1535,7 @@ Sonic Pi which can be sent via the midi_* fns Show Panels - + Panelek mutatása @@ -1545,7 +1545,7 @@ Sonic Pi which can be sent via the midi_* fns Theme - + Téma @@ -1655,7 +1655,7 @@ Sonic Pi which can be sent via the midi_* fns Show titles - + Címek mutatása @@ -1675,27 +1675,27 @@ Sonic Pi which can be sent via the midi_* fns Light - + Világos Dark - + Sötét Pro Light - + Pro Világos Pro Dark - + Pro Sötét High Contrast - + Nagy kontraszt @@ -1778,7 +1778,7 @@ If enabled the log is scrolled to the bottom after every new message is displaye Show scopes - + Oszcilloszkópok mutatása @@ -1788,7 +1788,7 @@ If enabled the log is scrolled to the bottom after every new message is displaye Configure language settings - + Nyelv beállítások módosítása @@ -1814,17 +1814,17 @@ on https://hosted.weblate.org/projects/sonic-pi/. Thank you! :) You've selected a new language: %1 - + Egy új nyelvet választottál: %1 Do you want to apply this language? - + Alkalmazni szeretnéd ezt a nyelvet? The new language will be applied when you next start Sonic Pi. - + Az új nyelv alkalmazva lesz amikor következőre elindítod a Sonic Pi-t. @@ -1834,7 +1834,7 @@ on https://hosted.weblate.org/projects/sonic-pi/. Thank you! :) Apply - + Alkalmaz @@ -1857,18 +1857,18 @@ on https://hosted.weblate.org/projects/sonic-pi/. Thank you! :) Restart Sonic Pi? - + Újraindítod a Sonic Pi-t? Do you want to restart Sonic Pi now? This will stop any current runs & recordings. - + Újra akarod indítani a Sonic Pi-t most? Ez minden futást és felvételt meg fog állítani. Restart - + Újraindít @@ -1888,13 +1888,14 @@ on https://hosted.weblate.org/projects/sonic-pi/. Thank you! :) Would you like to restart now? - + Szeretnéd most újraindítani? System languages: %1 - + Rendszer nyelvek: %1 + @@ -1904,7 +1905,7 @@ on https://hosted.weblate.org/projects/sonic-pi/. Thank you! :) Toggle the visibility of the audio oscilloscopes. - + Oszcilloszkóp láthatóságának kapcsolása. diff --git a/app/gui/qt/lang/sonic-pi_id.ts b/app/gui/qt/lang/sonic-pi_id.ts index dc7312ecb7..732ebcca2a 100644 --- a/app/gui/qt/lang/sonic-pi_id.ts +++ b/app/gui/qt/lang/sonic-pi_id.ts @@ -78,7 +78,7 @@ Full screen mode off. - Matikan mode Layar penuh. + Mode layar penuh nonaktif. @@ -88,22 +88,22 @@ Enabling MIDI input... - Mengaktifkan masukan MIDI... + Mengaktifkan masukan MIDI... Disabling MIDI input... - Menonaktifkan masukan MIDI... + Menonaktifkan masukan MIDI... No connected input devices - Perangkat input tidak tersambung + Tidak ada perangkat masukan yang terhubung No connected output devices - Tidak ada perangkat output terhubung + Tidak ada perangkat keluaran yang terhubung @@ -113,27 +113,27 @@ Disabling OSC cue port... - + Menonaktifkan porta isyarat OSC... Enabling external OSC cue port... - + Mengaktifkan porta eksternal isyarat OSC... Enabling internal OSC cue port... - + Mengaktifkan porta internal isyarat OSC... Connected MIDI inputs - Terhubung MIDI input + Masukan MIDI yang terhubung Connected MIDI outputs - Terhubung MIDI output + Keluaran MIDI yang terhubung @@ -157,19 +157,19 @@ Text files - file Teks + Berkas teks Ruby files - file Ruby + Berkas Ruby All files - Semua File + Semua Berkas @@ -239,7 +239,7 @@ Welcome back. Now get your live code on... - Selamat Datang kembali. Sekarang dapatkan kode ”live” Anda di ... + Selamat Datang. Sekarang dapatkan kode langsung kamu di ... @@ -279,7 +279,7 @@ Sonic Pi Boot Error - Kesalahan booting Sonic Pi + Kesalahan pemulaian Sonic Pi @@ -301,7 +301,7 @@ Checking for updates... - Periksa pembaruan... + Memeriksa pembaruan... @@ -352,37 +352,37 @@ Stopping... - Hentikan... + Memberhentikan... Hiding about window... - + Menyembunyikan jendela tentang... Showing about window... - + Menampilkan jendela tentang... Hiding help... - + Menyembunyikan bantuan... Showing help... - + Menampilkan bantuan... Updating System Volume... - Memperbarui Sistem Volume ... + Memperbarui Volume Sistem... Colour Theme: - + Tema Warna: @@ -417,17 +417,17 @@ Exit - + Keluar Start recording to a WAV audio file - + Mulai merekam ke berkas audio WAV Save - + Simpan @@ -442,7 +442,7 @@ Show Help - + Tampilkan Bantuan @@ -452,7 +452,7 @@ Show Preferences - + Tampilkan Preferensi @@ -462,7 +462,7 @@ Show Line Numbers - + Tampilkan nomor baris @@ -472,7 +472,7 @@ Show Code Context - + Tampilkan konteks kode @@ -502,7 +502,7 @@ Safe Audio Mode - + Mode Audio Aman @@ -522,7 +522,7 @@ Force Mono - + Paksa Mono @@ -532,7 +532,7 @@ Allow Incoming OSC - + Perbolehkan OSC datang @@ -567,32 +567,32 @@ Live - + Langsung Code - + Kode Audio - Audio + Audio Visuals - Visual + Visual Light - + Terang Dark - Thema Malam + Gelap @@ -607,7 +607,7 @@ High Contrast - + Kontras Tinggi @@ -617,7 +617,7 @@ Show Titles - + Tampilkan Judul @@ -627,7 +627,7 @@ Colour Theme - + Tema Warna @@ -666,12 +666,12 @@ Default MIDI Out Channel - + Kanal Baku Keluaran MIDI All Channels - + Semua Kanal @@ -756,17 +756,17 @@ Local IP Addresses - + Alamat IP Lokal Incoming OSC Port - + Porta Datang OSC View - + Tampilan @@ -871,7 +871,7 @@ Show Log - + Tampilkan Log @@ -881,12 +881,12 @@ Show Metronome - + Tampilkan Metronom Show Buttons - + Tampilkan Tombol @@ -896,12 +896,12 @@ Full Screen Mode - + Mode Layar Penuh Language - + Bahasa @@ -911,17 +911,17 @@ File loaded... - File dimuat ... + Berkas dimuat ... File saved... - File disimpan ... + Berkas disimpan ... Restarting Sonic Pi... - + Memulai ulang Sonic Pi... @@ -960,12 +960,12 @@ Dapatkan Sonic Pi %1 Sonic Pi - Audio Server Boot Error - + Sonic Pi - Kesalahan Pemulaian Peladen Audio Sorry, the Audio Server failed to start... - + Maaf, Peladen Audio gagal untuk memulai... @@ -980,7 +980,7 @@ Dapatkan Sonic Pi %1 For the curious among you, Sonic Pi uses the SuperCollider Audio Server to generate its sounds. By default it will connect to your default system audio input and outputs. - + Untuk yang ingin tahu, Sonic Pi menggunakan Peladen Audio SuperCollider untuk membuat suaranya. Secara baku itu akan terkoneksi dengan keluaran dan masukan sistem audio baku kamu. @@ -995,12 +995,12 @@ Dapatkan Sonic Pi %1 Advanced Users - + Pengguna Tingkat Lanjut you may manually override this and further configure how SuperCollider boots by editing the file: - + kamu bisa secara manual menimpa ini dan lebih mengonfigurasi bagaimana pemulaian SuperCollider dengan menyunting berkas: @@ -1015,7 +1015,7 @@ Dapatkan Sonic Pi %1 Stop - Stop + Berhenti @@ -1030,7 +1030,7 @@ Dapatkan Sonic Pi %1 Please consider reporting a bug at - Silakan pertimbangan pelaporan bug di + Pertimbangkan untuk melaporkan bug di @@ -1076,7 +1076,7 @@ Dapatkan Sonic Pi %1 Studio Mode Enabled. Thank-you for supporting Sonic Pi. - + Mode Studio Diaktifkan. Terima kasih telah mendukung Sonic Pi. @@ -1086,7 +1086,7 @@ Dapatkan Sonic Pi %1 Close - + Tutup @@ -1116,12 +1116,12 @@ Dapatkan Sonic Pi %1 Sonic Pi - Info - Informasi Sonic Pi + Sonic Pi -Informasi Stop Recording - Stop Merekam + Berhenti Merekam @@ -1132,14 +1132,14 @@ Dapatkan Sonic Pi %1 Cannot read file %1: %2. - Tidak dapat baca File %1: + Tidak bisa membaca berkas %1: %2. Cannot write file %1: %2. - Tidak dapat Tulis File %1: + Tidak bisa menulis berkas %1: %2. @@ -1176,12 +1176,12 @@ Dapatkan Sonic Pi %1 Tutorial - + Tutorial Examples - + Contoh @@ -1201,7 +1201,7 @@ Dapatkan Sonic Pi %1 Lang - + Bhs @@ -1365,17 +1365,17 @@ to and from other programs or computers Local IP address - Alamat IP lokal + Alamat IP lokal Unavailable - Tidak tersedia + Tidak tersedia Allow OSC from other computers - + Perbolehkan OSC dari komputer lain @@ -1386,12 +1386,12 @@ to and from other programs or computers Allow incoming OSC - + Perbolehkan OSC datang all - + semua @@ -1418,12 +1418,12 @@ to and from other programs or computers Configure MIDI behaviour - Mengkonfigurasi MIDI + Mengonfigurasi perilaku MIDI MIDI Ports - Port MIDI + Porta MIDI @@ -1433,7 +1433,7 @@ to and from other programs or computers Reset MIDI - Setel ulang MIDI + Setel ulang MIDI @@ -1468,7 +1468,7 @@ Sonic Pi which can be sent via the midi_* fns Show and Hide - Tampilkan dan Sembunyikan + Tampilkan dan Sembunyikan @@ -1483,7 +1483,7 @@ Sonic Pi which can be sent via the midi_* fns Main Volume - + Volume Utama @@ -1513,22 +1513,22 @@ Sonic Pi which can be sent via the midi_* fns Audio Hardware Information - + Informasi perangkat keras audio Audio hardware configuration and information. - + Informasi dan konfigurasi perangkat keras audio. Information unavailable. - + Informasi tidak tersedia Incoming OSC port - + Porta datang OSC @@ -1563,12 +1563,12 @@ Sonic Pi which can be sent via the midi_* fns Theme - + Tema Automation / Misc - + Otomatisasi/Lain-lain @@ -1588,7 +1588,7 @@ Sonic Pi which can be sent via the midi_* fns Show line numbers - Tampilkan nomor baris + Tampilkan nomor baris @@ -1603,7 +1603,7 @@ Sonic Pi which can be sent via the midi_* fns Show code context - + Tampilkan konteks kode @@ -1643,7 +1643,7 @@ Sonic Pi which can be sent via the midi_* fns Show buttons - Tampilkan tombol + Tampilkan tombol @@ -1663,7 +1663,7 @@ Sonic Pi which can be sent via the midi_* fns Full screen - Layar Penuh + Layar Penuh @@ -1673,7 +1673,7 @@ Sonic Pi which can be sent via the midi_* fns Show titles - + Tampilkan judul @@ -1693,12 +1693,12 @@ Sonic Pi which can be sent via the midi_* fns Light - + Terang Dark - Thema Malam + Gelap @@ -1803,22 +1803,22 @@ Jika diaktifkan log menggulir ke bawah setelah setiap pesan baru ditampilkan. Configure language settings - + Atur pengaturan bahasa UI & Tutorial Language (Requires a restart to take effect) - + Bahasa UI & Tutorial (Memerlukan pemulaian ulang untuk bisa diterapkan) Change the language of the UI & Tutorial (Requires a restart to take effect) - + Mengganti bahasa UI & Tutorial (Memerlukan pemulaian ulang untuk bisa diterapkan) Change the language of the UI & Tutorial - + Mengganti bahasa UI & Tutorial @@ -1829,61 +1829,62 @@ on https://hosted.weblate.org/projects/sonic-pi/. Thank you! :) You've selected a new language: %1 - + Kamu memilih bahasa baru: %1 Do you want to apply this language? - + Apakah kamu ingin menerapkan bahasa ini? The new language will be applied when you next start Sonic Pi. - + Bahasa baru akan diterapkan ketika kamu memulai kembali Sonic Pi. System languages found: %1 - + Bahasa sistem ditemukan: %1 Apply - + Terapkan Cancel - + Batal <b>The new language will be applied when you next start Sonic Pi.</b><br> - + <b>Bahasa baru akan diterapkan ketika kamu memulai kembali Sonic Pi.</b><br> Current UI language: %1 - + Bahasa UI sekarang: %1 + Restart Sonic Pi? - + Mulai Ulang Sonic Pi? Do you want to restart Sonic Pi now? This will stop any current runs & recordings. - + Apakah kamu ingin memulai ulang Sonic Pi sekarang? Ini akan menghentikan pemutaran & perekaman yang sedang berjalan. Restart - + Mulai Ulang @@ -1898,23 +1899,24 @@ on https://hosted.weblate.org/projects/sonic-pi/. Thank you! :) Your changes won't take effect until you restart Sonic Pi. - + Perubahan kamu tidak akan berefek sampai kamu memulai ulang Sonic Pi. Would you like to restart now? - + Apakah kamu ingin memulai ulang sekarang? System languages: %1 - + Bahasa sistem: %1 + Use system language - + Gunakan bahasa sistem @@ -1941,51 +1943,51 @@ Stereo - shows two independent scopes for left and right channels Transparency - Transparansi + Transparansi Check for updates - Periksa pembaruan + Periksa pembaruan Toggle automatic update checking. This check involves sending anonymous information about your platform and version. - Beralih pemeriksaan pembaruan otomatis. -Pemeriksaan ini melibatkan pengiriman informasi anonim tentang platform Anda dan versinya. + Alih pemeriksaan pembaruan otomatis. +Pemeriksaan ini melibatkan pengiriman informasi anonim tentang platform kamu dan versinya. Check now - Periksa sekarang + Periksa sekarang Force a check for updates now. This check involves sending anonymous information about your platform and version. - Memaksa cek untuk update sekarang. -Pemeriksaan ini melibatkan pengiriman informasi anonim tentang platform Anda dan versinya. + Memaksa pemeriksaan pembaruan sekarang. +Pemeriksaan ini melibatkan pengiriman informasi anonim tentang platform kamu dan versinya. Get update - Dapatkan pembaruan + Dapatkan pembaruan Visit http://sonic-pi.net to download new version - Kunjungi https://sonic-pi.net untuk mengunduh versi baru + Kunjungi https://sonic-pi.net untuk mengunduh versi yang baru Update Info - Informasi terbaru + Informasi pembaruan Sonic Pi update info - Info Pembaruan Sonic Pi + Informasi pembaruan Sonic Pi diff --git a/app/gui/qt/lang/sonic-pi_nl.ts b/app/gui/qt/lang/sonic-pi_nl.ts index d82ab75715..f7fe25ca95 100644 --- a/app/gui/qt/lang/sonic-pi_nl.ts +++ b/app/gui/qt/lang/sonic-pi_nl.ts @@ -146,7 +146,7 @@ Link Metronome & Global Time Warp - + Link Metronoom & Globale Tijd Warp @@ -269,12 +269,12 @@ Audio Inputs Enabled. Restart Sonic Pi for this setting to take effect... - + Audio Ingangen Actief. Herstart Sonic Pi om door te voeren... Audio Inputs Disabled. Restart Sonic Pi for this setting to take effect... - + Audio Ingangen Inactief. Herstart Sonic Pi om door te voeren... @@ -477,27 +477,27 @@ Enable Audio Inputs - + Activeer Audio Ingangen Link Connect - + Verbind Link Connect or disconnect the Link Metronome from the network - + Verbind of verbreek de Link Metronoom met het netwerk Tap Tempo - + Tik Tempo Click Link Tap Tempo - + Klik Link Tik Tempo @@ -582,7 +582,7 @@ Visuals - Beelden (Visuals) + Visualisaties @@ -597,12 +597,12 @@ Pro Light - Pro Licht + Pro Licht Pro Dark - Pro Donker + Pro Donker @@ -632,296 +632,296 @@ Show Scope Kinds - + Toon Scope Soorten IO - IO + IO MIDI Inputs - + MIDI Ingangen No Connected Inputs - + Geen Verbonden Ingangen MIDI Outputs - + MIDI Uitgangen No Connected Outputs - + Geen Verbonden Uitgangen Default MIDI Out Channel - + Standaard MIDI Uit Kanaal All Channels - + Alle Kanalen 1 - + 1 2 - + 2 3 - + 3 4 - + 4 5 - + 5 6 - + 6 7 - + 7 8 - + 8 9 - + 9 10 - + 10 11 - + 11 12 - + 12 13 - + 13 14 - + 14 15 - + 15 16 - + 16 Local IP Addresses - + Lokale IP Adressen Incoming OSC Port - + Inkomende OSC Poort View - + Toon Focus Editor - + Focus Editor Place focus on the code editor - + Breng de focus naar de code editor Focus Logs - + Focus Logs Place focus on the log pane - + Breng de focus naar het log venster Focus Context - + Focus Schermlezer info Place focus on the context pane - + Breng de focus naar de schermlezer informatie Focus Cues - + Focus Cues Place focus on the cue event pane - + Breng de focus naar het cue indicatie venster Focus Preferences - + Focus Voorkeursinstellingen Place focus on preferences - + Breng de focus naar het voorkeursinstellingen venster Focus Help Listing - + Focus Hulp lijst Place focus on help listing - + Breng de focus naar de hulp lijst Focus Help Details - + Focus Hulp Details Place focus on help details - + Breng focus naar de hulp details Focus Errors - + Focus Fouten Place focus on errors - + Breng de focus naar de fouten Focus BPM Scrubber - + Focus BPM Regelaar Place focus on BPM Scrubber - + Breng de focus naar de BPM regelaar Focus TimeWarp Scrubber - + Focus TijdWarp Regelaar Place focus on TimeWarp Scrubber - + Breng de focus naar de TijdWarp Regelaar Show Log - + Toon Log Show Cue Log - + Toon Cue Log Show Metronome - + Toon Metronoom Show Buttons - + Toon Knoppen Show Tabs - + Toon Buffer Tabs Full Screen Mode - + Volledig Scherm Modus Language - + Taal Ready... - Klaar... + Gereed... File loaded... - Het bestand werd geladen... + Het bestand is geladen... File saved... - Bestand opgeslagen... + Bestand is opgeslagen... Restarting Sonic Pi... - + Sonic Pi Herstart... @@ -949,63 +949,63 @@ om de twee weken. New version available! Get Sonic Pi %1 - Er is een nieuwe versie beschikbaar! -Sonic Pi krijgen %1 + Er is een nieuwe versie beschikbaar! +Sonic Pi %1 Line: %1, Position: %2 - + Regel: %1, Positie: %2 Sonic Pi - Audio Server Boot Error - + Sonic Pi - Audio Server Opstart Fout Sorry, the Audio Server failed to start... - + Sorry, de Audio Server kon niet starten... Please try changing your default OS audio input & outputs. - + Probeer je standaard OS audio in- en uitgangen te veranderen. Note, the audio rate of the inputs & outputs must be the same. - + Let op, de 'audio rate' van de in- en uitgangen moet gelijk zijn. For the curious among you, Sonic Pi uses the SuperCollider Audio Server to generate its sounds. By default it will connect to your default system audio input and outputs. - + Voor de nieuwsgierigen onder ons, Sonic Pi gebruikt de SuperCollider Audio Server om zijn geluiden te genereren. Standaard zal het verbinding maken met de standaard audio in- en uigangen van je computer. Unfortunately SuperCollider is having problems starting correctly. You can read the full error log below which should explain why. - + Helaas, Het lukt SuperCollider niet om te starten. Het volledige fouten log hieronder kan je helpen om te achterhalen waarom dit is gebeurd. To fix this you can try changing your default operating system audio inputs and outputs (ensuring they have the same audio rate). - + Om dit op te lossen kun je proberen om de standaard in- en uitgangen van je OS aan te passen (zorg ervoor dat ze dezelfde audio rate gebruiken). Advanced Users - + Gevorderde Gebruikers you may manually override this and further configure how SuperCollider boots by editing the file: - + je kunt dit handmatig overschrijven en verder aanpassen hoe SuperCollider opstart in het volgende bestand: SuperCollider Log - + SuperCollider Log @@ -1076,17 +1076,17 @@ Sonic Pi krijgen %1 Studio Mode Enabled. Thank-you for supporting Sonic Pi. - Studio mode ingeschakeld. Bedankt om Sonic Pi te steunen. + Studio mode ingeschakeld. Dank voor je steun aan Sonic Pi. No Matching Studio Hash Found... - + Geen bijbehorende Studio Hash gevonden... Close - + Sluiten @@ -1176,32 +1176,32 @@ Sonic Pi krijgen %1 Tutorial - + Handleiding Examples - + Voorbeelden Synths - + Synths Fx - + Effecten Samples - + Samples Lang - + Taal @@ -1217,68 +1217,71 @@ Sonic Pi krijgen %1 Audio - Audio + Audio IO - IO + IO Editor - Editor + Editor Visuals - Beelden (Visuals) + Visualisaties Updates - Updates + Updates Language - + Taal Use this slider to change the system volume. - Gebruik deze schuifregelaar om het volume te wijzigen. + Gebruik deze schuifregelaar om het volume te wijzigen. Audio Output - Audio-uitgang + Audio-uitgang Advanced audio settings for working with external PA systems when performing with Sonic Pi. - Geavanceerde geluidsinstellingen om met -externe PA systemen te werken wanneer je optreedt met Sonic Pi. + Geavanceerde geluidsinstellingen om met +externe omroep (PA) systemen te werken +wanneer je optreedt met Sonic Pi. Invert stereo - Stereobeeld omkeren + Stereobeeld omkeren Toggle stereo inversion. If enabled, audio sent to the left speaker will be routed to the right speaker and vice versa. - + Schakel stereobeeld omkeren in/uit. +Indien ingeschakeld, word het geluid van de linker +naar de rechter luidspreker gestuurd en omgekeerd. Force mono - Herleiden naar mono + Forceer mono @@ -1287,8 +1290,8 @@ If enabled both right and left audio is mixed and the same signal is sent to both speakers. Useful when working with external systems that can only handle mono. - Schakel mono in/uit. -Indien ingeschakeld,worden het rechtse en het linkse kanaal samengevoegd en + Schakel mono in/uit. +Indien ingeschakeld, worden het rechter en linker kanaal samengevoegd en wordt hetzelfde signaal naar beide luidsprekers gestuurd. Dit kan nuttig zijn wanneer men werkt met externe systemen die enkel met een mono signaal overweg kunnen. @@ -1296,31 +1299,31 @@ die enkel met een mono signaal overweg kunnen. Synths and FX - Synths en FX (effecten) + Synths en FX (effecten) Modify behaviour of synths and FX - Wijzig gedrag van synths en effecten + Wijzig gedrag van synths en effecten Safe mode - Veilige modus + Veilige modus Toggle synth argument checking functions. If disabled, certain synth opt values may create unexpectedly loud or uncomfortable sounds. - De controle-functies van argumenten voor synths , in/uitschakelen. + De controle-functies van argumenten voor synths, in/uitschakelen. Indien uitgeschakeld, kunnen bepaalde synth opties voor onverwachts luide of onaangename geluiden zorgen. Enforce timing guarantees - Het "In de maat blijven" garanderen + Garandeer het "In de maat blijven" @@ -1331,12 +1334,12 @@ it is too late to do so When disabled, Sonic Pi will always attempt to trigger synths and FX even when a little late. - Wanneer ingeschakeld,zal Sonic Pi weigeren + Wanneer ingeschakeld, zal Sonic Pi weigeren om Synths en Effecten te triggeren als deze te laat zijn ingegeven. -Wanneer dit is uitgeschakeld,zal Sonic Pi altijd -proberen Synths en Effecten te triggeren, +Wanneer dit is uitgeschakeld, zal Sonic Pi altijd +proberen om Synths en Effecten te triggeren, ook wanneer die een beetje te laat zijn ingegeven. @@ -1348,42 +1351,42 @@ to be triggered. When disabled, Sonic Pi will complain when you attempt to use a synth or FX which isn't recognised. - Indien ingeschakeld zal Sonic Pi toestaan om -synths en effecten die geladen zijn via load_synthdefs -te triggeren. + Indien ingeschakeld zal Sonic Pi het toestaan +om synths en effecten die geladen zijn via +load_synthdefs te triggeren. -Indien uitgeschakeld zal Sonic Pi een waarschuwing geven wanneer -je probeert een synth of effect te gebruiken -dat niet wordt herkend. +Indien uitgeschakeld zal Sonic Pi een waarschuwing +geven wanneer je probeert een synth of effect te +gebruiken dat niet wordt herkend. Networked OSC - OSC via netwerk + OSC berichten via netwerk Sonic Pi can send and receive Open Sound Control messages to and from other programs or computers via the currently connected network. - Sonic Pi kan Open Sound Control berichten verzenden en ontvangen -naar en van andere programma's of computers - via het huidige verbonden netwerk. + Sonic Pi kan Open Sound Control (OSC )berichten verzenden +en ontvangen, naar en van andere programma's of +computers in het huidige verbonden netwerk. Local IP address - Lokaal IP adres + Lokaal IP adres Unavailable - Onbeschikbaar + Onbeschikbaar Allow OSC from other computers - + Sta OSC berichten toe vanuit andere computers @@ -1395,71 +1398,71 @@ Indien niet aangevinkt worden enkel berichten van het lokaal toestel verzonden o Allow incoming OSC - + Sta inkomende OSC berichten toe all - + alle Default MIDI out channel - + Standaard MIDI uit kanaal Show code completion - + Toon code aanvullingen When checked, Sonic Pi will listen for OSC messages. When unchecked no OSC messages will be received. - Indien aangevinkt, zal Sonic Pi controleren of er OSC berichten ontvangen worden. + Indien aangevinkt, zal Sonic Pi luisteren naar OSC berichten. Indien niet aangevinkt, zullen er geen OSC berichten ontvangen kunnen worden. MIDI Configuration - MIDI configuratie + MIDI configuratie Configure MIDI behaviour - Configureer MIDI functionaliteit + Configureer MIDI functionaliteit MIDI Ports - MIDI poorten + MIDI poorten List all connected MIDI Ports - Toon alle verbonden MIDI poorten + Toon alle verbonden MIDI poorten Reset MIDI - Reset MIDI + Herstel MIDI Reset MIDI subsystems (Required to detect device changes on macOS) - MIDI-subsysteem herstellen -(nodig om apparaatwijzigingen te detecteren in macOS) + MIDI-subsysteem herstellen +(nodig om apparaat-wijzigingen te detecteren in macOS) No connected input devices - Geen aangesloten ingave apparaten + Geen aangesloten invoer apparaten No connected output devices - Geen uitgangs apparaten aangesloten + Geen aangesloten uitvoer apparaten @@ -1474,233 +1477,233 @@ Sonic Pi en worden ontvangen als aanwijzingssignalen MIDI output devices receive MIDI messages directly from Sonic Pi which can be sent via the midi_* fns - MIDI output apparaten ontvangen MIDI berichten direct van -Sonic Pi die verstuurd kunnen worden via de midi_* functies + MIDI uitvoer apparaten ontvangen MIDI berichten direct van +Sonic Pi, welke verstuurd kunnen worden via de midi_* functies Show and Hide - Tonen en Verbergen + Tonen en Verbergen Configure editor display options. - Configureer de weergave-opties van de editor. + Configureer de weergave-opties van de editor. Configure editor look and feel. - Configureer het uitzicht en het gedrag van de editor . + Configureer het uiterlijk en gedrag van de editor . Main Volume - + Volume Audio Input - + Audio Ingang Audio settings for working with audio inputs. - + Audio instellingen van de audio ingangen. Enable Audio Inputs - + Activeer Audio Ingangen Toggle to enable or disable audio inputs. - + Schakelaar om de audio ingangen aan of uit te zetten. Enable external synths/FX - + Activeer externe synths/FX (synths/effecten) Audio Hardware Information - + Audio Apparaat (hardware) informatie Audio hardware configuration and information. - + Audio apparaat (hardware) instellingen en informatie. Information unavailable. - + Geen informatie beschikbaar. Incoming OSC port - + Inkomende OSC berichten poort Enable incoming MIDI cues - + Activeer inkomende MIDI cues Enable or disable automatic conversion of incoming MIDI messages to cue events - + Activeer of deactiveer de automatische conversie van inkomende MIDI berichten naar cue berichten Default MIDI Channel to send messages to (* means all) - + Standaard MIDI kanaal om berichten naar te zenden (* voor alle) Default MIDI Channel to send messages to (* means all) - + Standaard MIDI kanaal om berichten naar te zenden (* voor alle) Show Panels - + Toon Panelen Show and hide information panes such as the scope and log. - + Toon en verberg informatie panelen als de scope en log. Theme - + Kleuren schema Automation / Misc - + Automatisering / Overige Configure automation and other features. - + Instellen van automatisering en andere opties. Auto-align - Automatisch uitlijnen + Automatisch uitlijnen Automatically align code on Run - Automatisch uitlijnen van de code bij het afspelen + Automatisch uitlijnen van de code bij het afspelen Show line numbers - Regelnummers tonen + Toon Regelnummers Toggle line number visibility. - Schakel lijnnummers in/uit. + Schakel regelnummers aan/uit. When enabled, Sonic Pi's editor will attempt to autocomplete your code with suggestions. When disabled, these suggestions will not be visible. - + Wanneer actief zal Sonic Pi pogen je code automatisch van afmaak suggesties voorzien. Wanneer inactief zullen geen suggesties getoond worden. Show code context - + Toon code informatie When enabled, Sonic Pi's editor will show a pane which will display context-specific information for the code such as the current line and position of the cursor. - + Wanneer actief zal Sonic Pi's editor een paneel tonen met daarin context specifieke informatie voor de code, zoals de huidige regel en positie van de cursor. Show log - Log tonen + Toon Log Toggle visibility of the log. - In-/ uitschakelen van het logvenster. + Schakel het log venster in/uit. Show cue log - Toon cue-log + Toon cue-log Toggle visibility of cue log which displays internal cues & incoming OSC/MIDI messages. - De zichtbaarheid van de cue-log, die interne cues & binnenkomende OSC/MIDI-berichten toont, in-/ uitschakelen. + Schakel de zichtbaarheid van de cue-log, dat interne cues & binnenkomende OSC/MIDI-berichten toont, in/uit. Show Link metronome controls - + Toon Link metronoom besturing Toggle visibility of the Link metronome controls. - + Schakel het tonen van de Link metronoom besturing. Show buttons - Knoppen weergeven + Toon Knoppen Toggle visibility of the control buttons. - Het tonen van de bedieningsknoppen in-/ uitschakelen. + Schakel het tonen van de bedieningsknoppen in/uit. Show tabs - Tabbladen weergeven + Toon Tabbladen Toggle visibility of the buffer selection tabs. - Het tonen van de buffer tabbladen in-/uitschakelen. + Schakel het tonen van de buffer tabbladen in/uit. Full screen - Volledig scherm + Volledig scherm weergave Toggle full screen mode. - Volledig scherm,in-/uitschakelen. + Schakel Volledig scherm weergave, in/uit. Show titles - + Toon titels Toggle the title visibility for the scope, log, cue and other information panes - + Schakel de zichtbaarheid van de titels voor de scope, het log, cue en andere informatie panelen Hide Menubar in Fullscreen Mode - + Verberg de Menubalk bij Volledige Scherm Weergave Automatically hide the menubar when the app is in full screen mode. Note that the menubar is always visible when not in full screen mode. - + Verberg de menubalk automatisch wanneer de applicatie in Volledige Scherm Weergave is. De menubalk is altijd zichtbaar wanneer niet in Volledige Scherm Weergave. @@ -1730,12 +1733,12 @@ Sonic Pi die verstuurd kunnen worden via de midi_* functies Logging - Logregistratie + Log registratie Configure debug behaviour - Foutopsporing configureren + Foutopsporing configureren @@ -1747,200 +1750,203 @@ Sonic Pi die verstuurd kunnen worden via de midi_* functies Toggle log messages. If disabled, activity such as synth and sample triggering will not be printed to the log by default. - Schakel log-berichten in/uit. -Indien uitgeschakeld, zullen synths en samples triggers, + Schakel log-berichten in/uit. +Indien uitgeschakeld, zullen synth en sample triggers, niet meer standaard naar het logbestand geschreven worden. Clear log on run - Logbestand wissen voor afspelen + Log wissen voor afspelen Toggle log clearing on run. If enabled, the log is cleared each time the run button is pressed. - Logvenster leegmaken in/uitschakelen. -Wanneer ingeschakeld wordt het logvenster -leeggemaakt telkens op afspelen wordt gedrukt. + Schakel het leegmaken van het Log venster in/uit. +Wanneer ingeschakeld wordt het log venster +leeggemaakt telkens als op afspelen wordt gedrukt. Log cues - Log cues + Log cues Enable or disable logging of cues. If disabled, cues will still trigger. However, they will not be visible in the logs. - Schakel het loggen van cues (uitvoersignalen) in/uit. + Schakel het loggen van cues (uitvoersignalen) in/uit. Indien uitgeschakeld zullen cues nog wel triggeren, -maar zullen niet zichtbaar zijn in het logvenster. +maar zullen niet zichtbaar zijn in het log venster. Auto-scroll log - Auto-scroll log + Auto-scroll log Toggle log auto scrolling. If enabled the log is scrolled to the bottom after every new message is displayed. - Schakel auto-scrollen in/uit. -Indien ingeschakeld scrolt het logvenster automatisch tot beneden na elk nieuw weergegeven bericht. + Schakel auto-scrollen in/uit. +Indien ingeschakeld scrolt het log venster automatisch, na elk nieuw weergegeven bericht, naar beneden. Settings useful for performing with Sonic Pi - Nuttige instellingen om met Sonic Pi op te treden + Nuttige instellingen bij het optreden met Sonic Pi Show and Hide Scope - Scope weergeven of verbergen + Scope weergeven of verbergen Scope Kinds - Soorten Scope + Soorten Scope Show scopes - + Toon scopes Show scope labels - + Toon scope bijschriften Configure language settings - + Verstel de taal instellingen UI & Tutorial Language (Requires a restart to take effect) - + Interface & Handleiding taal (Herstart is nodig om actief te maken) Change the language of the UI & Tutorial (Requires a restart to take effect) - + Pas de taal van de interface en het handboek aan (Herstart is nodig om actief te maken) Change the language of the UI & Tutorial - + Pas de taal van de interface en handleiding aan Translations have been generously provided by volunteers on https://hosted.weblate.org/projects/sonic-pi/. Thank you! :) - + Vertalingen zijn gedaan door vrijgevende vrijwilligers +op https://hosted.weblate.org/projects/sonic-pi/. Dank je wel! :) You've selected a new language: %1 - + Je hebt een nieuwe taal geselecteerd: %1 Do you want to apply this language? - + Wil je deze taal instellen? The new language will be applied when you next start Sonic Pi. - + De nieuwe taal word de volgende keer dat je Sonic Pi start actief. System languages found: %1 - + Systeem talen gevonden: %1 Apply - + Toepassen Cancel - + Afbreken <b>The new language will be applied when you next start Sonic Pi.</b><br> - + <b>De nieuwe taal word de volgende keer dat je Sonic Pi start actief.</b><br> Current UI language: %1 - + Huidige interface taal: %1 + Restart Sonic Pi? - + Sonic Pi herstarten? Do you want to restart Sonic Pi now? This will stop any current runs & recordings. - + Wil je Sonic Pi nu herstarten? Dit zal je huidige spelende code en opnames stoppen. Restart - + Herstart Dismiss - + Sluiten Audio input change detected. - + Audio ingang verandering gedetecteerd. Your changes won't take effect until you restart Sonic Pi. - + Je aanpassingen worden pas actief na een herstart van Sonic Pi. Would you like to restart now? - + Wil je nu herstarten? System languages: %1 - + Systeem talen: %1 + Use system language - + Gebruik de systeem taal Toggle the visibility of the audio oscilloscopes. - Zichtbaarheid van de audio-oscilloscopen in-/uitschakelen. + Schakel de zichtbaarheid van de audio-oscilloscopen in/uit. Toggle the visibility of the labels for the audio oscilloscopes - + Schakel het tonen van de bijschriften van de audio oscilloscopes @@ -1952,56 +1958,63 @@ Mirror Stereo - simple left/right composite wave, with left on top, right on bot Mono - shows a combined view of the left and right channels (using RMS) Spectrum - shows the sound frequencies as a spectrum, from low to high frequencies Stereo - shows two independent scopes for left and right channels - + De audio oscilloscope heeft een paar verschillende vormen die +los of allemaal tegelijk getoond kunnen worden: + +Lissajous - tekent de fase relatie tussen het linker en rechter kanaal. +Mirror Stereo - eenvoudige links/rechts samengestelde golf, met links boven en rechts onder +Mono - eenvoudige gecombineerde golf van het linker en rechter kanaal (met kwadratisch gemiddelde (RMS)) +Spectrum - splitst het geluid op in frequentie van laag naar hoog +Stereo - twee eenvoudige golven, een voor links en een voor rechts Transparency - Transparantie + Transparantie Check for updates - Controleren op updates + Controleren op updates Toggle automatic update checking. This check involves sending anonymous information about your platform and version. - Automatische controle van Updates opvragen. -Deze controle omvat het verzenden van anonieme gegevens over het platform en de versie van uw computer. + Schakel automatische controle van Updates in/uit. +Deze controle omvat het verzenden van anonieme gegevens over het platform en de versie van uw computer om vast stellen of er een geschikte update beschikbaar is. Check now - Nu opzoeken + Nu Kijken Force a check for updates now. This check involves sending anonymous information about your platform and version. - Geforceerd naar updates zoeken. -Deze opdracht omvat het verzenden van anonieme gegevens over het platform en de versie van uw computer. + Forceer het zoeken naar een update. +Dit omvat het verzenden van anonieme gegevens over het platform en de versie van uw computer om te bepalen of er een geschikte update beschikbaar is. Get update - Update krijgen + Update Ophalen Visit http://sonic-pi.net to download new version - Bezoek http://sonic-pi.net om een nieuwe versie te downloaden + Bezoek http://sonic-pi.net om een nieuwe versie te downloaden Update Info - Info Updaten + Info Updaten Sonic Pi update info - Sonic Pi update info + Sonic Pi update info diff --git a/app/gui/qt/mainwindow.cpp b/app/gui/qt/mainwindow.cpp index c5523631e7..769e53ab6e 100644 --- a/app/gui/qt/mainwindow.cpp +++ b/app/gui/qt/mainwindow.cpp @@ -130,29 +130,33 @@ MainWindow::MainWindow(QApplication& app, QSplashScreen* splash) show_rec_icon_a = false; restoreDocPane = false; focusMode = false; - version = "4.1.0"; + version = "4.2.0"; latest_version = ""; version_num = 0; latest_version_num = 0; - QString settings_path = sonicPiConfigPath() + QDir::separator() + "gui-settings.ini"; - - gui_settings = new QSettings(settings_path, QSettings::IniFormat); - - readSettings(); - initPaths(); bool startupOK = false; bool noScsynthInputs = !piSettings->enable_scsynth_inputs; APIInitResult init_success = m_spAPI->Init(rootPath().toStdString(), noScsynthInputs); + if(init_success == APIInitResult::Successful) { std::cout << "[GUI] - API Init successful" << std::endl; } else if (init_success == APIInitResult::ScsynthBootError) { std::cout << "[GUI] - API Scsynth Boot Failed" << std::endl; scsynthBootError(); + } else if (init_success == APIInitResult::HomePathNotWritableError) { + std::cout << "[GUI] - API HomePath Not Writable" << std::endl; + homeDirWriteError(); } else { std::cout << "[GUI] - API Init failed" << std::endl; } + QString settings_path = sonicPiConfigPath() + QDir::separator() + "gui-settings.ini"; + + gui_settings = new QSettings(settings_path, QSettings::IniFormat); + readSettings(); + initPaths(); + const QRect rect = this->geometry(); m_appWindowSizeRect = std::make_shared(rect); @@ -364,7 +368,8 @@ void MainWindow::showWelcomeScreen() void MainWindow::setupTheme() { // Syntax highlighting - QString themeFilename = QDir::homePath() + QDir::separator() + ".sonic-pi" + QDir::separator() + "config" + QDir::separator() + "colour-theme.properties"; + + QString themeFilename = sonicPiConfigPath() + QDir::separator() + "colour-theme.properties"; this->theme = new SonicPiTheme(this, themeFilename, rootPath()); } @@ -4106,20 +4111,12 @@ bool MainWindow::eventFilter(QObject* obj, QEvent* evt) QString MainWindow::sonicPiHomePath() { - QString path = qgetenv("SONIC_PI_HOME").constData(); - if (path.isEmpty()) - { - return QDir::homePath() + QDir::separator() + ".sonic-pi"; - } - else - { - return path; - } + return QString::fromStdString(m_spAPI->GetPath(SonicPiPath::HomePath)); } QString MainWindow::sonicPiConfigPath() { - return sonicPiHomePath() + QDir::separator() + "config"; + return QString::fromStdString(m_spAPI->GetPath(SonicPiPath::ConfigPath)); } void MainWindow::zoomInLogs() @@ -4460,3 +4457,89 @@ void MainWindow::scsynthBootError() pDialog->setMaximumSize(QWIDGETSIZE_MAX, QWIDGETSIZE_MAX); pDialog->exec(); } + +void MainWindow::homeDirWriteError() +{ + splashClose(); + setMessageBoxStyle(); + + QDialog* pDialog = new QDialog(this, Qt::Window | Qt::WindowTitleHint | Qt::CustomizeWindowHint | Qt::WindowStaysOnTopHint); + + QVBoxLayout* pLayout = new QVBoxLayout(this); + pDialog->setLayout(pLayout); + + pDialog->setWindowTitle(tr("Sonic Pi - Unable to Write to Home Directory")); + + QString text; + QTextStream str(&text); + if(QProcessEnvironment::systemEnvironment().value("SONIC_PI_HOME") == "") { + str << "" + << "

" << tr("Boot Error - Home Dir not writable:") << "

\n\n" + << "

" << sonicPiHomePath() << "

\n\n" + << "

" << tr("Quick Fix: set the environment variable SONIC_PI_HOME to a directory you have permission to write to.") << "

\n\n" + << "" + << "
" + << "
" + << "

" << tr("For the curious among you, Sonic Pi automatically stores the contents of the code buffers, configuration files and logs in a folder called .sonic-pi which typically resides in your home directory.") << "

" + << "

" << tr("Unfortunately you don't appear to have permission to write to your home directory:") << "

" << sonicPiHomePath() << "

" + << "

" << tr("To fix this you can set the environment variable SONIC_PI_HOME to any directory you have write access to and Sonic Pi will place its .sonic-pi directory within that.") << "

" + << ""; + } else { + str << "" + << "

" << tr("Boot Error - SONIC_PI_HOME not writable:") << "

\n\n" + << "

" << sonicPiHomePath() << "

\n\n" + << "

" << tr("Quick Fix: set the environment variable SONIC_PI_HOME to a directory you have permission to write to.") << "

\n\n" + << "" + << "
" + << "
" + << "

" << tr("For the curious among you, Sonic Pi automatically stores the contents of the code buffers, configuration files and logs in a folder called .sonic-pi which typically resides in your home directory.") << "

" + << "

" << tr("Unfortunately it appears you have set the SONIC_PI_HOME environment variable to a directory you don't have permission to write to:") << "

" << sonicPiHomePath() << "

" + << "

" << tr("To fix this you can set the environment variable SONIC_PI_HOME to any directory you have write access to and Sonic Pi will place its .sonic-pi directory within that.") << "

" + << ""; + + } + + // The text area for the message. Allows the user to scroll/view it. + auto pTextArea = new QTextEdit(); + + auto text_hsv_value = palette().color(QPalette::WindowText).value(); + auto bg_hsv_value = palette().color(QPalette::Window).value(); + bool dark_theme_found = text_hsv_value > bg_hsv_value; + QString styles; + + if(dark_theme_found) { + styles = ScalePxInStyleSheet(readFile(":/theme/dark/doc-styles.css")); + } else { + styles = ScalePxInStyleSheet(readFile(":/theme/light/doc-styles.css")); + } + + pTextArea->document()->setDefaultStyleSheet(styles); + pTextArea->setHtml(text); + pTextArea->setReadOnly(true); + pLayout->addWidget(pTextArea); + + // Add a dialog style OK button + QDialogButtonBox* pButtons = new QDialogButtonBox(QDialogButtonBox::Ok, this); + pLayout->addWidget(pButtons); + + auto finished = [&]() { + std::cout << "[GUI] - Aborting. Sorry about this." << std::endl; + QApplication::exit(-1); + exit(EXIT_FAILURE); + }; + + // When the user hits OK, quit + connect(pButtons, &QDialogButtonBox::accepted, this, [=]() { + finished(); + }); + + // When the dialog is done, quit + connect(pDialog, &QDialog::finished, this, [=]() { + finished(); + }); + + // Make a sensible size, but then allow resizing + pDialog->setFixedSize(QSize(ScaleHeightForDPI(750), ScaleHeightForDPI(800))); + pDialog->setMaximumSize(QWIDGETSIZE_MAX, QWIDGETSIZE_MAX); + pDialog->exec(); +} diff --git a/app/gui/qt/mainwindow.h b/app/gui/qt/mainwindow.h index 7d4ab45cba..ebf871455e 100644 --- a/app/gui/qt/mainwindow.h +++ b/app/gui/qt/mainwindow.h @@ -120,6 +120,7 @@ class MainWindow : public QMainWindow void updateMIDIOutPorts(QString port_info); void updateScsynthInfo(QString description); void scsynthBootError(); + void homeDirWriteError(); void replaceLines(QString id, QString content, int first_line, int finish_line, int point_line, int point_index); void runBufferIdx(int idx); diff --git a/app/gui/qt/widgets/sonicpimetro.cpp b/app/gui/qt/widgets/sonicpimetro.cpp index 14a1662796..59d8eaf08a 100644 --- a/app/gui/qt/widgets/sonicpimetro.cpp +++ b/app/gui/qt/widgets/sonicpimetro.cpp @@ -55,7 +55,7 @@ SonicPiMetro::SonicPiMetro(std::shared_ptr spClient, std:: timeWarpSlider->setTickPosition(QSlider::TicksBelow); timeWarpSlider->setToolTip(tr("Global Time Warp.\n\nSlide to shift the phase of all triggered synths / FX and sent MIDI/OSC events.\nNegative values trigger everything earlier, positive values trigger things later.\nThe unit is milliseconds.")); timeWarpSlider->setMinimum(-250); - timeWarpSlider->setMaximum(250); + timeWarpSlider->setMaximum(999); timeWarpSlider->setValue(0); diff --git a/app/gui/qt/widgets/timewarpedit.cpp b/app/gui/qt/widgets/timewarpedit.cpp index b908f48b9f..b04f32b98d 100644 --- a/app/gui/qt/widgets/timewarpedit.cpp +++ b/app/gui/qt/widgets/timewarpedit.cpp @@ -285,8 +285,8 @@ void TimeWarpEdit::setTimeWarpValue(int val) { if (val < -250) { val = -250; - } else if (val > 250) { - val = 250; + } else if (val > 999) { + val = 999; } m_timeWarpValue = val; } diff --git a/app/server/beam/tau/boot-lin.sh b/app/server/beam/tau/boot-lin.sh index 1eb89be763..36a1d3557b 100755 --- a/app/server/beam/tau/boot-lin.sh +++ b/app/server/beam/tau/boot-lin.sh @@ -5,23 +5,6 @@ cd "${SCRIPT_DIR}" echo "Booting Tau on Linux..." -export TAU_CUES_ON=$1 -export TAU_OSC_IN_UDP_LOOPBACK_RESTRICTED=$2 -export TAU_MIDI_ON=$3 -export TAU_LINK_ON=$4 -export TAU_OSC_IN_UDP_PORT=$5 -export TAU_API_PORT=$6 -export TAU_SPIDER_PORT=$7 -export TAU_DAEMON_PORT=$8 -export TAU_LOG_PATH=${9} -export TAU_MIDI_ENABLED=${10} -export TAU_LINK_ENABLED=${11} -export TAU_PHX_PORT=${12} -export SECRET_KEY_BASE=${13} -export TAU_DAEMON_TOKEN=${14} -export TAU_ENV=${15} -export MIX_ENV=$TAU_ENV - if [ $TAU_ENV = "prod" ] then _build/prod/rel/tau/bin/tau start > /dev/null 2>&1 diff --git a/app/server/beam/tau/boot-mac.sh b/app/server/beam/tau/boot-mac.sh index 437ae42ca4..92275e743f 100755 --- a/app/server/beam/tau/boot-mac.sh +++ b/app/server/beam/tau/boot-mac.sh @@ -5,23 +5,6 @@ cd "${SCRIPT_DIR}" echo "Booting Tau on macOS..." -export TAU_CUES_ON=$1 -export TAU_OSC_IN_UDP_LOOPBACK_RESTRICTED=$2 -export TAU_MIDI_ON=$3 -export TAU_LINK_ON=$4 -export TAU_OSC_IN_UDP_PORT=$5 -export TAU_API_PORT=$6 -export TAU_SPIDER_PORT=$7 -export TAU_DAEMON_PORT=$8 -export TAU_LOG_PATH=${9} -export TAU_MIDI_ENABLED=${10} -export TAU_LINK_ENABLED=${11} -export TAU_PHX_PORT=${12} -export SECRET_KEY_BASE=${13} -export TAU_DAEMON_TOKEN=${14} -export TAU_ENV=${15} -export MIX_ENV=$TAU_ENV - if [ $TAU_ENV = "prod" ] then _build/prod/rel/tau/bin/tau start > /dev/null 2>&1 diff --git a/app/server/beam/tau/boot-win.bat b/app/server/beam/tau/boot-win.bat index 22434ce45d..06b518bdde 100644 --- a/app/server/beam/tau/boot-win.bat +++ b/app/server/beam/tau/boot-win.bat @@ -5,30 +5,6 @@ rem mix release @echo Booting Tau on Windows... -set TAU_CUES_ON=%1% -set TAU_OSC_IN_UDP_LOOPBACK_RESTRICTED=%2% -set TAU_MIDI_ON=%3% -set TAU_LINK_ON=%4% -set TAU_OSC_IN_UDP_PORT=%5% -set TAU_API_PORT=%6% -set TAU_SPIDER_PORT=%7% -set TAU_DAEMON_PORT=%8% -set TAU_LOG_PATH=%9% -shift -set TAU_MIDI_ENABLED=%9% -shift -set TAU_LINK_ENABLED=%9% -shift -set TAU_PHX_PORT=%9% -shift -set SECRET_KEY_BASE=%9% -shift -set TAU_DAEMON_TOKEN=%9% -shift -set TAU_ENV=%9% - -set MIX_ENV=%TAU_ENV% - IF "%TAU_ENV%" == "prod" ( _build\prod\rel\tau\bin\tau start > NUL 2>&1 ) diff --git a/app/server/ruby/bin/daemon.rb b/app/server/ruby/bin/daemon.rb index 2b41200500..a5c3d5b004 100755 --- a/app/server/ruby/bin/daemon.rb +++ b/app/server/ruby/bin/daemon.rb @@ -934,48 +934,51 @@ def initialize(ports, kill_switch, token) unified_opts = {} end - cues_on = true - osc_in_udp_loopback_restricted = false - midi_on = true - link_on = true - osc_in_udp_port = ports["osc-cues"] - api_port = ports["tau"] - spider_port = ports["spider-listen-to-tau"] - daemon_port = ports["daemon"] - midi_enabled = true - link_enabled = true - phx_secret_key_base = SecureRandom.base64(64) - env = ENV["SONIC_PI_ENV"] || unified_opts[:env] || "prod" - @phx_port = unified_opts[:phx_port] || ports["phx"] - - Util.log "Daemon listening to info from Tau on port #{daemon_port}" - - args = [ - cues_on, - osc_in_udp_loopback_restricted, - midi_on, - link_on, - osc_in_udp_port, - api_port, - spider_port, - daemon_port, - Paths.tau_log_path, - midi_enabled, - link_enabled, - phx_port, - phx_secret_key_base, - token, - env - ] + @phx_port = unified_opts[:phx_port] || ports["phx"] + + Util.log "Daemon listening to info from Tau on port #{ports["daemon"]}" + + ENV["TAU_CUES_ON"] = "true" + ENV["TAU_OSC_IN_UDP_LOOPBACK_RESTRICTED"] = "false" + ENV["TAU_MIDI_ON"] = "true" + ENV["TAU_LINK_ON"] = "true" + ENV["TAU_OSC_IN_UDP_PORT"] = "#{ports["osc-cues"]}" + ENV["TAU_API_PORT"] = "#{ports["tau"]}" + ENV["TAU_SPIDER_PORT"] = "#{ports["spider-listen-to-tau"]}" + ENV["TAU_DAEMON_PORT"] = "#{ports["daemon"]}" + ENV["TAU_MIDI_ENABLED"] = "true" + ENV["TAU_LINK_ENABLED"] = "true" + ENV["SECRET_KEY_BASE"] = "#{SecureRandom.base64(64)}" + ENV["TAU_DAEMON_TOKEN"] = "#{token}" + ENV["TAU_ENV"] = "#{ENV["SONIC_PI_ENV"] || unified_opts[:env] || "prod"}" + ENV["MIX_ENV"] = ENV["TAU_ENV"] + ENV["TAU_PHX_PORT"] = "#{@phx_port}" + ENV["TAU_LOG_PATH"] = "#{Paths.tau_log_path}" if Util.os == :windows - cmd = Paths.mix_release_boot_path + if ENV["TAU_ENV"] == "prod" + ENV["RELEASE_SYS_CONFIG"] = "#{Paths.tau_release_sys_config_path}" + ENV["RELEASE_ROOT"] = "#{Paths.tau_release_root}" + + cmd = "#{Paths.tau_release_erl_bin_path}".gsub('/', '\\') + args = ["-config", "#{Paths.tau_release_sys_path}".gsub('/', "\\"), + "-boot", "#{Paths.tau_release_start_path}".gsub('/', "\\"), + "-boot_var", "RELEASE_LIB", "#{Paths.tau_release_lib_path}".gsub('/', "\\"), + "-args_file", "#{Paths.tau_release_vm_args_path}".gsub('/', "\\"), + "-noshell", + "-s", "elixir", "start_cli", + "-mode", "embedded", + "-extra", "--no-halt"] + else + cmd = Paths.mix_release_boot_path + args = [] + end else cmd = "sh" - args = [Paths.mix_release_boot_path] + args + args = [Paths.mix_release_boot_path] end - super(cmd, args, nil) + super(cmd, args, Paths.tau_boot_log_path) end def restart! diff --git a/app/server/ruby/bin/sonic-pi-server.rb b/app/server/ruby/bin/spider-server.rb old mode 100755 new mode 100644 similarity index 99% rename from app/server/ruby/bin/sonic-pi-server.rb rename to app/server/ruby/bin/spider-server.rb index e72f60e1b5..b537ea7f55 --- a/app/server/ruby/bin/sonic-pi-server.rb +++ b/app/server/ruby/bin/spider-server.rb @@ -12,6 +12,8 @@ # notice is included. #++ +## This is the Spider Server - the Sonic Pi language runtime. + require 'cgi' require 'rbconfig' diff --git a/app/server/ruby/lib/sonicpi/lang/core.rb b/app/server/ruby/lib/sonicpi/lang/core.rb index d5ae8a73c8..0e7489dda3 100644 --- a/app/server/ruby/lib/sonicpi/lang/core.rb +++ b/app/server/ruby/lib/sonicpi/lang/core.rb @@ -960,6 +960,8 @@ def time_warp(times=0, params=nil, &block) raise ArgumentError, "time_warp requires a do/end block" unless block prev_ctl_deltas = __system_thread_locals.get(:sonic_pi_local_control_deltas) prev_cache = __system_thread_locals.get(:sonic_pi_spider_time_state_cache, []) + prev_slept = __system_thread_locals.get(:sonic_pi_spider_slept) + prev_synced = __system_thread_locals.get(:sonic_pi_spider_synced) had_params = params times = [times] if times.is_a? Numeric @@ -1002,6 +1004,8 @@ def time_warp(times=0, params=nil, &block) __system_thread_locals.set_local :sonic_pi_spider_in_time_warp, already_in_time_warp __system_thread_locals.set_local :sonic_pi_local_control_deltas, prev_ctl_deltas __system_thread_locals.set_local(:sonic_pi_spider_time_state_cache, prev_cache) + __system_thread_locals.set(:sonic_pi_spider_synced, prev_synced) + __system_thread_locals.set(:sonic_pi_spider_slept, prev_slept) end doc name: :time_warp, introduced: Version.new(2,11,0), @@ -4442,6 +4446,7 @@ def sync_bpm(*args) def sync_event(*args) + raise TimeTravelError, "Calling sync within a time_warp is not supported. " if __system_thread_locals.get(:sonic_pi_spider_in_time_warp) params, opts = split_params_and_merge_opts_array(args) k = params[0] diff --git a/app/server/ruby/lib/sonicpi/runtime.rb b/app/server/ruby/lib/sonicpi/runtime.rb index 3a7c41f811..ff93492b1d 100644 --- a/app/server/ruby/lib/sonicpi/runtime.rb +++ b/app/server/ruby/lib/sonicpi/runtime.rb @@ -1400,8 +1400,8 @@ def initialize(ports, msg_queue, user_methods) @settings = Config::Settings.new(Paths.system_cache_store_path) # Temporarily fix beta version: - @version = Version.new(4, 1, 0) - # @version = Version.new(4, 1, 0, "beta1") + @version = Version.new(4, 2, 0) + # @version = Version.new(4, 2, 0, gh_short) @server_version = __server_version @life_hooks = LifeCycleHooks.new diff --git a/app/server/ruby/lib/sonicpi/scale.rb b/app/server/ruby/lib/sonicpi/scale.rb index 7769492453..383c56eb88 100644 --- a/app/server/ruby/lib/sonicpi/scale.rb +++ b/app/server/ruby/lib/sonicpi/scale.rb @@ -58,8 +58,9 @@ class InvalidDegreeError < ArgumentError; end ; nikriz_beslisi = [tanini, kucuk_mucenneb, artik_ikili, kucuk_mucenneb] tam_ferahnak_beslisi = [kucuk_mucenneb, tanini, tanini, buyuk_mucenneb] eksik_ferahnak_beslisi = [kucuk_mucenneb, tanini, tanini, bakiyye] - nisabur_dortlusu = [buyuk_mucenneb, kucuk_mucenneb, tanini] - # currently unused, but can be used to extend other scales + + # currently unused, but can be used to extend other scales + # nisabur_dortlusu = [buyuk_mucenneb, kucuk_mucenneb, tanini] # kurdi_beslisi = kurdi_dortlusu + [tanini] # saba_dortlusu = [buyuk_mucenneb, kucuk_mucenneb, kucuk_mucenneb] # tam_mustear_beslisi = mustear_dortlusu + [tanini] diff --git a/app/server/ruby/paths.rb b/app/server/ruby/paths.rb index 49f832e065..ab1ca53d83 100644 --- a/app/server/ruby/paths.rb +++ b/app/server/ruby/paths.rb @@ -167,6 +167,10 @@ def self.tau_log_path File.absolute_path("#{log_path}/tau.log") end + def self.tau_boot_log_path + File.absolute_path("#{log_path}/tau_boot.log") + end + def self.jackd_log_path File.absolute_path("#{log_path}/jackd.log") end @@ -215,8 +219,56 @@ def self.mix_release_boot_path end end + def self.tau_base_path + File.absolute_path("#{server_path}/beam/tau") + end + + def self.tau_release_path + File.absolute_path("#{tau_base_path}/_build/prod/rel/tau/releases/0.1.0") + end + + def self.tau_release_root + File.absolute_path("#{tau_base_path}/_build/prod/rel/tau") + end + + def self.tau_release_erl_bin_path + case os + when :windows + base = File.absolute_path("#{tau_base_path}/_build/prod/rel/tau") + erts_dir = Dir["#{base}/erts-*"][0] + path = File.absolute_path("#{erts_dir}/bin/erl.exe") + + raise "Unable to find erl.exe. Did the Elixir build release work correctly? I looked here: #{path.inspect}" unless File.exist?(path) + path + when :macos + + else + + end + end + + def self.tau_release_sys_config_path + File.absolute_path("#{tau_release_path}/sys") + end + + def self.tau_release_sys_path + File.absolute_path("#{tau_release_path}/sys") + end + + def self.tau_release_start_path + File.absolute_path("#{tau_release_path}/start") + end + + def self.tau_release_vm_args_path + File.absolute_path("#{tau_release_path}/vm.args") + end + + def self.tau_release_lib_path + File.absolute_path("#{tau_base_path}/_build/prod/rel/tau/lib") + end + def self.tau_app_path - File.absolute_path("#{server_path}/beam/tau/ebin") + File.absolute_path("#{tau_base_path}/ebin") end def self.user_audio_settings_path @@ -236,7 +288,7 @@ def self.user_config_examples_path end def self.spider_server_path - File.absolute_path("#{server_bin_path}/sonic-pi-server.rb") + File.absolute_path("#{server_bin_path}/spider-server.rb") end def self.scsynth_path diff --git a/app/server/ruby/test/test_allocator.rb b/app/server/ruby/test/test_allocator.rb index 3da525a7d3..dee263e909 100644 --- a/app/server/ruby/test/test_allocator.rb +++ b/app/server/ruby/test/test_allocator.rb @@ -54,8 +54,7 @@ def test_allocation_count def test_reset a = Allocator.new(5) - last = nil - 3.times { last = a.allocate } + 3.times { a.allocate } assert_equal(3, a.num_allocations) a.reset! assert_equal(0, a.num_allocations) diff --git a/app/server/ruby/test/test_event_history.rb b/app/server/ruby/test/test_event_history.rb index 9135fbd0d9..11680f744f 100644 --- a/app/server/ruby/test/test_event_history.rb +++ b/app/server/ruby/test/test_event_history.rb @@ -29,7 +29,7 @@ def make_cue_event(path) m = 60 v = [:a, :b, :c] n = path - c = CueEvent.new(t, p, i, d, b, m, n, v) + CueEvent.new(t, p, i, d, b, m, n, v) end def test_get_and_set_w_diff_thread_ids @@ -377,17 +377,7 @@ def test_event_matcher end - def test_event_matcher_star - m = EventMatcher.new(make_cue_event("/foo*/*/*baz"), nil, ThreadId.new(5), Promise.new) - assert m.path_match("/foo/bar/baz", nil) - assert m.path_match("/foo/bar/baz/", nil) - assert m.path_match("foo/bar/baz", nil) - assert m.path_match("foo/bar/eggsbaz", nil) - assert m.path_match("foo333/bar/eggsbaz", nil) - assert_nil m.path_match("foo333//bar/eggsbaz", nil) - assert_nil m.path_match("foo333/beans/bar/eggsbaz", nil) - assert_nil m.path_match("/foo/bar/bazz", nil) - end + def test_event_matcher_glob_star m = EventMatcher.new(make_cue_event("/foo/**/baz"), nil, ThreadId.new(5), Promise.new) @@ -538,14 +528,15 @@ def test_get_matchers end def test_event_matcher_star - - m = EventMatcher.new(make_cue_event("/{cue,set}/[a-c]az"), nil, ThreadId.new(5), Promise.new) - assert m.path_match("/cue/baz", nil) - assert m.path_match("/set/aaz/", nil) - assert m.path_match("/set/baz/", nil) - assert m.path_match("/set/caz/", nil) - assert m.path_match("/cue/caz/", nil) - assert_nil m.path_match("/cue/daz/", nil) + m = EventMatcher.new(make_cue_event("/foo*/*/*baz"), nil, ThreadId.new(5), Promise.new) + assert m.path_match("/foo/bar/baz", nil) + assert m.path_match("/foo/bar/baz/", nil) + assert m.path_match("foo/bar/baz", nil) + assert m.path_match("foo/bar/eggsbaz", nil) + assert m.path_match("foo333/bar/eggsbaz", nil) + assert_nil m.path_match("foo333//bar/eggsbaz", nil) + assert_nil m.path_match("foo333/beans/bar/eggsbaz", nil) + assert_nil m.path_match("/foo/bar/bazz", nil) end def test_event_matcher_multi_squares @@ -566,6 +557,16 @@ def test_event_matcher_broken_squares assert m.path_match("/[cue/caz]/", nil) end + def test_event_matcher_squiggles + m = EventMatcher.new(make_cue_event("/{cue,set}/[a-c]az"), nil, ThreadId.new(5), Promise.new) + assert m.path_match("/cue/baz", nil) + assert m.path_match("/set/aaz/", nil) + assert m.path_match("/set/baz/", nil) + assert m.path_match("/set/caz/", nil) + assert m.path_match("/cue/caz/", nil) + assert_nil m.path_match("/cue/daz/", nil) + end + def test_event_matcher_broken_squiggles m = EventMatcher.new(make_cue_event("/{cue/caz}"), nil, ThreadId.new(5), Promise.new) assert m.path_match("/{cue/caz}/", nil) diff --git a/app/server/ruby/vendor/ruby-beautify/lib/ruby-beautify/block_start.rb b/app/server/ruby/vendor/ruby-beautify/lib/ruby-beautify/block_start.rb index baeb1fdee7..5e080cdf5d 100755 --- a/app/server/ruby/vendor/ruby-beautify/lib/ruby-beautify/block_start.rb +++ b/app/server/ruby/vendor/ruby-beautify/lib/ruby-beautify/block_start.rb @@ -93,8 +93,6 @@ def escape_character? end def parse_explicit_block_end(string, offset) - block_end = nil - if ends? if match = block_matcher.ends.match(string) diff --git a/app/win-pre-vcpkg.bat b/app/win-pre-vcpkg.bat index 2226b42fc2..2ff205ad2a 100755 --- a/app/win-pre-vcpkg.bat +++ b/app/win-pre-vcpkg.bat @@ -5,7 +5,7 @@ cd %~dp0 REM Build vcpkg if not exist "vcpkg\" ( echo Cloning vcpkg - git clone --depth 1 --branch 2022.06.16.1 https://github.com/microsoft/vcpkg.git vcpkg + git clone --depth 1 --branch 2022.08.15 https://github.com/microsoft/vcpkg.git vcpkg ) if not exist "vcpkg\vcpkg.exe" ( diff --git a/etc/doc/lang/sonic-pi-tutorial-id.po b/etc/doc/lang/sonic-pi-tutorial-id.po index 8d2d78f15b..5b9dc4b598 100644 --- a/etc/doc/lang/sonic-pi-tutorial-id.po +++ b/etc/doc/lang/sonic-pi-tutorial-id.po @@ -4,16 +4,16 @@ msgid "" msgstr "" "Project-Id-Version: Sonic Pi\n" -"PO-Revision-Date: 2022-08-02 11:22+0000\n" -"Last-Translator: Umair Raihan \n" -"Language-Team: Indonesian \n" +"PO-Revision-Date: 2022-09-05 14:24+0000\n" +"Last-Translator: Neko Nekowazarashi \n" +"Language-Team: Indonesian \n" "Language: id\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.14-dev\n" +"X-Generator: Weblate 4.14.1-dev\n" #: 01-Welcome-to-Sonic-Pi.md:1 msgid "1 Welcome to Sonic Pi" @@ -77,12 +77,12 @@ msgstr "OK, mari kita mulai..." #: 01.1-Live-Coding.md:1 msgid "1.1 Live Coding" -msgstr "" +msgstr "1.1 Pengodean Langsung" #: 01.1-Live-Coding.md:3 09-Live-Coding.md:3 09.1-Live-Coding-Fundamentals.md:3 #: A.02-live-coding.md:3 msgid "Live Coding" -msgstr "" +msgstr "Pengodean Langsung" #: 01.1-Live-Coding.md:5 msgid "" @@ -13681,7 +13681,7 @@ msgstr "" #: B.04-Performing.md:29 msgid "TOPLAP" -msgstr "" +msgstr "TOPLAP" #: B.04-Performing.md:31 msgid "" @@ -13690,10 +13690,14 @@ msgid "" "lves. A great place to go and find out more about other live coders and system" "s is [TOPLAP](http://toplap.org)." msgstr "" +"Pengodean langsung bukanlah hal yang baru - beberapa orang sudah " +"melakukannya selama bertahun-tahun, biasanya menggunakan alat rakitan " +"khusus. Salah satu tempat untuk mencari lebih banyak tengan pengode langsung " +"dan alat tersebut adalah [TOPLAP](http://toplap.org)." #: B.04-Performing.md:36 msgid "Algorave" -msgstr "" +msgstr "Algorave" #: B.04-Performing.md:38 msgid "" @@ -13701,3 +13705,6 @@ msgid "" "//algorave.com). Here you can find all about a specific strand of live coding " "for making music in nightclubs." msgstr "" +"Sumber lain yang bagus untuk menjelajahi dunia pengodean langsung adalah " +"[Algorave](http://algorave.com). Di sini kamu bisa menemukan berbagai ragam " +"cara pengodean langsung untuk membuat musik di bar." diff --git a/etc/doc/lang/sonic-pi-tutorial-nl.po b/etc/doc/lang/sonic-pi-tutorial-nl.po index 4226270e6d..264121e002 100644 --- a/etc/doc/lang/sonic-pi-tutorial-nl.po +++ b/etc/doc/lang/sonic-pi-tutorial-nl.po @@ -4,16 +4,16 @@ msgid "" msgstr "" "Project-Id-Version: Sonic Pi\n" -"PO-Revision-Date: 2022-02-14 21:57+0000\n" -"Last-Translator: Philip Lafeber \n" -"Language-Team: Dutch \n" +"PO-Revision-Date: 2022-09-05 14:23+0000\n" +"Last-Translator: Aiko \n" +"Language-Team: Dutch \n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.11-dev\n" +"X-Generator: Weblate 4.14.1-dev\n" #: 01-Welcome-to-Sonic-Pi.md:1 msgid "1 Welcome to Sonic Pi" @@ -24,17 +24,16 @@ msgid "Welcome friend :-)" msgstr "Welkom vriend :-)" #: 01-Welcome-to-Sonic-Pi.md:5 -#, fuzzy msgid "" "Welcome to Sonic Pi. Hopefully you're as excited to get started making your ow" "n sounds as I am to show you. It's going to be a really *fun* ride where you'l" "l learn all about music, synthesis, programming, composition, performance and " "more." msgstr "" -"Welkom bij Sonic Pi. Hopelijk ben je net zo enthousiast als ik om te gekke kla" -"nken te gaan maken. Het zal een *leuk* avontuur worden, waarin je alles over m" -"uziek, synthese, programmeren, compositie en ook live spelen gaat leren en nog" -" veel meer..." +"Welkom bij Sonic Pi. Hopelijk ben je net zo enthousiast als ik om te gekke " +"geluiden te gaan maken. Het zal een *leuk* avontuur worden, waarin je alles " +"over muziek, synthese, programmeren, compositie en ook live spelen gaat " +"leren en nog veel meer..." #: 01-Welcome-to-Sonic-Pi.md:10 msgid "" @@ -45,13 +44,14 @@ msgid "" "ve Coding Performances](https://youtube.com/samaaron) where I code with Sonic " "Pi live in front of audiences." msgstr "" -"Maar wacht,dat was onbeleefd van mij! Ik moet mij nog voorstellen.\n" -"Ik ben [Sam Aaron] ( http://twitter.com/samaaron ) de kerel die Sonic Pi creëe" -"rde.\n" -"Je vind mij als [@samaaron](http://twitter.com/samaaron) op Twitter en ik zal " -"heel blij zijn om je daar te kunnen begroeten. Misschien ben je ook geïnteress" -"eerd om meer te weten te komen over mijn [Live Coding Performances] (https://y" -"outube.com/samaaron) waar ik, voor publiek, live codeer met Sonic Pi." +"Maar wacht, dat was onbeleefd van mij! Ik moet mij nog voorstellen.\n" +"Ik ben [Sam Aaron]( http://twitter.com/samaaron ) de kerel die Sonic Pi " +"creëerde.\n" +"Je vind mij als [@samaaron](http://twitter.com/samaaron) op Twitter en ik " +"zal heel blij zijn om je daar te kunnen begroeten. Misschien ben je ook " +"geïnteresseerd om meer te weten te komen over mijn [Live Coding " +"Performances](https://youtube.com/samaaron) waar ik, voor publiek, live " +"codeer met Sonic Pi." #: 01-Welcome-to-Sonic-Pi.md:18 msgid "" @@ -70,11 +70,11 @@ msgid "" "ree just to dip in and out of sections as you see fit. If you feel that there'" "s something missing, do let me know and I'll consider it for a future version." msgstr "" -"Deze handleiding is verdeeld in secties en gegroepeerd per categorie. Hoewel i" -"k deze in een volgorde geschreven heb met een eenvoudige leercurve voor ogen, " -"wees vrij, om in afzonderlijke secties te duiken zoals jij dat wil. Als je het" -" gevoel hebt dat er iets ontbreekt, laat dit gerust aan mij weten, ik zal jouw" -" bedenking in overweging nemen voor een toekomstige versie." +"Deze handleiding is verdeeld in secties en gegroepeerd per categorie. Hoewel " +"ik deze in een volgorde geschreven heb met een eenvoudige leercurve voor " +"ogen, wees vrij, om in afzonderlijke secties te duiken zoals jij dat wil. " +"Als je het gevoel hebt dat er iets ontbreekt, laat dit gerust aan mij weten, " +"dan zal ik jouw suggesties in overweging nemen voor een toekomstige versie." #: 01-Welcome-to-Sonic-Pi.md:28 msgid "" @@ -106,10 +106,10 @@ msgid "" "uitar. This means that given some practice you can take Sonic Pi on stage and " "gig with it." msgstr "" -"Een van de meest opwindende aspecten van Sonic Pi is, dat het je in staat stel" -"t, code te gaan schrijven en *de code, ook live te wijzigen* om muziek te spel" -"en, net zoals je live gitaar zou spelen. Dit betekent dat je, mits wat oefenin" -"g, met Sonic Pi het podium op kan en hiermee kan optreden." +"Een van de meest opwindende aspecten van Sonic Pi is, dat het je in staat " +"stelt, code te schrijven en *de code, ook live te wijzigen* om muziek te " +"maken, net zoals je live gitaar zou spelen. Dit betekent dat je, na wat " +"oefening, met Sonic Pi het podium op kan en een kan optreden geven." #: 01.1-Live-Coding.md:10 msgid "Free your mind" @@ -133,7 +133,7 @@ msgstr "Een loop \"live\" brengen" #: 01.1-Live-Coding.md:19 msgid "Let's get started, copy the following code into an empty buffer:" -msgstr "We gaan van start, kopieer de volgende code in een lege buffer:" +msgstr "Om te beginnen, kopieer de volgende code in een lege buffer:" #: 01.1-Live-Coding.md:21 #, no-wrap @@ -154,35 +154,36 @@ msgid "" ". If at any time you wish to stop the sound just hit the `Stop` button. Althou" "gh don't hit it just yet... Instead, follow these steps:" msgstr "" -"Klik nu op de `afspeelknop` en je zal een lekkere snelle basdrum horen. Je kan" -" nu, als je dat wenst, het geluid stoppen door op de `Stopknop` te klikken. Ma" -"ar doe dat nog even niet... volg in plaats daarvan de volgende stappen:" +"Klik nu op de `Afspeel`-knop en je zal een lekkere snelle basdrum horen. Je " +"kan nu, als je dat wenst, het geluid stoppen door op de `Stop`-knop te " +"klikken. Maar doe dat nog even niet... volg in plaats daarvan de volgende " +"stappen:" #: 01.1-Live-Coding.md:32 msgid "Make sure the bass drum sound is still running" -msgstr "Zorg ervoor dat deze basdrum klank nog steeds loopt" +msgstr "Zorg ervoor dat dit basdrum geluid nog steeds loopt" #: 01.1-Live-Coding.md:33 msgid "Change the `sleep` value from `0.5` to something higher like `1`." msgstr "" -"Verander de waarde van 'sleep' van '0.5' naar een ietwat hoger getal,zoals bv." -" `1`." +"Verander de waarde van `sleep` van `0.5` naar een ietwat hoger getal, zoals " +"bv. `1`." #: 01.1-Live-Coding.md:34 msgid "Press the `Run` button again" -msgstr "Klik opnieuw op de `afspeelknop`" +msgstr "Klik opnieuw op de `Afspeel`-knop" #: 01.1-Live-Coding.md:35 msgid "Notice how the drum speed has changed." -msgstr "Merk op dat de snelheid van de drum hierbij veranderd is." +msgstr "Merk op dat de snelheid van de drum is veranderd." #: 01.1-Live-Coding.md:36 msgid "" "Finally, *remember this moment*, this is the first time you've live coded with" " Sonic Pi and it's unlikely to be your last..." msgstr "" -"En *onthou dit moment*, dit is de eerste keer dat je een Live Code met Sonic P" -"i hebt gedaan en het is waarschijnlijk niet je laatste keer..." +"En *onthoud dit moment*, dit is de eerste keer dat je een \"Live Code\" met " +"Sonic Pi hebt gedaan en het is waarschijnlijk niet je laatste..." #: 01.1-Live-Coding.md:39 msgid "" @@ -190,9 +191,9 @@ msgid "" "le :bd_haus` add the line `sample :ambi_choir, rate: 0.3`. Your code should lo" "ok like this:" msgstr "" -"Ok, dat was eenvoudig. We gaan er nog iets aan de mix toevoegen. Boven `sample" -" :bd_haus` voeg je deze lijn toe `sample :ambi_choir, rate: 0.3`. Jouw code m" -"oet er nu als volgt uitzien:" +"Ok, dat was eenvoudig. Laten we iets aan de mix toevoegen. Boven `sample " +":bd_haus` voeg je deze regel toe `sample :ambi_choir, rate: 0.3`. Jouw code " +"moet er nu als volgt uitzien:" #: 01.1-Live-Coding.md:43 #, no-wrap @@ -218,20 +219,18 @@ msgid "" "t your computer will stop with an error because it can't keep up (if that happ" "ens, just choose a bigger `sleep` time and hit `Run` again)." msgstr "" -"Speel hiermee. Verander de `rate:` (snelheid) waardes - wat gebeurt er, als je" -" hoge waarden gebruikt,of kleine waarden of negatieve waarden? Kijk wat er geb" -"eurt wanneer je de `rate:` waarde van het `:ambi_choir` sample maar een tikkel" -"tje verandert (bv. 0.29). Wat gebeurt er als je een héél kleine `sleep` (rust)" -" waarde kiest? Kijk nu of je het zo snel kan laten gaan dat je computer stopt " -"en een foutmelding geeft omdat hij het niet meer kan verwerken (wanneer dit ge" -"beurt, kun je gewoon een grotere `sleep` tijd instellen en op `afspelen` klikk" -"en)." +"En nu, aanpassen maar. Verander de `rate:` (snelheid) waardes - wat gebeurt " +"er, als je hoge waarden gebruikt, of kleine waarden of negatieve waarden? " +"Kijk wat er gebeurt wanneer je de `rate:` waarde van het `:ambi_choir` " +"sample maar een tikkeltje verandert (bv. `0.29`). Wat gebeurt er als je een " +"héél kleine `sleep` (rust) waarde kiest? Kijk nu of je het zo snel kan laten " +"gaan dat je computer stopt en een foutmelding geeft omdat hij het niet meer " +"kan verwerken (wanneer dit gebeurt, kun je gewoon een grotere `sleep` tijd " +"instellen en op `afspelen` klikken)." #: 01.1-Live-Coding.md:59 msgid "Try commenting one of the `sample` lines out by adding a `#` to the beginning:" -msgstr "" -"Probeer één van de `sample` lijnen van een commentaar te voorzien door er een " -"`#` voor te zetten:" +msgstr "Probeer eens één van de `sample` regels te laten beginnen met `#`:" #: 01.1-Live-Coding.md:62 #, no-wrap @@ -254,9 +253,10 @@ msgid "" "lled a comment. In Sonic Pi we can use comments to remove and add things into " "the mix." msgstr "" -"Merk op hoe het de computer opdraagt deze lijn te negeren, zodat we deze niet " -"horen. Dit heet een comment (commentaarlijn). In Sonic Pi kunnen we een commen" -"taarlijn gebruiken om klanken uit de mix te verwijderen of toe te voegen." +"Merk op hoe het de computer vertelt deze regel te negeren, zodat we deze " +"niet horen. Dit heet een \"comment\" (commentaar-regel). In Sonic Pi kunnen " +"we een commentaar-regel gebruiken om klanken uit de mix te verwijderen of " +"weer toe te voegen." #: 01.1-Live-Coding.md:74 msgid "" @@ -266,41 +266,41 @@ msgid "" " Now, do what you do best - experiment and play around. Here are some suggesti" "ons:" msgstr "" -"Ik laat je nu even met het volgende spelen. Neem de onderstaande code, en kopi" -"eer deze in een lege buffer. Probeer er nu nog niet al te veel van te begrijpe" -"n, maar wel in te zien dat er twee loops zijn - dus twee klanken die op het ze" -"lfde moment spelen. Het beste wat je kan doen nu is, experimenteren en er, gew" -"oon op los, mee te gaan spelen. Hier zijn enkele suggesties:" +"Ik laat je nu even met het volgende spelen. Neem de onderstaande code, en " +"kopieer deze in een lege buffer. Probeer er nu nog niet al te veel van te " +"begrijpen, maar wel in te zien dat er twee loops zijn - dus twee klanken die " +"op hetzelfde moment spelen. Het beste wat je nu kan doen is er gewoon lekker " +"op los experimenteren. Hier zijn enkele suggesties:" #: 01.1-Live-Coding.md:80 msgid "Try changing the blue `rate:` values to hear the sample sound change." msgstr "" -"Wijzig de blauwe `rate:` waarden, om het geluid van de sample-klank te horen v" -"eranderen." +"Wijzig de blauwe `rate:` waarden, om het geluid van de sample te horen " +"veranderen." #: 01.1-Live-Coding.md:81 msgid "" "Try changing the `sleep` times and hear that both loops can spin round at diff" "erent rates." msgstr "" -"Wijzig de `sleep` tijd en hoor nu, dat je beide loops kunt afspelen met versch" -"illende rusttijden." +"Wijzig de `sleep` waarden en hoor, dat je beide loops kunt afspelen met " +"verschillende rusttijden." #: 01.1-Live-Coding.md:83 msgid "" "Try uncommenting the sample line (remove the `#`) and enjoy the sound of the g" "uitar played backwards." msgstr "" -"Probeer de commentaarlijn te wissen (verwijder het `#`) uit onze voorbeeldlijn" -" en geniet van de gitaarklank, die nu achterwaarts afspeelt." +"Probeer de commentaar-regel te activeren (verwijder de `#`) uit onze \"sample" +"\"-regel en geniet van het gitaargeluid, dat zich nu achterwaarts afspeelt." #: 01.1-Live-Coding.md:85 msgid "" "Try changing any of the blue `mix:` values to numbers between `0` (not in the " "mix) and `1` (fully in the mix)." msgstr "" -"Probeer de blauwe `mix:` waarden te veranderen naar cijfers tussen `0` (niet i" -"n de mix) en `1` (voluit in de mix)." +"Probeer de blauwe `mix:` waarden te veranderen naar getallen tussen `0` (" +"niet in de mix) en `1` (voluit in de mix)." #: 01.1-Live-Coding.md:88 msgid "" @@ -309,11 +309,11 @@ msgid "" "e buffer and paste a fresh copy in and you're ready to jam again. Making mista" "kes is how you'll learn the quickest..." msgstr "" -"Denk er ook aan, te klikken op 'afspelen' om deze veranderingen te kunnen hore" -"n, bij de volgende loop die vertrekt. Maak je geen zorgen als het hierbij soms" -" in de soep draait, klik dan op `Stop`, wis de code in de buffer en plak er ee" -"n nieuwe kopie in, zo je bent weer gereed om opnieuw te gaan improviseren. Van" -" je fouten kan je nu eenmaal het beste leren." +"Denk er aan, om op `Afspelen` te klikken om deze veranderingen te kunnen " +"horen zodra de volgende loop begint. Maak je geen zorgen als het hierbij " +"soms in de soep draait, klik dan op `Stop`, wis de code in de buffer en plak " +"er een nieuwe kopie in, zo ben je weer klaar om opnieuw te gaan " +"improviseren. Van je fouten kan je nu eenmaal het beste leren." #: 01.1-Live-Coding.md:94 #, no-wrap @@ -352,13 +352,13 @@ msgid "" "tually works kicks in and you start wondering what else you can do with this. " "You're now ready to read the rest of the tutorial." msgstr "" -"Blijf nu spelen en experimenteren tot je de nieuwsgierigheid begint te voelen " -"en je je begint af te vragen wat je hier nog allemaal mee kan doen. Dan ben je" -" nu klaar om de rest van de handleiding te lezen." +"Blijf nu spelen en experimenteren tot je een beetje begint te begrijpen hoe " +"het allemaal werkt en je begint af te vragen wat je hier allemaal nog meer " +"mee kan doen. Dan ben je klaar om de rest van de handleiding te lezen." #: 01.1-Live-Coding.md:115 msgid "So what are you waiting for..." -msgstr "Dus,waar wacht je nog op . . ." +msgstr "Dus, waar wacht je nog op..." #: 01.2-Exploring-the-Interface.md:1 msgid "1.2 Exploring the Interface" @@ -373,8 +373,8 @@ msgid "" "Sonic Pi has a very simple interface for coding music. Let's spend a little ti" "me exploring it." msgstr "" -"Sonic Pi heeft een zeer eenvoudige interface om muziek te coderen. Laten we hi" -"er eens wat tijd aan besteden om deze te verkennen." +"Sonic Pi heeft een zeer eenvoudige interface om muziek te coderen. Laten we " +"even de tijd nemen deze te verkennen." #: 01.2-Exploring-the-Interface.md:8 msgid "![Sonic Pi Interface](../../../etc/doc/images/tutorial/GUI.png)" @@ -414,7 +414,7 @@ msgstr "*H* - Scope Venster" #: 01.2-Exploring-the-Interface.md:19 msgid "*I* - Cue Viewer" -msgstr "*F* - Indicatie Venster" +msgstr "*I* - Indicatie Venster" #: 01.2-Exploring-the-Interface.md:21 msgid "A. Play Controls" @@ -427,15 +427,15 @@ msgid "" "all running code, *Save* for saving the code to an external file and *Record* " "to create a recording (a WAV file) of the sound playing." msgstr "" -"Deze roze knoppen zijn de belangrijkste bedieningselementen voor het starten e" -"n stoppen van het geluid. Er is de *Afspelen* knop om de code in de editor af " -"te spelen, *Stop* om alle actieve code te stoppen, *opslaan* om de code naar e" -"en extern bestand op te slaan en *Opnemen* om een opname (WAV-bestand) te make" -"n van het afgespeelde geluid." +"Deze roze knoppen zijn de belangrijkste bedieningselementen voor het starten " +"en stoppen van het geluid. Er is de *Afspelen* knop om de code in de editor " +"af te spelen, *Stop* om alle actieve code te stoppen, *Opslaan* om de code " +"naar een extern bestand op te slaan en *Opnemen* om een opname (WAV-bestand) " +"te maken van het afspelende geluid." #: 01.2-Exploring-the-Interface.md:29 msgid "B. Editor Controls" -msgstr "B. Controle over de Editor" +msgstr "B. Werking van de Editor" #: 01.2-Exploring-the-Interface.md:31 msgid "" @@ -457,12 +457,12 @@ msgid "" "*Help* button toggles the help system (*G*) and the *Prefs* button toggles the" " preferences window which allows you to control some basic system parameters." msgstr "" -"Deze blauwe knoppen geven je toegang tot hulp-, informatie- en voorkeursinstel" -"lingen. De *Info* knop opent het venster die informatie over Sonic Pi zelf bev" -"at - het kernteam, de geschiedenis, de medewerkers en ook de Sonic Pi \"gemeens" -"chap\". De *Hulp* knop schakelt naar het hulp-systeem (*G*) en de *Voorkeuren* " -"knop schakelt naar het voorkeur-venster waarmee u een aantal fundamentele syst" -"eemparameters kan bijsturen." +"Deze blauwe knoppen geven je toegang tot hulp-, informatie- en " +"voorkeursinstellingen. De *Info* knop opent het venster dat informatie over " +"Sonic Pi zelf bevat - het kernteam, de geschiedenis, de medewerkers en ook " +"de Sonic Pi \"gemeenschap\". De *Hulp* knop schakelt naar het hulp-systeem " +"(*G*) en de *Voorkeuren* knop schakelt naar het voorkeur-venster waarmee je " +"een aantal fundamentele systeemparameters kan instellen." #: 01.2-Exploring-the-Interface.md:44 msgid "D. Code Editor" @@ -487,7 +487,7 @@ msgstr "" #: 01.2-Exploring-the-Interface.md:54 msgid "E. Prefs Panel" -msgstr "E. Paneel Voorkeursinstellingen" +msgstr "E. Voorkeursinstellingen Paneel" #: 01.2-Exploring-the-Interface.md:56 msgid "" @@ -497,12 +497,12 @@ msgid "" "ged. Examples are forcing mono mode, inverting stereo, toggling log output ver" "bosity and also a volume slider and audio selector on the Raspberry Pi." msgstr "" -"Sonic Pi ondersteunt een aantal instellingen die toegankelijk zijn door het in" -"-/uitschakelen van de knop *Voorkeuren* in de Info en Hulp knoppen-set. Dit za" -"l de zichtbaarheid van het Paneel Voorkeursinstellingen, met daarin een aantal" -" regelbare opties, in- of uitschakelen. Voorbeelden zijn: het brengen van ster" -"eo naar mono, stereo omkeren, de detaillering van het log en ook een volumereg" -"elaar en audio keuze voor de Raspberry Pi." +"Sonic Pi ondersteunt een aantal instellingen die toegankelijk zijn door het " +"in-/uitschakelen van de knop *Voorkeuren* in de Info en Hulp knoppen-set. " +"Dit zal het Paneel Voorkeursinstellingen, met daarin een aantal regelbare " +"opties, tonen of verbergen. Voorbeelden zijn: het brengen van stereo naar " +"mono, stereo omkeren, de detaillering van het log en ook een volumeregelaar " +"en audio keuze voor de Raspberry Pi." #: 01.2-Exploring-the-Interface.md:63 msgid "F. Log Viewer" @@ -515,11 +515,11 @@ msgid "" "u create with the exact time the sound was triggered. This is very useful for " "debugging your code and understanding what your code is doing." msgstr "" -"Wanneer je je code uitvoert, zal informatie over wat het programma doet, getoo" -"nd worden in een soort logboek. Standaard zal je een berichtje zien, voor elk " -"geluid dat je maakt, met de exacte tijd dat het geluid werd geactiveerd. Dit i" -"s zeer handig om fouten in je code op te kunnen sporen en om te kunnen begrijp" -"en wat je code doet." +"Wanneer je je code uitvoert, zal informatie over wat het programma doet, " +"getoond worden in een soort logboek. Je zult gewoonlijk een berichtje zien, " +"voor elk geluid dat je maakt, met de exacte tijd dat het geluid werd " +"geactiveerd. Dit is zeer handig om fouten in je code op te kunnen sporen en " +"om te kunnen begrijpen wat je code doet." #: 01.2-Exploring-the-Interface.md:71 msgid "G. Help System" @@ -534,13 +534,13 @@ msgid "" "ynths, samples, examples, FX and a full list of all the functions Sonic Pi pro" "vides for coding music." msgstr "" -"Eén van de belangrijkste onderdelen van de Sonic Pi-interface is het hulp-syst" -"eem dat wordt weergegeven aan de onderkant van het venster. Dit kan worden in-" -" en uitgeschakeld door op de blauwe knop *Hulp* te klikken. Het hulp-systeem b" -"evat hulp en informatie over alle aspecten van Sonic Pi, inclusief deze handle" -"iding, een lijst van beschikbare synths, samples, voorbeelden, effecten en een" -" volledige lijst van alle functies die Sonic Pi biedt voor het coderen van muz" -"iek." +"Eén van de belangrijkste onderdelen van de Sonic Pi-interface is het hulp-" +"systeem dat wordt weergegeven aan de onderkant van het venster. Dit kan " +"worden getoond of verborgen door op de blauwe knop *Hulp* te klikken. Het " +"hulp-systeem bevat hulp en informatie over alle aspecten van Sonic Pi, " +"inclusief deze handleiding, een lijst van beschikbare synths, samples, " +"voorbeelden, effecten en een volledige lijst van alle functies die Sonic Pi " +"biedt voor het coderen van muziek." #: 01.2-Exploring-the-Interface.md:81 msgid "H. Scope Viewer" @@ -558,20 +558,20 @@ msgid "" " you to draw pretty pictures with sound (https://en.wikipedia.org/wiki/Lissajo" "us_curve)." msgstr "" -"Met het scope venster zie je het geluid. Je ziet hier dat een zaagtand-golf er" -" ook uitziet als een zaag en dat onze basis biep-toon een mooie golvende sinus" -"-golf is. Je ziet ook duidelijk het verschil tussen luide en zachte klanken do" -"or hun grootte. Er zijn 3 verschillende scopes beschikbaar- de standaard (defa" -"ult) is een gecombineerde scope voor het linker en rechter kanaal, een stereo " -"die voor elk kanaal een aparte scope laat zien. En tenslotte is er een Lissajo" -"usfiguur scope die de relatie in fase tussen het linker- en rechter-kanaal wee" -"rgeven en die je in staat stelt, mooie figuren te tekenen met geluid (https:/" -"/nl.wikipedia.org/wiki/Lissajousfiguur)." +"In het scope venster zie je het geluid dat je hoort. Bijvoorbeeld dat een " +"zaagtand-golf er ook uit ziet als een zaag en dat onze basis \"beep\"-toon " +"een mooie golvende sinus-golf is. Je ziet ook duidelijk het verschil tussen " +"luide en zachte geluiden door hun grootte. Er zijn 3 verschillende scopes " +"beschikbaar, de standaard (default) is een gecombineerde scope voor het " +"linker en rechter kanaal, een stereo variant die voor elk kanaal een aparte " +"scope laat zien. En tenslotte is er een Lissajousfiguur scope die de fase " +"relatie tussen het linker- en rechter-kanaal weergeven en je in staat stelt, " +"mooie figuren te tekenen met geluid (https://nl.wikipedia.org/wiki/" +"Lissajousfiguur)." #: 01.2-Exploring-the-Interface.md:93 -#, fuzzy msgid "I. Cue Viewer" -msgstr "F. Log Venster" +msgstr "I. Indicatie Venster" #: 01.2-Exploring-the-Interface.md:95 msgid "" @@ -590,19 +590,20 @@ msgid "" "ng happening. This is covered in more detail in Sections 10 to 12 of this tuto" "rial." msgstr "" -"Alle interne en externe events ('cues' in Sonic Pi) worden automatisch gelogd " -"in de 'Cue' Viewer. Indien bijvoorbeeld een MIDI controller is aangesloten en" -" een knop is ingedrukt, zal een new event zichtbaar zijn met de naam van de co" -"ntroller en ingedrukte knop. Wanneer de basis van het produceren van geluiden" -" wordt beheerst, kun je secties van geluiden afspelen gebaseerd op events zoal" -"s deze. Een 'Cue'-event is een indicatie dat er iets gebeurd is. Wanneer er bi" -"jvoorbeeld een live loop rond gaat, zal een 'Cue'-event zichtbaar zijn in het " -"'Cue' venster. Externe events zoals MIDI berichten van verbonden apparatuur en" -" OSC berichten van andere computers en programma's worden hier eveneens weerge" -"geven. Het is ook mogelijk om direct 'Cue' events te genereren middels de 'cue" -"' functie. Alles wat zichtbaar is in het 'Cue' venster kan gebruikt worden om " -"te signaleren tot een verandering. Dit staat extra toegelicht in sectie 10 en " -"12 van deze handleiding." +"Alle interne en externe events (`cues` in Sonic Pi) worden automatisch " +"gelogd in het Indicatie Venster (`Cue` Viewer). Indien bijvoorbeeld een MIDI " +"controller is aangesloten en een knop is ingedrukt, zal een new event " +"zichtbaar zijn met de naam van de controller en de ingedrukte knop. Zodra je " +"de basis van het produceren van geluiden beheerst, kun je secties van " +"geluiden afspelen gebaseerd op dit soort events. Een `Cue`-event is een " +"indicatie dat er iets gebeurd is. Wanneer er bijvoorbeeld een live loop " +"loopt gaat, zal een `Cue`-event zichtbaar zijn in het Indicatie Venster. " +"Externe events zoals MIDI berichten van verbonden apparatuur en OSC " +"berichten van andere computers en programma's worden hier eveneens " +"weergegeven. Het is ook mogelijk om direct `Cue` events te genereren middels " +"de `cue` functie. Alles wat zichtbaar is in het Indicatie Venster kan " +"gebruikt worden om een verandering te signaleren (trigger). Meer details " +"hierover vind je in sectie 10 en 12 van deze handleiding." #: 01.3-Learning-through-Play.md:1 msgid "1.3 Learning through Play" @@ -619,10 +620,10 @@ msgid "" "fore you know it you'll have accidentally learned how to code, compose and per" "form." msgstr "" -"Sonic Pi moedigt je aan om meer te gaan leren over zowel de computer als over " -"muziek door middel van spel en experimenteren. Het belangrijkste is dat je hie" -"rin plezier hebt, en voor je het beseft, heb je hierdoor geleerd, hoe te coder" -"en, te componeren en live te spelen." +"Sonic Pi moedigt je aan om spelenderwijs te leren over computers en muziek " +"door middel van spel en experimenteren. Het belangrijkste is dat je hierin " +"plezier hebt, en voor je het beseft, heb je hierdoor geleerd, hoe te " +"coderen, te componeren en live te spelen." #: 01.3-Learning-through-Play.md:10 msgid "There are no mistakes" @@ -641,16 +642,16 @@ msgid "" "sound, manipulate it and morph it into something awesome. The crowd will go *w" "ild*." msgstr "" -"Nu we er toch over bezig zijn, geef ik je graag een raad mee, wat ik heb gelee" -"rd in de jaren van live muziek coderen is - *er bestaan geen fouten, alleen ka" -"nsen*. Dit is iets wat ik vaak heb horen zeggen over jazz, maar het werkt even" -" goed met live codering. Ongeacht hoe ervaren je bent - van een complete begin" -"ner tot een doorgewinterde Algoraver, je zal soms code uitvoeren met een gehee" -"l onverwacht resultaat. Het kan waanzinnig cool klinken- in dat geval komen we" -" er mee weg. Het kan ook compleet dwaas en ontoepasselijk klinken. Maar het ma" -"akt niet uit dat het gebeurd is - waar het om gaat is, wat je er vervolgens me" -"e doet. Pak de klank, manipuleer deze en morph het naar iets ongeloofelijk. Je" -" publiek zal uit zijn *dak* gaan." +"Nu we er toch over bezig zijn, geef ik je graag een raad mee, wat ik heb " +"geleerd in de jaren van live muziek coderen is - *er bestaan geen fouten, " +"alleen kansen*. Dit is iets wat ik vaak heb horen zeggen over jazz, maar het " +"werkt even goed met live codering. Ongeacht hoe ervaren je bent - van een " +"complete beginner tot een doorgewinterde Algoraver, je zal soms code " +"uitvoeren met een geheel onverwacht resultaat. Het kan waanzinnig cool " +"klinken - in dat geval komen we er mee weg. Het kan ook compleet dwaas en " +"ontoepasselijk klinken. Maar het maakt niet uit dat het gebeurd is - waar " +"het om gaat is, wat je er vervolgens mee doet. Pak dat geluid, manipuleer en " +"morph het naar iets ongelooflijks. Je publiek zal uit zijn *dak* gaan." #: 01.3-Learning-through-Play.md:24 msgid "Start Simple" @@ -666,14 +667,14 @@ msgid "" "with it and then see what new ideas it gives you. Before long you'll be too bu" "sy having fun and making real progress." msgstr "" -"Wanneer je aan het leren bent, is het verleidelijk om *nu al* verbazingwekkend" -"e dingen te gaan doen. Maar het is beter om die wens vast te houden en als een" -" toekomstig doel voor ogen te houden om later te bereiken. Probeer kleine, een" -"voudige stappen te zetten en te zien hoe dit jou plezier geeft en je dichter t" -"ot je doel brengen. Eens je de kleine stappen onder de knie hebt, kan je deze " -"als bouwstenen gebruiken en hiermee spelen, en je zal zien dat deze nieuwe inz" -"ichten, jou ook verse ideeën zullen geven. Snel genoeg ben je fijn bezig én ma" -"ak je vooruitgang." +"Wanneer je aan het leren bent, is het verleidelijk om *nu al* " +"verbazingwekkende dingen te willen doen. Maar het is beter om die wens nog " +"even vast te houden en als doel voor ogen te houden om later te bereiken. " +"Probeer eerst kleine, eenvoudige stappen te zetten en te zien hoe dit jou " +"plezier geeft en je dichter tot je doel brengt. Wanneer je de kleine stappen " +"onder de knie hebt, kan je deze als bouwstenen gebruiken en ermee spelen, en " +"je zal zien dat deze nieuwe inzichten, jou ook verse ideeën zullen geven. " +"Voor je het weet ga je op in je plezier én maak je echte vooruitgang." #: 01.3-Learning-through-Play.md:35 msgid "Just make sure to share your work with others!" @@ -689,7 +690,7 @@ msgstr "Synthesizers" #: 02-Synths.md:5 msgid "OK, enough of the intros - let's get into some sound." -msgstr "OK, genoeg intro's - laat ons in enkele klanken duiken." +msgstr "OK, genoeg intro's - laten we in enkele geluiden duiken." #: 02-Synths.md:7 msgid "" @@ -700,12 +701,12 @@ msgid "" " Sonic Pi gives you much of that power in a very simple and approachable manne" "r." msgstr "" -"In deze sectie zullen we de basisprincipes van het triggeren en het manipulere" -"n van synth's behandelen. Synth is kort voor synthesizer, wat een chique woord" -" is voor een ding dat geluiden kan creëren. Synth's zijn doorgaans vrij ingewi" -"kkeld om te gebruiken - met name analoge synth's met vele patch kabels en modu" -"les. Sonic Pi biedt je een zelfde kracht op een eenvoudige en toegankelijke w" -"ijze." +"In deze sectie zullen we de basisprincipes van het triggeren en het " +"manipuleren van synth's behandelen. Synth is kort voor synthesizer, wat een " +"chique woord is voor een ding dat geluiden kan creëren. Synth's zijn " +"doorgaans vrij ingewikkeld om te gebruiken - met name analoge synth's met " +"vele patch kabels en modules. Sonic Pi biedt je eenzelfde kracht op een " +"eenvoudige en toegankelijke wijze." #: 02-Synths.md:14 msgid "" @@ -713,9 +714,9 @@ msgid "" "et very deep into very sophisticated sound manipulation if that's your thing. " "Hold on to your hats..." msgstr "" -"Laat je niet misleiden door de directe eenvoud van de Sonic Pi interface. Je k" -"unt hier diepgaand, in zeer geavanceerde geluidsmanipulatie gaan als dat je di" -"ng mocht zijn. Hou je maar vast..." +"Laat je niet misleiden door de ogenschijnlijke eenvoud van de Sonic Pi " +"interface. Je kunt ermee diep, in zeer geavanceerde geluidsmanipulatie " +"duiken als dat je ding mocht zijn. Hou je vast..." #: 02.1-Your-First-Beeps.md:1 msgid "2.1 Your First Beeps" @@ -741,9 +742,9 @@ msgid "" "at the top of the app (the big white space under the Run button). Now, press R" "un..." msgstr "" -"Dit is waar het allemaal begint. Ga je gang, kopieer en plak deze in het codev" -"enster aan de bovenzijde van de app (de grote witte ruimte onder de Afspeel kn" -"op). Nu, klik op Afspelen..." +"Dit is waar het allemaal begint. Ga je gang, kopieer en plak dit in het code " +"venster aan de bovenzijde van de app (de grote witte ruimte onder de Afspeel " +"knop). En, klik op *Afspelen*..." #: 02.1-Your-First-Beeps.md:15 msgid "Beep!" @@ -754,14 +755,13 @@ msgid "Intense. Press it again. And again. *And again...*" msgstr "Heftig. Klik opnieuw. En opnieuw. *En opnieuw…*" #: 02.1-Your-First-Beeps.md:19 -#, fuzzy msgid "" "Woah, fun! I'm sure you could keep doing that all day. But wait, before you lo" "se yourself in an infinite stream of beeps, try changing the number:" msgstr "" -"Woah, te gek, ik weet zeker dat je dit een hele dag kan blijven doen. Maar wac" -"ht, voordat je jezelf verliest in een oneindige stroom van bliepjes, probeer h" -"et cijfer te wijzigen:" +"Woah, te gek, ik weet zeker dat je dit een hele dag kan blijven doen. Maar " +"wacht, voordat je jezelf verliest in een oneindige stroom van bliepjes, " +"probeer het getal te veranderen:" #: 02.1-Your-First-Beeps.md:23 #, no-wrap @@ -770,7 +770,7 @@ msgstr "play 75" #: 02.1-Your-First-Beeps.md:27 msgid "Can you hear the difference? Try a lower number:" -msgstr "Hoor je het verschil? Probeer een lager cijfer:" +msgstr "Hoor je het verschil? Probeer een lager getal:" #: 02.1-Your-First-Beeps.md:29 #, no-wrap @@ -784,20 +784,25 @@ msgid "" "left hand side) play lower notes and the keys on the higher part of the piano " "(the right hand side) play higher notes." msgstr "" -"Lagere en hogere getallen maken respectievelijk lagere en hogere tonen. Net zo" -"als op een piano worden de lagere toetsen (linkerhand) gebruikt om lagere note" -"n te spelen, terwijl de hogere toetsen ingezet worden om hogere noten (rechter" -"hand) te spelen." +"Dus, Lagere en hogere getallen maken respectievelijk lagere en hogere tonen. " +"Net zo als op een piano worden de lagere toetsen (linkerhand) gebruikt om " +"lagere noten te spelen, terwijl de hogere toetsen ingezet worden om hogere " +"noten (rechterhand) te spelen." #: 02.1-Your-First-Beeps.md:38 -#, fuzzy msgid "" "It turns out that the C of the 4th octave (C in English notation) is identifie" "d by the number 60. `play 60` therefore plays the C of the 4th octave. To play" " the next piano key to the right, you have to add 1 to 60 and then type `play " "61`, which in this case is the black key of the C sharp. To play the D, the ne" "xt key to the right, `play 62`." -msgstr "play 60" +msgstr "" +"Het komt erop neer dat de C noot van het 4de octaaf (C in engelse notatie) " +"of centrale do word aangeduid met het getal 60. `play 60` speelt hierdoor de " +"C noot van het 4de octaaf. Om de eerstvolgende piano toets rechts hiervan te " +"spelen, tel je 1 bij 60 op en zet `play 61` in de code, welke in dit geval " +"de zwarte toets van de Cis. Om de D te spelen, de volgende toets naar " +"rechts, `play 62`." #: 02.1-Your-First-Beeps.md:40 msgid "" @@ -805,9 +810,9 @@ msgid "" "ted. All that matters right now is that you know that *low numbers make lower " "beeps* and *high numbers make higher beeps*." msgstr "" -"*Maak je geen zorgen* wanneer dit niets voor jou betekent, mij betekende het o" -"ok niets toen ik er eerst aan begon. Het belangrijkste is dat je weet dat *lag" -"e getallen, lagere tonen maken* en *hoge getallen, hogere tonen*." +"*Maak je geen zorgen* wanneer dit nog niets zegt, mij zei het ook niets toen " +"ik er voor het eerst aan begon. Het belangrijkste is dat je weet dat *lage " +"getallen, lagere tonen maken* en *hoge getallen, hogere tonen*." #: 02.1-Your-First-Beeps.md:44 08.2-Chords.md:3 msgid "Chords" @@ -818,8 +823,8 @@ msgid "" "Playing a note is quite fun, but playing many at the same time can be even bet" "ter. Try it:" msgstr "" -"Een noot spelen kan leuk zijn, maar veel noten op het zelfde moment spelen kan" -" het beter maken. Probeer dit:" +"Eén noot spelen kan leuk zijn, maar vele noten tegelijk spelen kan het nog " +"beter maken. Probeer dit:" #: 02.1-Your-First-Beeps.md:49 #, no-wrap @@ -838,9 +843,9 @@ msgid "" "y it for yourself - which numbers sound good together? Which sound terrible? E" "xperiment, explore and find out for yourself." msgstr "" -"Jazzy! Dus, als je meerdere „play”s typt, spelen ze allemaal op hetzelfde mome" -"nt. Probeer het voor jezelf - welke cijfers klinken goed samen? En welke versc" -"hrikkelijk samen? Experimenteer, verken en ontdek dit voor jezelf." +"Jazzy! Dus, als je meerdere `play`s typt, spelen ze allemaal op hetzelfde " +"moment. Probeer het zelf maar - welke getallen klinken goed samen? En welke " +"klinken absoluut niet samen? Experimenteer, verken en ontdek dit voor jezelf." #: 02.1-Your-First-Beeps.md:59 msgid "Melody" @@ -852,9 +857,10 @@ msgid "" "ed to play one note after another and not at the same time? Well, that's easy," " you just need to `sleep` between the notes:" msgstr "" -"Zo, het spelen van noten en akkoorden is leuk, maar hoe zit dat met een melodi" -"e? Wat als je noten achter elkaar wil spelen en niet op dezelfde moment? Wel d" -"at is eenvoudig, je moet enkel een rust („sleep\") zetten tussen de noten:" +"Zo, het spelen van noten en akkoorden is leuk, maar hoe zit dat met een " +"melodie? Wat als je noten achter elkaar wil spelen en niet op dezelfde " +"moment? Nou, dat is eenvoudig, je moet enkel wat rusten (`sleep`) tussen de " +"noten:" #: 02.1-Your-First-Beeps.md:65 #, no-wrap @@ -879,11 +885,11 @@ msgid "" "to make our arpeggio a little faster? Well, we need to use shorter sleep value" "s. What about a half i.e. `0.5`:" msgstr "" -"Hoe mooi, zo een beetje arpeggio. Dus wat betekent de '1' in 'sleep 1'? Nou he" -"t betekent de *duur van de rust*. Het betekent eigenlijk slaap voor één tel , " -"voor 1 seconde rusten. Dus, wat als we onze arpeggio een beetje sneller willen" -"? Nou, dan moeten we kortere slaap waarde gebruiken. Wat denk je van de helft?" -" D.w.z. '0.5':" +"Hoe mooi, zo een korte arpeggio. Maar wat betekent toch die `1` in `sleep 1`" +"? Nou, het staat voor de *duur van de rust*. Het betekent eigenlijk \"slaap " +"voor één tel\", rust voor 1 seconde. Dus, wat als we onze arpeggio een " +"beetje sneller willen maken? Nou, dan zullen we een kortere slaap duur " +"gebruiken. Wat denk je van de helft? D.w.z. `0.5`:" #: 02.1-Your-First-Beeps.md:79 #, no-wrap @@ -905,8 +911,8 @@ msgid "" "Notice how it plays faster. Now, try for yourself, change the times - use diff" "erent times and notes." msgstr "" -"Merk op hoe het sneller speelt. Probeer dit nu voor jezelf, verander de rustti" -"jd- gebruik verschillende tijden en noten." +"Hoor je dat het sneller speelt. Probeer het nu zelf, verander de rusttijd - " +"gebruik verschillende tijden en noten." #: 02.1-Your-First-Beeps.md:90 msgid "" @@ -914,9 +920,9 @@ msgid "" "re's absolutely no need to stick to standard whole notes. Play around and have" " fun." msgstr "" -"Wat je zeker ook kan proberen is om \"tussen” noten te spelen zoals `play 52.3`" -" and `play 52.63`. Het is absoluut niet noodzakelijk om te blijven vasthouden " -"aan standaard „hele” noten. Speel erop los en amuseer je." +"Wat je zeker ook kan proberen is om \"tussen\" noten te spelen zoals `play 52" +".3` en `play 52.63`. Het is absoluut niet nodig vast te blijven houden aan " +"de standaard \"hele\" noten. Speel er maar op los en amuseer je." #: 02.1-Your-First-Beeps.md:95 msgid "Traditional Note Names" @@ -929,10 +935,10 @@ msgid "" "ote names such as C and F# rather than numbers. Sonic Pi has you covered. You " "can do the following:" msgstr "" -"Als je al kennis hebt van muzieknotatie (maak je geen zorgen als dit niet het " -"geval is, zonder deze kennis blijft het even leuk), dan wil je bij het schrij" -"ven van een melodie, misschien liever de nootnamen gebruiken zoals: C en F# in" -" plaats van cijfers. In Sonic Pi kan je dat.\n" +"Als je al kennis hebt van muzieknotatie (maak je geen zorgen als dit niet " +"het geval is, zonder deze kennis blijft het even leuk), dan wil je bij het " +"schrijven van een melodie, misschien liever de nootnamen gebruiken zoals: C " +"en F# in plaats van cijfers. In Sonic Pi kan je dat.\n" "Je kan dan het volgende doen:" #: 02.1-Your-First-Beeps.md:102 @@ -955,9 +961,9 @@ msgid "" "Remember to put the colon `:` in front of your note name so that it goes pink." " Also, you can specify the octave by adding a number after the note name:" msgstr "" -"Denk eraan, een dubbelpunt voor de nootnaam te plaatsen, zodat deze in roze wo" -"rdt. Je kan hierbij ook het octaaf aangeven door achter de nootnaam een cijfer" -" te plaatsen:" +"Denk eraan, een dubbele punt vòòr de nootnaam te plaatsen, zodat deze roze " +"wordt. Je kan hierbij ook het octaaf aangeven door achter de nootnaam een " +"cijfer te plaatsen:" #: 02.1-Your-First-Beeps.md:114 #, no-wrap @@ -979,22 +985,24 @@ msgid "" "If you want to make a note sharp, add an `s` after the note name such as `play" " :Fs3` and if you want to make a note flat, add a `b` such as `play :Eb3`." msgstr "" -"Als je een verhoogde alteratie (bv. F#) zet je een 's' achter de nootnaam, bv." -" `play :Fs3`. Als je een verlaagde alteratie wil maken (bv. E mol), zet dan ee" -"n 'b' achter de nootnaam bv. `play :Eb3`." +"Als je een verhoogde alteratie (bv. F# of Fis) wilt maken, zet je een `s` " +"achter de nootnaam, bv. `play :Fs3`. Als je een verlaagde alteratie wil " +"maken (bv. E mol), zet dan een `b` achter de nootnaam bv. `play :Eb3`." #: 02.1-Your-First-Beeps.md:125 msgid "" "There's also a handy shortcut for a rest (a musical way of saying not to play " "anything instead of a note) using `:r`, `:rest` or `nil`." msgstr "" +"Er is ook een handige notatie voor een \"rust\" (een muzikale manier om aan " +"geven even niets te spelen in plaats van een note) gebruik hiervoor `:r`, " +"`:rest` of `nil`." #: 02.1-Your-First-Beeps.md:128 -#, fuzzy msgid "Now go *wild* and have fun making your own tunes." msgstr "" -"Ga nu maar lekker loos bij het maken van je eigen melodietjes, veel plezier er" -"mee." +"Ga nu maar lekker *los* bij het maken van je eigen melodietjes, veel plezier " +"ermee." #: 02.2-Synth-Params.md:1 msgid "2.2 Synth Options" @@ -1013,12 +1021,13 @@ msgid "" "the most useful: *amplitude* and *pan*. First, let's look at what options actu" "ally are." msgstr "" -"Zoals je kan bepalen welke noot er gespeeld wordt of welke sample er wordt get" -"riggert, zo biedt Sonic Pi een hele waaier aan mogelijkheden om geluiden te be" -"werken en manipuleren. We gaan velen daarvan in deze handleiding bekijken en i" -"n het hulp systeem is een uitgebreide documentatie voorzien van deze 'opties'." -" De belangrijkste op dit moment zijn: 'amplitude' en 'pan'. Laat ons eerst eve" -"n bekijken wat opties eigenlijk zijn." +"Naast dat je kan bepalen welke noot er gespeeld wordt of welke sample er " +"wordt getriggert, biedt Sonic Pi een heel scala aan mogelijkheden om " +"geluiden te bewerken en manipuleren. We gaan vele daarvan in deze " +"handleiding bekijken en in het hulp systeem zijn deze \"opties\" voorzien " +"van uitgebreide documentatie. De belangrijkste op dit moment zijn: " +"*amplitude* (sterkte) en *pan* (balans). Laten we eerst even bekijken wat " +"opties nu eigenlijk zijn." #: 02.2-Synth-Params.md:13 msgid "Options" @@ -1032,25 +1041,24 @@ msgid "" "owever, there are common sets of opts shared by many sounds such as `amp:` and" " envelope opts (covered in another section)." msgstr "" -"Sonic Pi ondersteunt het noteren van opties (afgekort: opts) voor haar synths." -" Opts zijn controle-elementen die je samen met het commando 'play' doorgeeft " -"die wijzigingen en manipulaties van het afgespeelde geluid. Elke synth heeft z" -"ijn eigen unieke set van opts om haar geluid fijn af te stemmen. Er zijn echte" -"r opts die bij elke synth, of bij elk geluid gebruikt kunnen worden zoals 'amp" -":' en 'envelope' (= geluidsverloop) opties (In een andere sectie gaan we diepe" -"r op die 'envelopes' in)." +"Sonic Pi ondersteunt het concept van opties (afgekort: opts) voor haar " +"synths. Opts zijn controle-elementen die je samen met het commando `play` " +"doorgeeft. Ze wijzigingen en manipuleren het afgespeelde geluid. Elke synth " +"heeft zijn eigen unieke set opts om haar geluid haarfijn af te kunnen " +"stemmen. Er zijn ook opts die bij elke synth, of bij elk geluid gebruikt " +"kunnen worden. Zoals `amp:` en \"envelope\" (geluidsverloop) opties (Waar we " +"in een andere sectie dieper op ingaan)." #: 02.2-Synth-Params.md:22 -#, fuzzy msgid "" "Opts have two major parts, their name (the name of the control) and their valu" "e (the value you want to set the control at). For example, you might have an o" "pt called `cheese:` and want to set it with a value of `1`." msgstr "" -"Opts bestaan uit twee belangrijke delen (de naam van het element waar je contr" -"ole over wil hebben) en de waarde hiervan (de mate van controle over dit eleme" -"nt). Een voorbeeld, je hebt een opt genaamd 'kaas' en je wilt deze instellen o" -"p een waarde van '1'." +"Opts bestaan uit twee belangrijke delen, een naam (de naam van het element " +"waar je controle over wil hebben) en de waarde hiervan (de mate van controle " +"over dit element). Een voorbeeld, je hebt een opt genaamd `kaas:` en je wilt " +"deze instellen op een waarde van `1`." #: 02.2-Synth-Params.md:27 msgid "" @@ -1058,9 +1066,9 @@ msgid "" "he opt such as `amp:` (don't forget the colon `:`) and then a space and the va" "lue of the opt. For example:" msgstr "" -"Opts worden samen met 'play' commando's doorgegeven, dor gebruik te maken van " -"een komma ',' gevolgd door de naam van de optie, we kiezen hier 'amp:' (vergee" -"t de dubbelpunt niet ':' ) gevolgd door een spatie en de waarde van de optie. " +"Opts worden samen met het `play` commando's doorgegeven, gescheiden door een " +"komma `,` gevolgd door de naam van de optie, we kiezen hier `amp:` (vergeet " +"de dubbele punt niet `:`) gevolgd door een spatie en de waarde van de optie. " "Bijvoorbeeld:" #: 02.2-Synth-Params.md:31 @@ -1071,12 +1079,14 @@ msgstr "play 50, kaas: 1" #: 02.2-Synth-Params.md:35 msgid "(Note that `cheese:` isn't a valid opt, we're just using it as an example)." msgstr "" -"(Merk op dat ' kaas: \"geen geldige opt is, we gebruiken deze gewoon als voorbe" -"eld)." +"(Let op dat `kaas:` geen geldige opt is, we gebruiken deze alleen als " +"voorbeeld)." #: 02.2-Synth-Params.md:37 msgid "You can pass multiple opts by separating them with a comma:" -msgstr "Je kan meerdere opts tegelijk doorgeven door deze te scheiden met een komma:" +msgstr "" +"Je kunt meerdere opts tegelijk doorgeven door deze te scheiden door een " +"komma:" #: 02.2-Synth-Params.md:39 #, no-wrap @@ -1097,17 +1107,17 @@ msgid "" "Opts that aren't recognised by the synth are just ignored (like `cheese` and `" "beans` which are clearly ridiculous opt names!)" msgstr "" -"Opts die door de synth niet worden herkent zullen gewoon genegeerd worden (zoa" -"ls 'kaas' en 'eieren' duidelijk zeer ridicule opt namen!)" +"Opts die door de synth niet worden herkent zullen gewoon genegeerd worden (" +"zoals `kaas` en `eieren` duidelijk nergens op slaan qua opt namen!)" #: 02.2-Synth-Params.md:52 msgid "" "If you accidentally use the same opt twice with different values, the last one" " wins. For example, `beans:` here will have the value 2 rather than 0.5:" msgstr "" -"Mocht je per ongeluk twee keer dezelfde opt hebben ingevoerd maar met verschil" -"lende waarden, dan zal de laatste waarde winnen. Bijvoorbeeld, 'eieren' zal de" -" waarde 2 hebben in plaats van 0.5:" +"Mocht je per ongeluk twee keer dezelfde opt hebben ingevoerd maar met " +"verschillende waarden, dan zal de laatste waarde winnen. Bijvoorbeeld, " +"`eieren:` zal de waarde `2` hebben in plaats van `0.5`:" #: 02.2-Synth-Params.md:56 #, no-wrap @@ -1140,17 +1150,18 @@ msgid "" "e the sound muddy and strange. So try to use low amplitudes, i.e. in the range" " 0 to 0.5 to avoid compression." msgstr "" -"Amplitude is de representatie van het geluidsvolume op een computer. Een hoge " -"amplitude produceert het geluid op een luid volume en een lage amplitude op ee" -"n zacht volume. Net zoals Sonic Pi cijfers gebruikt om noten en tijden aan te " -"geven, gebruikt het cijfers om amplitude te bepalen. Een amplitude van '0' is " -"stil (je zal niets horen) en een amplitude van '1' is een normaal volume. Je k" -"an het volume zelfs nog opdrijven en verhogen tot 2, 10, 100. Maar u moet er w" -"el rekening mee houden dat wanneer het globale volume te hoog wordt, zal Sonic" -" Pi een compressie inschakelen en het geluid onderdrukken om ervoor te zorgen " -"dat je oren gespaard blijven. Dit kan het geluid dan weer dof en vreemd doen l" -"aten klinken. Dus is het beter lage amplitudes te gebruiken, dwz. tussen 0 tot" -"0.5 om compressie te vermijden." +"Amplitude is de representatie van het geluidsvolume door een computer. Een " +"hoge amplitude produceert het geluid met een luid volume en een lage " +"amplitude met een zacht volume. Net zoals Sonic Pi getallen gebruikt om " +"noten en tijden aan te geven, gebruikt het getallen om de amplitude te " +"bepalen. Een amplitude van `0` is stil (je zult niets horen) en een " +"amplitude van `1` is een normaal volume. Je kan het volume zelfs nog " +"opdrijven en verhogen tot 2, 10, 100. Maar je moet er dan wel rekening mee " +"houden dat, wanneer het globale volume te hoog wordt, Sonic Pi een " +"zogenaamde compressor inschakelt die het geluid zal onderdrukken om ervoor " +"te zorgen dat je oren gespaard blijven. Dit kan het geluid dan weer dof en " +"vreemd doen laten klinken. Dus is het beter om lage amplitudes te gebruiken, " +"dwz. tussen 0 en 0.5 om compressie te vermijden." #: 02.2-Synth-Params.md:79 msgid "Amp it up" @@ -1161,8 +1172,9 @@ msgid "" "To change the amplitude of a sound, you can use the `amp:` opt. For example, t" "o play at half amplitude pass 0.5:" msgstr "" -"Om de amplitude van een geluid te veranderen, kan je de 'amp:' optie gebruiken" -". Bijvoorbeeld, op gemiddelde amplitude afspelen, gebruik dan 0.5:" +"Om de amplitude van een geluid te veranderen, kan je de `amp:` optie " +"gebruiken. Bijvoorbeeld, om op een gemiddelde amplitude af te spelen, " +"gebruik je 0.5:" #: 02.2-Synth-Params.md:84 #, no-wrap @@ -1171,7 +1183,7 @@ msgstr "play 60, amp: 0.5" #: 02.2-Synth-Params.md:88 msgid "To play at double amplitude pass 2:" -msgstr "Afspelen op dubbel zo hoge amplitude gebruik 2:" +msgstr "Afspelen op een dubbel zo hoge amplitude gebruik dan 2:" #: 02.2-Synth-Params.md:90 #, no-wrap @@ -1184,9 +1196,9 @@ msgid "" "his example, the first call to play is at half volume and the second is back t" "o the default (1):" msgstr "" -"De amp opt verandert enkel de 'play' oproep waarmee deze wordt geassocieerd. I" -"n dit voorbeeld zal de eerste oproep dus aan de helft van het volume spelen en" -" de tweede op standaard-instelling (1):" +"De `amp:` opt verandert enkel de `play` oproep waarmee deze wordt " +"geassocieerd. In dit voorbeeld zal de eerste oproep dus op de helft van het " +"volume spelen en de tweede op de standaard-instelling (1):" #: 02.2-Synth-Params.md:98 #, no-wrap @@ -1202,8 +1214,7 @@ msgstr "" #: 02.2-Synth-Params.md:104 msgid "Of course, you can use different `amp:` values for each call to play:" msgstr "" -"Natuurlijk kunnen verschillende 'amp:' waarden per 'play' oproep worden gebrui" -"kt:" +"Natuurlijk kun je verschillende `amp:` waarden per `play` oproep gebruiken:" #: 02.2-Synth-Params.md:106 #, no-wrap @@ -1237,17 +1248,17 @@ msgid "" "to represent fully right in the stereo field. Of course, we're free to use any" " value between -1 and 1 to control the exact positioning of our sound." msgstr "" -"Een ander leuke opt om te gebruiken is 'pan:' die bepaalt de panning van een g" -"eluid in stereo. Naar links pannen betekent dat je het geluid door de linker-l" -"uidspreker hoort, naar rechts pannen betekent dat je het geluid door de recht" -"er-luidspreker hoort. Onze cijferwaarde -1 betekend helemaal links, 0 geeft he" -"t midden weer en 1 geeft helemaal rechts van ons stereobeeld. Natuurlijk zijn " -"we vrij om elke waarde tussen -1 en 1 te gebruiken om de exacte positie van on" -"s geluid te bepalen." +"Een ander leuke opt om te gebruiken is `pan:` die bepaalt de panning van een " +"geluid in stereo. Naar links pannen betekent dat je het geluid door de " +"linker-luidspreker hoort, naar rechts pannen betekent dat je het geluid door " +"de rechter-luidspreker hoort. Een waarde van -1 betekend helemaal links, 0 " +"betekend in het midden en 1 betekend weer helemaal rechts van ons " +"stereobeeld. Natuurlijk zijn we vrij om elke waarde tussen -1 en 1 te " +"gebruiken om de exacte positie van ons geluid te bepalen." #: 02.2-Synth-Params.md:126 msgid "Let's play a beep out of the left speaker:" -msgstr "Laten we eens een bliepje uit de linkerluidspreker doen klinken:" +msgstr "Laten we eens een bliepje uit de linker-luidspreker laten horen:" #: 02.2-Synth-Params.md:128 #, no-wrap @@ -1256,7 +1267,7 @@ msgstr "play 60, pan: -1" #: 02.2-Synth-Params.md:132 msgid "Now, let's play it out of the right speaker:" -msgstr "En nu uit de rechter luidspreker:" +msgstr "En nu uit de rechter-luidspreker:" #: 02.2-Synth-Params.md:134 #, no-wrap @@ -1265,7 +1276,7 @@ msgstr "play 60, pan: 1" #: 02.2-Synth-Params.md:138 msgid "Finally let's play it back out of the center of both (the default position):" -msgstr "En nu terug vanuit beiden samen (standaard positie):" +msgstr "En nu terug vanuit het midden (standaard positie):" #: 02.2-Synth-Params.md:141 #, no-wrap @@ -1275,8 +1286,8 @@ msgstr "play 60, pan: 0" #: 02.2-Synth-Params.md:145 msgid "Now, go and have fun changing the amplitude and panning of your sounds!" msgstr "" -"Doe nu maar, en veel plezier met het veranderen van de amplitude en het pannen" -" van uw geluiden!" +"Doe nu maar, en veel plezier met het veranderen van de amplitude en het " +"pannen van je geluiden!" #: 02.3-Switching-Synths.md:1 msgid "2.3 Switching Synths" @@ -1287,7 +1298,6 @@ msgid "Switching Synths" msgstr "Synths Veranderen" #: 02.3-Switching-Synths.md:5 -#, fuzzy msgid "" "So far we've had quite a lot of fun making beeps. However, you're probably sta" "rting to get bored of the basic beep noise. Is that all Sonic Pi has to offer?" @@ -1295,14 +1305,13 @@ msgid "" " in this section we'll explore some of the exciting range of sounds that Sonic" " Pi has to offer." msgstr "" -"Tot nu hebben we al heel wat plezier beleeft met onze biepjes. Dit standaard b" -"iepje zal ons echter na een tijdje gaan vervelen. Is het dit alles wat Sonic P" -"i ons te bieden heeft? Er moet toch meer kunnen dan alleen maar wat biepjes ma" -"ken met dit hele gedoe van live-coderen? Oh ja zeker, en in deze sectie gaan w" -"e de spannende serie klanken die Sonic Pi te bieden heeft verkennen." +"Tot nu hebben we al heel wat plezier beleeft met onze biepjes. Dit standaard " +"biepje zal ons echter na een tijdje gaan vervelen. Is dit alles wat Sonic Pi " +"ons te bieden heeft? Er moet toch meer kunnen dan alleen maar wat biepjes " +"maken met dit hele gedoe van live-coderen? O ja zeker! In deze sectie gaan " +"we een serie spannende klanken die Sonic Pi te bieden heeft verkennen." #: 02.3-Switching-Synths.md:13 -#, fuzzy msgid "" "Sonic Pi has a number of different instruments it calls synths (which is *shor" "t for synthesisers*). Whereas samples represent pre-recorded sounds, synths ar" @@ -1311,21 +1320,21 @@ msgid "" "xpressive and you'll have a lot of fun exploring and playing with them. First," " let's learn how to select the current synth to use." msgstr "" -"Sonic Pi heeft een waaier aan instrumenten, synths genaamd -dat is de verkorti" -"ng van synthesizers. Waar samples reeds opgenomen klanken vertegenwoordigen, z" -"ijn synths in staat om nieuwe klanken te genereren, afhankelijk van hoe je dez" -"e instelt (dat gaan we later in deze handleiding ontdekken). Sonic Pi's synth" -"s zijn heel krachtig en expressief en je zal er een veel plezier aan beleven d" -"eze te leren kenen en te bespelen. Maar eerst gaan we leren hoe we deze kunne" -"n selecteren." +"Sonic Pi heeft een scala aan instrumenten, synths genaamd (dat is kort voor " +"synthesizers. Waar samples reeds opgenomen klanken vertegenwoordigen, zijn " +"synths in staat om nieuwe klanken te genereren, afhankelijk van hoe je deze " +"instelt (dat gaan we later in deze handleiding ontdekken). Sonic Pi's synths " +"zijn heel krachtig en expressief en je zal er veel plezier aan beleven om " +"deze te leren kenen en te gebruiken. Maar eerst gaan we leren hoe we er een " +"kunnen selecteren." #: 02.3-Switching-Synths.md:21 msgid "Buzzy saws and prophets" -msgstr "Drukke Zaagtand-golven en \"Prophets\"" +msgstr "Drukke Zaagtanden en \"Prophets\"" #: 02.3-Switching-Synths.md:23 msgid "A fun sound is the *saw wave* - let's give it a try:" -msgstr "Een leuke klank is de *zaagtand-golf*, laten we deze uitproberen:" +msgstr "Een leuk geluid is de *zaagtand-golf*, laten we deze eens uitproberen:" #: 02.3-Switching-Synths.md:25 #, no-wrap @@ -1348,7 +1357,7 @@ msgstr "" #: 02.3-Switching-Synths.md:34 msgid "Let's try another sound - the *prophet*:" -msgstr "Laten we nog een andere klank proberen, de *prophet*:" +msgstr "Laten we nog een ander geluid proberen, de *prophet*:" #: 02.3-Switching-Synths.md:36 #, no-wrap @@ -1372,8 +1381,8 @@ msgstr "" #: 02.3-Switching-Synths.md:45 msgid "How about combining two sounds. First one after another:" msgstr "" -"Hoe zit het dan met het combineren van twee verschillende klanken? Eerst de en" -"e na de andere:" +"Hoe zit het dan met het combineren van twee verschillende klanken? De ene na " +"de andere:" #: 02.3-Switching-Synths.md:47 #, no-wrap @@ -1401,12 +1410,11 @@ msgid "" "Now multiple sounds at the same time (by not sleeping between successive calls" " to `play`):" msgstr "" -"Nu klinken er meerdere tonen tegelijk (omdat er geen pauze zit tussen de opeen" -"volgende aanroepen van `play`):" +"Nu klinken er meerdere tonen tegelijk (omdat er geen pauze (`sleep`) meer " +"zit tussen de opeenvolgende aanroepen van `play`):" #: 02.3-Switching-Synths.md:60 #, no-wrap -#, fuzzy msgid "" "use_synth :tb303\n" "play 38\n" @@ -1417,13 +1425,10 @@ msgid "" msgstr "" "use_synth :tb303\n" "play 38\n" -"sleep 0.25\n" "use_synth :dsaw\n" "play 50\n" -"sleep 0.25\n" "use_synth :prophet\n" -"play 57\n" -"sleep 0.25" +"play 57" #: 02.3-Switching-Synths.md:69 msgid "" @@ -1432,27 +1437,26 @@ msgid "" "th it's currently pointing to. You can move the switch to a new synth with `us" "e_synth`." msgstr "" -"Merk hierbij op dat het `use_synth` commando, alleen invloed heeft op de daaro" -"p volgende oproepen van 'play'. Stel je deze even voor,als een grote schakelaa" -"r, die bij nieuwe 'play' opvragingen, eender welke synth laat afspelen waar mo" -"menteel naar verwezen wordt. Je kan die dan omschakelen naar andere synth door" -" het gebruik van `use_synth`." +"Merk hierbij op dat het `use_synth` commando, alleen invloed heeft op de " +"daarop volgende oproepen van `play`. Stel je deze even voor,als een *grote " +"schakelaar*, die bij nieuwe `play` oproepen, de synth laat afspelen waar " +"momenteel naar verwezen wordt. Je kan die dan omschakelen naar een andere " +"synth door het gebruik van `use_synth`." #: 02.3-Switching-Synths.md:75 msgid "Discovering Synths" msgstr "Synths Ontdekken" #: 02.3-Switching-Synths.md:77 -#, fuzzy msgid "" "To see which synths Sonic Pi has for you to play with take a look at the Synth" "s option in the menu at the bottom of this help screen (between Examples & Fx)" ". There are over 20 to choose from. Here are a few of my favourites:" msgstr "" -"Om te zien welke synths Sonic Pi voor u heeft om mee te spelen neem dan een ki" -"jkje op de Synths-opties in het uiterst links verticale menu (boven Effecten)." -" Er zijn er meer dan 20 om uit te kiezen. Hier zijn een paar van mijn favoriet" -"en:" +"Om te zien welke synths Sonic Pi voor je heeft om mee te spelen kun je een " +"kijkje nemen bij de Synths, het menu helemaal links-onder (tussen " +"Voorbeelden en Effecten). Er zijn er meer dan 20 om uit te kiezen. Hier zijn " +"een paar van mijn favorieten:" #: 02.3-Switching-Synths.md:81 msgid "`:prophet`" @@ -1480,9 +1484,10 @@ msgid "" "synths to make new sounds as well as using different synths for different sect" "ions of your music." msgstr "" -"Speel nu een beetje met dit schakelen van synths terwijl je muziekstuk afspeel" -"t. Veel plezier met het combineren van synths om nieuwe klanken te maken of om" -" verschillende secties in uw muziekstuk van verschillende synths te voorzien." +"Speel nu een beetje met dit *schakelen van synths terwijl je muziekstuk " +"afspeelt*. Veel plezier met het combineren van synths om nieuwe geluiden te " +"maken of om verschillende secties in je muziekstuk van verschillende synths " +"te voorzien." #: 02.4-Durations-with-Envelopes.md:1 msgid "2.4 Duration with Envelopes" @@ -1498,9 +1503,9 @@ msgid "" "rol when to trigger our sounds. However, we haven't yet been able to control t" "he duration of our sounds." msgstr "" -"In een eerdere sectie, hebben we gezien hoe we de opdracht 'sleep' gebruiken o" -"m te bepalen wanneer we onze geluiden activeren . We zijn echter nog in staat " -"geweest om te bepalen hoe lang onze klank duurt." +"In een eerdere sectie, hebben we gezien hoe we de opdracht `sleep` gebruiken " +"om te bepalen wanneer we onze geluiden activeren. We zijn echter nog niet in " +"staat geweest om te bepalen hoe lang ons geluid duurt." #: 02.4-Durations-with-Envelopes.md:9 msgid "" @@ -1509,19 +1514,19 @@ msgid "" "we'll cover what ADSR means later in this section). An amplitude envelope offe" "rs two useful aspects of control:" msgstr "" -"Om ons een eenvoudig maar krachtig middel te geven waar we de controle hebben " -"over de tijdsduur van onze klank, biedt Sonic Pi ons een zekere manier van not" -"ering van een zogenaamde *ADSR amplitude envelope* (we bespreken later in deze" -" sectie wat dat betekent). Een amplitude \"envelope\" biedt twee manieren van co" -"ntrole:" +"Om ons een eenvoudig maar krachtig middel te geven waarmee we de controle " +"hebben over de tijdsduur van onze geluiden, biedt Sonic Pi ons een manier om " +"een zogenaamde *ADSR amplitude envelope* (we bespreken later in deze sectie " +"wat dat betekent) te beschrijven. Een amplitude \"envelope\" biedt twee " +"manieren van controle:" #: 02.4-Durations-with-Envelopes.md:14 msgid "control over the duration of a sound" -msgstr "controle over de duurtijd van een klank" +msgstr "controle over de duurtijd van een geluid" #: 02.4-Durations-with-Envelopes.md:15 msgid "control over the amplitude of a sound" -msgstr "controle over de amplitude van een klank" +msgstr "controle over de amplitude van een geluid" #: 02.4-Durations-with-Envelopes.md:17 msgid "Duration" @@ -1534,11 +1539,11 @@ msgid "" "ude envelope, and the total duration of that envelope is the duration of the s" "ound. Therefore, by controlling the envelope you control the duration." msgstr "" -"De duurtijd is de lengte dat een klank aanhoud . Een langere duur betekent dat" -" u de klank langer hoort. De klanken van Sonic Pi hebben allen een instelbare " -"amplitude envelop, de totale duur van die envelop is dan de totale duurtijd va" -"n die klank. Daarom kan je, door het instellen van de envelop, de duurtijd be" -"palen." +"De duurtijd is de lengte dat een klank aanhoud. Een langere duur betekent " +"dat je de klank langer hoort. De geluiden van Sonic Pi hebben allen een " +"instelbare amplitude envelop, de totale duur van die envelop is dan de " +"totale duurtijd van dat geluid. Zodoende kun je, door het instellen van de " +"envelop, de duurtijd bepalen." #: 02.4-Durations-with-Envelopes.md:27 msgid "" @@ -1551,15 +1556,15 @@ msgid "" " hold it for a bit, then quickly fall back to silence.\" Sonic Pi allows you to" " program exactly this behaviour with envelopes." msgstr "" -"De ADSR envelop regelt niet alleen de duurtijd, het geeft je ook een *fijnrege" -"ling van de geluidssterkte van de klank*. Alle hoorbare klanken starten en ein" -"digen van en naar onhoorbaarheid en bevatten, tussendoor, luidere en minder lu" -"ide delen. De ASDR envelop staat je toe de geluidssterkte van de hoorbare gede" -"elten van een klank te verschuiven en vast te houden. Zoals je iemand instruct" -"ies zou geven aan het volume van een gitaarversterker en deze van stil, naar l" -"angzaam omhoog tot het hoogste volume en deze even aan te laten houden, om dez" -"e dan, snel of traag, terug naar stil te brengen. Door de envelop kan je dit g" -"edrag in Sonic Pi programmeren." +"De ADSR envelop regelt niet alleen de duurtijd, het geeft je ook een *" +"fijnregeling van de geluidssterkte van het geluid*. Alle hoorbare geluiden " +"beginnen en eindigen onhoorbaar met daartussen luidere en minder luide " +"stukken. De ASDR envelop staat je toe om de geluidssterkte van de hoorbare " +"gedeelten van een geluid te verschuiven en vast te houden. Zoals je iemand " +"instructies zou geven aan het volume van een gitaarversterker en deze van " +"stil, naar langzaam omhoog tot het hoogste volume en deze even aan te laten " +"houden, om deze dan, snel of traag, terug naar stil te brengen. Door de " +"envelop kan je dit gedrag in Sonic Pi programmeren." #: 02.4-Durations-with-Envelopes.md:37 msgid "" @@ -9711,6 +9716,10 @@ msgid "" " synth :piano, note: note, amp: velocity / 127.0\n" "end" msgstr "" +"live_loop :midi_piano do\n" +" note, velocity = sync \"/midi:nanokey2_keyboard:0:1/note_on\"\n" +" synth :piano, note: note, amp: velocity / 127.0\n" +"end" #: 11.1-MIDI-In.md:102 msgid "" @@ -9766,6 +9775,11 @@ msgid "" " synth :piano, note: note, amp: velocity / 127.0\n" "end" msgstr "" +"live_loop :midi_piano do\n" +" use_real_time\n" +" note, velocity = sync \"/midi:nanokey2_keyboard:0:1/note_on\"\n" +" synth :piano, note: note, amp: velocity / 127.0\n" +"end" #: 11.1-MIDI-In.md:132 msgid "" @@ -9815,11 +9829,11 @@ msgstr "" #: 11.2-MIDI-Out.md:1 msgid "11.2 MIDI Out" -msgstr "" +msgstr "11.2 MIDI Uit" #: 11.2-MIDI-Out.md:3 msgid "MIDI Out" -msgstr "" +msgstr "MIDI Uit" #: 11.2-MIDI-Out.md:5 msgid "" @@ -9834,23 +9848,23 @@ msgstr "" #: 11.2-MIDI-Out.md:9 msgid "Note on - `midi_note_on`" -msgstr "" +msgstr "Note aan - `midi_note_on`" #: 11.2-MIDI-Out.md:10 msgid "Note off - `midi_note_off`" -msgstr "" +msgstr "Note uit - `midi_note_off`" #: 11.2-MIDI-Out.md:11 msgid "Control change - `midi_cc`" -msgstr "" +msgstr "Control verandering - `midi_cc`" #: 11.2-MIDI-Out.md:12 msgid "Pitch bend - `midi_pitch_bend`" -msgstr "" +msgstr "Pitch benden - `midi_pitch_bend`" #: 11.2-MIDI-Out.md:13 msgid "Clock ticks - `midi_clock_tick`" -msgstr "" +msgstr "Klok tikken - `midi_clock_tick`" #: 11.2-MIDI-Out.md:15 msgid "" @@ -9901,7 +9915,7 @@ msgstr "" #: 11.2-MIDI-Out.md:36 #, no-wrap msgid "midi_note_on :e3, 50" -msgstr "" +msgstr "midi_note_on :e3, 50" #: 11.2-MIDI-Out.md:40 msgid "" @@ -9924,7 +9938,7 @@ msgstr "" #: 11.2-MIDI-Out.md:47 #, no-wrap msgid "midi_note_off :e3" -msgstr "" +msgstr "midi_note_off :e3" #: 11.2-MIDI-Out.md:51 msgid "Selecting a MIDI device" @@ -9940,43 +9954,57 @@ msgid "" ". In more complicated setups, you may wish to be more selective about which MI" "DI device receives which message(s) and on which channel." msgstr "" +"Sonic Pi zal standaard alle MIDI berichten naar alle aangesloten apparaten " +"op alle MIDI kanalen versturen. Dit is om het eenvoudig te maken om één " +"aangesloten apparaat te werken, zonder dat er instellingen hoeven worden " +"aangepast. Maar, soms verwerkt een MIDI apparaat een MIDI kanaal op een " +"afwijkende manier (wellicht krijgt elke noot zijn eigen kanaal) en wellicht " +"wil je meerdere MIDI apparaten tegelijk aansluiten. In zulke meer " +"ingewikkelde opstellingen, wil je specifieker kunnen aangeven welke " +"berichten naar welk apparaat en kanaal gaan." #: 11.2-MIDI-Out.md:62 msgid "" "We can specify which device to send to using the `port:` opt, using the device" " name as displayed in the preferences:" msgstr "" +"We kunnen aangeven naar welk apparaat gestuurd gaat worden door de `port:` " +"optie mee te geven. Gebruik de apparaat naam zoals in de voorkeuren staat:" #: 11.2-MIDI-Out.md:65 #, no-wrap msgid "midi_note_on :e3, port: \"moog_minitaur\"" -msgstr "" +msgstr "midi_note_on :e3, port: \"moog_minitaur\"" #: 11.2-MIDI-Out.md:69 msgid "" "We can also specify which channel to send to using the `channel:` opt (using a" " value in the range 1-16):" msgstr "" +"We kunnen ook aangeven via welk kanaal gestuurd gaat worden met de `channel:`" +" optie (gebruik een waarde tussen 1-16):" #: 11.2-MIDI-Out.md:72 #, no-wrap msgid "midi_note_on :e3, channel: 3" -msgstr "" +msgstr "midi_note_on :e3, channel: 3" #: 11.2-MIDI-Out.md:76 msgid "" "Of course we can also specify both at the same time to send to a specific devi" "ce on a specific channel:" msgstr "" +"Natuurlijk kunnen we ze ook beide tegelijk meegeven om naar een specifiek " +"apparaat op een specifiek kanaal te sturen:" #: 11.2-MIDI-Out.md:79 #, no-wrap msgid "midi_note_on :e3, port: \"moog_minitaur\", channel: 5" -msgstr "" +msgstr "midi_note_on :e3, port: \"moog_minitaur\", channel: 5" #: 11.2-MIDI-Out.md:83 msgid "MIDI Studio" -msgstr "" +msgstr "MIDI Studio" #: 11.2-MIDI-Out.md:85 msgid "" @@ -9985,10 +10013,14 @@ msgid "" " your synth with code using the `midi_*` fns and also manipulate the audio usi" "ng `live_audio` and FX:" msgstr "" +"En als laatste, wat ook leuk is om te doen, is om de audio-uitgang van je " +"MIDI synthesizer aan te sluiten op een van de audio-ingangen (line-in) van " +"je audio-apparaat.Op deze manier kun je synthesizer bedienen via de `midi_*` " +"functies en ook het geluid van je synthesizer daarna weer bewerken via " +"`live_audio` en effecten:" #: 11.2-MIDI-Out.md:90 #, no-wrap -#, fuzzy msgid "" "with_fx :reverb, room: 1 do\n" " live_audio :moog\n" @@ -9997,7 +10029,14 @@ msgid "" " midi (octs :e1, 3).tick, sustain: 0.1\n" " sleep 0.125\n" "end" -msgstr "reverb," +msgstr "" +"with_fx :reverb, room: 1 do\n" +" live_audio :moog\n" +"end\n" +"live_loop :moog_trigger do\n" +" midi (octs :e1, 3).tick, sustain: 0.1\n" +" sleep 0.125\n" +"end" #: 11.2-MIDI-Out.md:101 msgid "" @@ -10005,14 +10044,17 @@ msgid "" "te off events with a single command. Check out its documentation for further i" "nformation)." msgstr "" +"(De functie `midi` is beschikbaar als een handige notatie om zowel \"note " +"aan\" als \"note uit\" events te sturen in één commando. Bekijk de `midi` " +"documentatie voor meer informatie)." #: 12-OSC.md:1 msgid "12 OSC" -msgstr "" +msgstr "12 OSC" #: 12-OSC.md:3 msgid "OSC" -msgstr "" +msgstr "OSC" #: 12-OSC.md:5 msgid "" @@ -10022,6 +10064,12 @@ msgid "" " computer and on external computers) which opens up the potential for control " "way beyond MIDI which has limitations due to its 1980s design." msgstr "" +"Naast MIDI is er nog een andere manier om berichten uit te wisselen met " +"Sonic Pi. Over het netwerk gebruik je dan een eenvoudig protocol dat OSC - " +"Open Sound Control heet. Dit stelt je in staat om berichten met externe " +"programma's uit te wisselen (zowel als deze op je eigen computer draait of " +"zelfs op een andere computer op het netwerk). Dit opent meer mogelijkheden " +"dan MIDI bied, welke door zijn ontwerp uit de 1980s, wat gelimiteerd is." #: 12-OSC.md:12 msgid "" @@ -10030,17 +10078,21 @@ msgid "" "nguage) and work directly with Sonic Pi. What you can use this for is only lim" "ited by your imagination." msgstr "" +"Je zou bijvoorbeeld een programma kunnen schrijven in een andere " +"programmeertaal dat OSC berichten kan sturen en ontvangen en zo direct kunt " +"communiceren met Sonic Pi. Er is voor bijna elke gebruikelijke taal een " +"library voor gemaakt die je kunt gebruiken in je programma. Hoe je deze " +"interactie mogelijk wilt gebruiken is volledig aan jou." #: 12.1-Receiving-OSC.md:1 msgid "12.1 Receiving OSC" -msgstr "" +msgstr "12.1 OSC Ontvangen" #: 12.1-Receiving-OSC.md:3 msgid "Receiving OSC" -msgstr "" +msgstr "OSC Ontvangen" #: 12.1-Receiving-OSC.md:5 -#, fuzzy msgid "" "By default when Sonic Pi is launched it listens to port 4560 for incoming OSC " "messages from programs on the same computer. This means that without any confi" @@ -10050,15 +10102,24 @@ msgid "" "lso use `get` and `sync` to work with the incoming data - just like with MIDI " "and synchronising `live_loops` - see sections 5.7 and 10.2 to recap how this w" "orks." -msgstr "Tijd toestand" +msgstr "" +"Wanneer Sonic Pi opstart zal het standaard luisteren, op poort 4560, naar " +"inkomende OSC berichten, van programma's op dezelfde computer. Dit betekend " +"dat je zonder dat je iets hoeft aan te passen, Sonic Pi OSC berichten kunt " +"sturen, welke worden weergegeven in de cue log, net als inkomende MIDI " +"berichten. Dit betekend ook dat alle inkomende OSC berichten worden " +"toegevoegd aan de \"Time State\", zodat je `get` en `sync` kan laten werken " +"met ontvangen gegevens - net als dat dat met MIDI en synchronisatie van " +"`live_loop`s kan - zie secties 5.7 en 10.2 voor meer informatie over hoe dat " +"werkt." #: 12.1-Receiving-OSC.md:15 msgid "A Basic OSC Listener" -msgstr "" +msgstr "Een basis OSC berichten afhandelaar" #: 12.1-Receiving-OSC.md:17 msgid "Let's build a basic OSC listener:" -msgstr "" +msgstr "Laten we een basis OSC berichten afhandelaar maken:" #: 12.1-Receiving-OSC.md:19 #, no-wrap @@ -10084,10 +10145,17 @@ msgid "" "eed to send an OSC message with the path `/trigger/prophet` for our `sync` to " "stop blocking and the prophet synth to be triggered." msgstr "" +"In dit voorbeeld beschrijven het volgende OSC pad `\"/osc*/trigger/prophet\"`" +" waarop we synchroniseren. Dit kan elk geldig OSC pad zijn. Een geldig pad " +"mag alle letters en cijfers bevatten waarbij de `/`, zoals bij URLs, word " +"gebruikt om het pad in meerdere woorden op te delen. Het `/osc` voorvoegsel " +"word door Sonic Pi toegevoegd aan alle OSC berichten, dus we moeten OSC " +"berichten sturen met pad `/trigger/prophet` om onze `sync` te laten " +"doorlopen en de prophet synth te triggeren." #: 12.1-Receiving-OSC.md:36 msgid "Sending OSC to Sonic Pi" -msgstr "" +msgstr "OSC berichten sturen naar Sonic Pi" #: 12.1-Receiving-OSC.md:38 msgid "" @@ -10104,6 +10172,10 @@ msgid "" "sender = udp_client.SimpleUDPClient('127.0.0.1', 4560)\n" "sender.send_message('/trigger/prophet', [70, 100, 8])" msgstr "" +"from pythonosc import osc_message_builder\n" +"from pythonosc import udp_client\n" +"sender = udp_client.SimpleUDPClient('127.0.0.1', 4560)\n" +"sender.send_message('/trigger/prophet', [70, 100, 8])" #: 12.1-Receiving-OSC.md:50 msgid "" @@ -10118,6 +10190,9 @@ msgid "" "(def c (osc-client \"127.0.0.1\" 4560))\n" "(osc-send c \"/trigger/prophet\" 70 100 8)" msgstr "" +"(use 'overtone.core)\n" +"(def c (osc-client \"127.0.0.1\" 4560))\n" +"(osc-send c \"/trigger/prophet\" 70 100 8)" #: 12.1-Receiving-OSC.md:58 msgid "Receiving from External Machines"