.ts`.
- Build a new binary, test it.
- When you're happy, `git add` if you added a new language, then
`git commit`, `git push` to your github repo.
- [Send a pull request](https://help.github.com/articles/creating-a-pull-request/) to the Sonic Pi repo.
## Adding a new translation string to the Qt GUI
Messages you want to have translated need to be marked with `tr()`
in the source.
If you added or changed a translation string during development,
don't forget to run `lupdate -pro SonicPi.pro` afterwards to update
the `.ts` files.
Then push them back to github and ask the translators to pull and
translate them.
(The translation workflow will hopefully become much easier once
Transifex is integrated.)
## To-Do
- Transifex integration
sonic-pi-2.9.0/WindowsInstall.md 0000664 0000000 0000000 00000034472 12641053014 0016554 0 ustar 00root root 0000000 0000000 # SONIC PI DETAILED BUILD YOUR OWN INSTRUCTIONS FOR WINDOWS 10 BASED ON LATEST SP 2.9dev after e7fde3a
Last revision 29th December 2015 @ 7:32PM AWST (minor grammar improvement)
Test bed was a Windows 10 64bit install (running under vmware fusion on a Mac)
This document details the process from beginning to end to build Sonic Pi 2.9dev and I hope it will be useful to others, and encourage them to have a go themselves.
Prerequisite. A windows 10 computer with internet connection and working soundcard.
First there is quite a bit of software to install to facilitate the build, not least the source files for Sonic Pi.
First install **git** from https://msysgit.github.io/ click **download** then run `Git-2.6.3-64-bit.exe` I selected options **Use git from Windows Command Prompt**, **Checkout Windows-style**, **commit Unix-style line endings**, **Use Windows default console window**, and **Enable file system caching**
Now install the **Sonic Pi source files**. I put mine at the top level of the c: drive
Start a command window by typing **cmd** in the search field
```
cd c:/
git clone https://github.com/samaaron/sonic-pi.git
```
Now download **Visual Studio Express 2013 for Windows Desktop with Update 5** from
https://www.visualstudio.com/downloads/download-visual-studio-vs
scroll down the page and find **Visual Studio 2013**, and then **Express 2013 for Desktop**.
You can either choose **Web Installer** or **ISO** depending upon whether you want to install over the web or download a complete 3.3Gb and install from that. I did the full download, mounted the iso disk image and installed from that.
Download **Qt**. use **version 5.5.1** as version 5.4.x is NOT qualified for Windows 10
I went to http://www.qt.io/download-open-source/#section-2
And selected **Qt 5.5.1 for Windows 32-bit (VS 2013, 804 MB)**
http://download.qt.io/official_releases/qt/5.5/5.5.1/qt-opensource-windows-x86-msvc2013-5.5.1.exe
After download, I ran the installer, accepting the default settings, which installs Qt at
```C:\Qt\Qt5.5.1``` (I skipped setting up an account!)
Install **cmake** from the link http://www.cmake.org/download
Scroll down and select ```cmake-3.4.1-win32-x86.exe``` and download.
Run the installer, selecting the option **Add to the System PATH for all (or current) users**
Install **Ruby** from http://rubyinstaller.org/downloads/
I choose **Ruby 2.2.3** although the install works with 2.1.7 with minor alterations which are detailed below.
Choose the **32 bit version**
Run the installer when downloaded. Choose the default install ```c:\Ruby22``` (C:\Ruby21 if you use Ruby2.1.7)
Select **add Ruby Executables to your path** and **associate .rb and .rbw files with this installation**.
Scroll further down the page of http://rubyinstaller.org/downloads/ and select
```DevKit-mingw64-32-4.7.2-20130224-1151-sfx.exe``` and download that as well
Make sure you use the **32 bit version for Ruby 2.0 and higher**.
When downloaded, run this and set the extract location to ```c:\RubyDev```
Now you have to complete the installation as follows:
In a command window
```
cd c:\RubyDev
ruby dk.rb init
```
This will create a file ```config.yml``` inside the ```RubyDev``` folder
Check its contents by typing;
```Notepad config.yml```
You should see a line ``` - C:\Ruby22```
at the end of the file. ( - C:\Ruby21 if you use Ruby2.1.7)
Close notepad
Now type
```ruby dk.rb install```
Now you add two files from **pkgconfiglite**
Open the link
http://sourceforge.net/projects/pkgconfiglite/files
and select
**Looking for the latest version? Download pkg-config-lite-0.28-1_bin-win32.zip (47.7 kB)**
When the file has downloaded, extract and then copy the file ```pkg-config``` from the ```bin``` folder to ```c:\RubyDev\bin```
and the file ```pkg.m4``` from the ```share\aclocal``` folder to ```c:\RubyDev\share\aclocal```
That completes the setup for RubyDev
### Preparing the Ruby section
This section of the Sonic Pi install.md file should be completed next BEFORE attempting the section **Qt GUI** (unlike in the original install.md document) as the final build in this section requires one of the gems to be installed before it is run.
Copy ```c:\ruby22\*``` into ```c:\sonic-pi\apps\server\native\windows\ruby```
(amend to c:\Ruby21\* if you use Ruby2.1.7)
You will need to create the last two folders windows\ruby before doing this, which is best done from a File Explorer window. The copying is also best done using **two** File Explorer windows, one set to ```c:\Ruby22``` (or C:Ruby21 if you use Ruby2.1.7) and the other to ```c:\sonic-pi\app\server\native\windows\ruby```
You can leave out the **Doc** folder and the two **unins000** files.
Now open a cmd window and navigate to c:\sonic-pi\app\server\native\windows\ruby
From there we will install gem files required by Sonic Pi
```.\bin\gem install did_you_mean```
(allow access if you are asked). The install may take a little time. Eventually it will say two gems installed (did_you_mean and interception)
```.\bin\gem install ffi```
Another gem recently added, that is needed specifically for the windows install is ```win32-process```
```.\bin\gem install win32-process```
The fourth gem file is problematical, and needs a patch to install. It goes like this:
```.\bin\gem fetch rugged```
This will fetch the latest version which is rugged-0.23.3
```
.\bin\gem unpack rugged-0.23.3.gem
.\bin\gem spec rugged-0.23.3.gem --ruby > rugged-0.23.3\rugged.gemspec
```
Now we have to apply a patch to one of the files.
```
cd rugged-0.23.3\ext\rugged
notepad extconf.rb
```
In the notepad window select **Find** from the Edit Menu (**ctrl+F**) and search for
```Unix Makefiles\””)```
and change it to read
```Unix Makefiles\" -DCMAKE_INSTALL_PREFIX=C:/ -DWINHTTP=OFF")```
Then resave the file and quit notepad.
Go back to the cmd window
```cd ..\..\```
you should be back in the folder ```c:\sonic-pi\app\server\native\windows\ruby\rugged-0.23.3```
Now build the patched rugged
```
..\bin\gem build rugged.gemspec
..\bin\gem install rugged-0.23.3.gem
```
create the directory path ```c:\sonic-pi\app\server\rb-native\windows\2.2.0```
You will have to create the last two folders windows\2.2.0 in this path. Easiest to do this with FileExplorer Window NB if you are using Ruby 2.1.x you will substitute the folder 2.1.0 instead of 2.2.0 here. The compiled shared libraries for the gems will be copied to this folder. Keep this window (hereafter referred to as the ```gem .so folder```) open for the purpose.
Different versions of Ruby appear to store the compiled libraries in different places, so it is probably easiest to search for them using a new FileExplorer Window. Open such a window, and navigate to
```
c:\ > sonic-pi > app > server > native > windows > ruby > lib > ruby > gems
```
You will use this window three times to search for the three .so files which need to be copied.
A) ***did_you_mean gem*** The shared object file in this case is called ```method_receiver.so``` It will be copied to a folder ```did_you_mean``` which you have to create in the ```gem .so folder``` referred to above.
To find it, type ```method*.so``` in the search field (top right)
Select one of the hits, right click and select open file location. This should reveal a file ```method_receiver.so``` which is the shared object file to support the did_you_mean gem. This needs to be copied to the folder ```did_you_mean``` which you created in the ```gem .so folder```
B) ***ffi gem*** The shared object file in this case is called ```ffi_c.so``` It is copied to the ```gem .so folder```
use the left arrow in the window where the ```method_receiver.so``` file was found to return to the search screen, and amend the search. Search for ```ffi*.so```
IF you are using Ruby 2.2.* you will see several matches. Note that they are NOT all the same size. This is because this gem unfortunately builds with several versions of the file for different versions of Ruby. IT IS VERY IMPORTANT TO SELECT THE RIGHT ONE, which will be in a folder ```2.2``` Other versions which you DON'T want are in folders 1.8,1.9,2.0 and 2.1. Copy the correct version to
the ```gem .so folder``` If you are using Ruby 2.1.* the problem does not seem to arise, and although there are several matches to the search, they are all identical.
C) ***rugged gem*** The shared object file in this case is ```rugged.so``` It is copied to the ```gem .so folder```
use the left arrow in the window where the ```ffi_c.so``` file was found to return to the search screen, and amend the search. Search for ```rugged.so``` Select one of the matches and copy the file to the ```gem .so folder```
At the end of this copying process the ```gem .so folder ``` which is
```
c:\app\server\rb-native\windows\2.2.0\
```
(assuming you are using Ruby 2.2.*, or a path ending in 2.1.0 if using Ruby 2.1.*) will contain: ```ffi_c.so```, ```rugged.so``` and a folder named ```did_you_mean``` containing ```method_receiver.so```
(Note nothing needs to be copied with the win32-process gem)
That completes the ruby preparation work. Close the cmd and FileExplorer windows.
### Preparing the Qt GUI
From the **Start Button** select **All apps** and scroll down to **Visual Studio 2013**, and then to **Visual Studio Tools**. From the Window that opens **right click** **VS2013 x86 Native Tools Command Prompt** and **Pin it to the Taskbar**. **Double click it** there to open a window which should be titled **VS2013 x86 Native Tools Command Prompt**.
Type **path** in that window after the prompt and press the enter key.
You will see a long string of folder locations which comprise the path associated with the window, which it will automatically search. It includes links to the various elements of visual studio. However, we have to add one more item, which is the path of the Qt bin directory.
Since the Visual Studio prompt path is rebuilt each time a window is opened, I have found the convenient way to do this is to create a **batch file** which can be run each time to add the additional entry. Since I want to store this at the C:\ top level, we have to run the cmd window with administrative privileges to create it.
Close the open Visual Studio Command Prompt window, then reopen it, holding down **Shift** and **Ctrl** when you do so. Say **Yes** to the popup window, and you will then have a cmd window with admin privileges.
```
cd c:\
notepad
```
In the open notepad window type
```
PATH=%PATH%;C:\Qt\Qt5.5.1\5.5\msvc2013\bin
```
Then select **save** and save the file as ```pathupdate.bat```, at the top level of ```c:\``` Make sure you select **All Files** for the type so the extension can be set to **.bat** and NOT **.txt**
Close notepad and type ```dir``` (and press return) You should see the file ```pathupdate.bat``` listed.
Close the cmd window and double click the icon on the taskbar to reopen it with "normal" privileges.
```
cd c:\
pathupdate.bat
```
You should see the long path as before, but now with an additional entry ```C:\Qt\Qt5.5.1\5.5\msvc2013\bin``` at the end
Leave this window open.
Download **Qscintilla** from https://www.riverbankcomputing.com/software/qscintilla/download
Select the ```Qscintilla-gpl-2.9.1.zip``` file to download
When downloaded extract the ```Qscintilla-gpl-2.9.1``` folder to ```c:\```
Return to the visual studio command window.
```
cd c:\QScintilla-gpl-2.9.1\Qt4Qt5
qmake qscintilla.pro
nmake
```
(it will now be compiled)
```
nmake install
```
keep the cmd window open
copy ```Qt4Qt5\release\moc_qsciscintilla.cpp``` and ```moc_qsciscintillabase.cpp``` to
```c:\sonic-pi\app\gui\qt\platform\win``` (There may be two files there already, but overwrite them)
Best done using two FileExplorer windows as before.
Now we do the main build of Sonic-Pi gui, using the open cmd window.
```
cd c:\sonic-pi
.\app\gui\qt\win-build-app.bat
```
This should carry out the build. Don’t worry about various warnings en route.
We now add some files from visual studio which will be needed at run time.
Open two FileExplorer windows. In the first navigate to:
```Local Disk (C:)> Program Files (x86) > Microsoft Visual Studio 12.0 > VC > redist > x86 > Microsoft.VC120.CRT```
In the second to
```Local Disk (C:)> sonic-pi> app > gui > qt > release```
Copy msvcp120.dll and msvcr120.dll from the former to the latter.
In the second window navigate to **sonic-pi.exe** and **right-click** it to create a shortcut. Drag the shortcut to the desktop. Do NOT attempt to run it yet.
### The final stage deals with SuperCollider
Install SuperCollider from http://supercollider.github.io/download.html
Select the **Win32 3.6.6** installer and download it
Run the installer
Download additional SuperCollider plugins from
http://sourceforge.net/projects/sc3-plugins/files/sc3-plugins%20Windows/
Select the latest version link at the top of the page and download
```Looking for the latest version? Download sc3-plugins-3.6.0-win32.zip (10.3 MB)```
Extract them in the download folder.
We now copy files to the sonic-pi installation.
With two FileExplorer windows navigate the first to ```Local Disk (C:) >Program Files (x86) > SuperCollider```
And the second (destination) to ```Local Disk (C:)> sonic-pi > app > server > native > windows```
Copy the ```plugins``` folder from the former to the latter.
Copy all dll files **EXCEPT those starting with QT** from the former to the latter.
Copy ```scsynth.exe``` from the former to the latter.
Keep these windows open for the moment.
Open the ```sc3-plugins-3.6.0-win32``` folder in the Downloads folder and navigate to ```SC3-plugins```.
Copy all the *.scx files that folder into the ```plugins``` folder copied to destination folder in the previous step.
Close the open FileExplorer windows.
There is one final patch to install. The Ugen file associated with the Piano synth was updated in the summer, to eliminate a problem with the tuning. Unfortunately the current Ugen has NOT yet been updated for windows, and consequently we have to use a modified version of the MdaUgen. This can be downloaded from https://goo.gl/K316fw
Extract the contents and follow the instructions in the readme file. Basically you replace the file ```sonic-pi-piano.scsyndef``` in ```c:\sonic-pi\etc\synthdefs\compiled``` with the one downloaded in the patch.
(You may like to retain a copy of the original before overwriting it, or perhaps rename it to ```sonic-pi-piano.scsyndef.original```)
### Finished!
That should complete the installation of Sonic Pi.
Try running it by double clicking the Sonic Pi shortcut on the desktop.
Robin Newman, 17th December 2015
sonic-pi-2.9.0/app/ 0000775 0000000 0000000 00000000000 12641053014 0014017 5 ustar 00root root 0000000 0000000 sonic-pi-2.9.0/app/gui/ 0000775 0000000 0000000 00000000000 12641053014 0014603 5 ustar 00root root 0000000 0000000 sonic-pi-2.9.0/app/gui/qt/ 0000775 0000000 0000000 00000000000 12641053014 0015227 5 ustar 00root root 0000000 0000000 sonic-pi-2.9.0/app/gui/qt/README.md 0000664 0000000 0000000 00000000050 12641053014 0016501 0 ustar 00root root 0000000 0000000 # Qt App
This is the Qt Sonic Pi GUI.
sonic-pi-2.9.0/app/gui/qt/SonicPi.pro 0000664 0000000 0000000 00000006053 12641053014 0017321 0 ustar 00root root 0000000 0000000 #--
# This file is part of Sonic Pi: http://sonic-pi.net
# Full project source: https://github.com/samaaron/sonic-pi
# License: https://github.com/samaaron/sonic-pi/blob/master/LICENSE.md
#
# Copyright 2013, 2014 by Sam Aaron (http://sam.aaron.name).
# All rights reserved.
#
# Permission is granted for use, copying, modification, distribution,
# and distribution of modified versions of this work as long as this
# notice is included.
#++
#-------------------------------------------------
#
# Project created by QtCreator 2014-02-28T14:51:06
#
#-------------------------------------------------
# -- Change to match the location of QScintilla on your system
#
LIBS += -L/Users/sam/Downloads/tmp/QScintilla-gpl-2.9/Qt4Qt5 -lqscintilla2
INCLUDEPATH += /Users/sam/Downloads/tmp/QScintilla-gpl-2.9/Qt4Qt5
DEPENDPATH += /Users/sam/Downloads/tmp/QScintilla-gpl-2.9/Qt4Qt5
# --
QT += core gui concurrent network
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = 'sonic-pi'
macx {
TARGET = 'Sonic Pi'
QT += macextras
DEFINES += DONT_USE_OSX_KEYS
}
!win32 {
QMAKE_CXXFLAGS += -Wall -Werror -Wextra
}
win32 {
QMAKE_CXXFLAGS += /WX
DEFINES += _CRT_SECURE_NO_WARNINGS _WINSOCK_DEPRECATED_NO_WARNINGS
}
CODECFORSRC = UTF-8
CODECFORTR = UTF-8
TEMPLATE = app
SOURCES += main.cpp \
mainwindow.cpp \
sonicpilexer.cpp \
sonicpiapis.cpp \
sonicpiscintilla.cpp \
oschandler.cpp \
sonicpilog.cpp \
sonicpiserver.cpp \
sonicpiudpserver.cpp \
sonicpitcpserver.cpp \
sonicpitheme.cpp
win32 {
# have to link these explicitly for some reason
SOURCES += platform/win/moc_qsciscintilla.cpp \
platform/win/moc_qsciscintillabase.cpp
}
HEADERS += mainwindow.h \
oscpkt.hh \
udp.hh \
sonicpilexer.h \
sonicpilog.h \
sonicpiapis.h \
sonicpiscintilla.h \
oschandler.h \
sonicpiserver.h \
sonicpiudpserver.h \
ruby_help.h \
sonicpitcpserver.h \
sonicpitheme.h
TRANSLATIONS = lang/sonic-pi_de.ts \
lang/sonic-pi_is.ts \
lang/sonic-pi_ja.ts \
lang/sonic-pi_nb.ts \
lang/sonic-pi_pl.ts \
lang/sonic-pi_fr.ts \
lang/sonic-pi_es.ts \
lang/sonic-pi_hu.ts
OTHER_FILES += \
images/copy.png \
images/cut.png \
images/new.png \
images/save.png \
images/rec.png \
images/recording_a.png \
images/recording_b.png \
RESOURCES += \
SonicPi.qrc \
help_files.qrc \
info_files.qrc
RC_FILE = SonicPi.rc
ICON = images/app.icns
LIBS += -lqscintilla2
win32 {
install_qsci.files = $$[QT_INSTALL_LIBS]\qscintilla2.dll
install_qsci.path = release
install_bat.files = sonic-pi.bat
install_bat.path = ..\..\..
INSTALLS += install_qsci install_bat
# allow to run on XP
QMAKE_SUBSYSTEM_SUFFIX = ,5.01
}
# not unicode ready
win32 {
DEFINES -= UNICODE
DEFINES += _MBCS
DEFINES += NOMINMAX
}
sonic-pi-2.9.0/app/gui/qt/SonicPi.qrc 0000664 0000000 0000000 00000006116 12641053014 0017306 0 ustar 00root root 0000000 0000000
images/app.icns
images/help.png
images/info.png
images/prefs.png
images/run.png
images/save.png
images/stop.png
images/rec.png
images/recording_a.png
images/recording_b.png
images/text-dec.png
images/text-inc.png
images/align.png
images/size_down.png
images/size_up.png
images/splash@2x.png
images/splash.png
images/icon.png
images/icon-smaller.png
images/logo.png
images/logo-smaller.png
images/logo-smaller-dark.png
images/logo.txt
images/tutorial/sample.png
images/tutorial/env-attack-release.png
images/tutorial/env-attack-decay-sustain-release.png
images/tutorial/env-attack-sustain-release.png
images/tutorial/env-long-attack-short-release.png
images/tutorial/env-release.png
images/tutorial/env-short-attack-short-release.png
images/tutorial/env-decay-level.png
images/tutorial/env-decay-level-2.png
images/tutorial/GUI.png
images/tutorial/articles/A.05-acid-bass/tb303-design.png
images/tutorial/articles/A.06-minecraft/Musical-Minecraft-0-small.png
images/tutorial/articles/A.06-minecraft/Musical-Minecraft-1-small.png
images/tutorial/articles/A.06-minecraft/Musical-Minecraft-2-small.png
images/tutorial/articles/A.07-bizet/habanera.png
images/tutorial/articles/A.07-bizet/notes.png
images/tutorial/articles/A.07-bizet/habanera2.png
images/tutorial/articles/A.08-minecraft-vj/minecraft-vj-0-small.png
images/tutorial/articles/A.08-minecraft-vj/minecraft-vj-1-small.png
images/tutorial/articles/A.02-live-coding/sam-aaron-live-coding.png
images/coreteam/samaaron.png
images/coreteam/josephwilk.png
images/coreteam/xavierriley.png
images/coreteam/jweather.png
html/doc.html
html/info.html
html/startup.html
theme/light/doc-styles.css
theme/dark/doc-styles.css
lang/sonic-pi_de.qm
lang/sonic-pi_is.qm
lang/sonic-pi_ja.qm
lang/sonic-pi_nb.qm
lang/sonic-pi_pl.qm
lang/sonic-pi_fr.qm
lang/sonic-pi_es.qm
lang/sonic-pi_hu.qm
sonic-pi-2.9.0/app/gui/qt/SonicPi.rc 0000664 0000000 0000000 00000000055 12641053014 0017121 0 ustar 00root root 0000000 0000000 IDI_ICON1 ICON DISCARDABLE "images/icon.ico"
sonic-pi-2.9.0/app/gui/qt/api_list.h 0000664 0000000 0000000 00000004025 12641053014 0017205 0 ustar 00root root 0000000 0000000 //--
// This file is part of Sonic Pi: http://sonic-pi.net
// Full project source: https://github.com/samaaron/sonic-pi
// License: https://github.com/samaaron/sonic-pi/blob/master/LICENSE.md
//
// Copyright 2013, 2014, 2015 by Sam Aaron (http://sam.aaron.name).
// All rights reserved.
//
// Permission is granted for use, copying, modification, and
// distribution of modified versions of this work as long as this
// notice is included.
//++
api_names <<
"drum_heavy_kick" <<
"drum_tom_mid_soft" <<
"drum_tom_mid_hard" <<
"drum_tom_lo_soft" <<
"drum_tom_lo_hard" <<
"drum_tom_hi_soft" <<
"drum_tom_hi_hard" <<
"drum_splash_soft" <<
"drum_splash_hard" <<
"drum_snare_soft" <<
"drum_snare_hard" <<
"drum_cymbal_soft" <<
"drum_cymbal_hard" <<
"drum_cymbal_open" <<
"drum_cymbal_closed" <<
"drum_cymbal_pedal" <<
"drum_bass_soft" <<
"drum_bass_hard" <<
"elec_triangle" <<
"elec_snare" <<
"elec_lo_snare" <<
"elec_mid_snare" <<
"elec_hi_snare" <<
"elec_cymbal" <<
"elec_soft_kick" <<
"elec_filt_snare" <<
"elec_fuzz_tom" <<
"elec_chime" <<
"elec_bong" <<
"elec_twang" <<
"elec_wood" <<
"elec_pop" <<
"elec_beep" <<
"elec_blip" <<
"elec_blip2" <<
"elec_ping" <<
"elec_bell" <<
"elec_flip" <<
"elec_tick" <<
"elec_hollow_kick" <<
"elec_twip" <<
"elec_plip" <<
"elec_blup" <<
"guit_harmonics" <<
"guit_e_fifths" <<
"guit_e_slide" <<
"misc_burp" <<
"perc_bell" <<
"ambi_soft_buzz" <<
"ambi_swoosh" <<
"ambi_drone" <<
"ambi_glass_hum" <<
"ambi_glass_rub" <<
"ambi_haunted_hum" <<
"ambi_piano" <<
"ambi_lunar_land" <<
"ambi_dark_woosh" <<
"ambi_choir" <<
"bass_hit_c" <<
"bass_hard_c" <<
"bass_thick_c" <<
"bass_drop_c" <<
"bass_woodsy_c" <<
"bass_voxy_c" <<
"bass_voxy_hit_c" <<
"bass_dnb_f" <<
"loop_industrial" <<
"loop_compus" <<
"loop_amen" <<
"loop_amen_full" <<
"with_fx" <<
"with_synth" <<
"with_debug" <<
"with_arg_checks" <<
"with_merged_synth_defaults" <<
"with_synth_defaults" <<
"with_sample_pack";
sonic-pi-2.9.0/app/gui/qt/create-pdf 0000775 0000000 0000000 00000000730 12641053014 0017167 0 ustar 00root root 0000000 0000000 #!/bin/bash
command -v wkhtmltopdf >/dev/null 2>&1 || { echo "This script requires wkhtmltopdf, but it's not installed. Aborting."; exit 1; }
# On Ubuntu, install the binary from http://wkhtmltopdf.org/downloads.html
# or --enable-internal-links will not work
mkdir pdf 2> /dev/null
rm pdf/* 2> /dev/null
for F in book/*.html
do
PDF=${F/book\//pdf\/}
PDF=${PDF/\.html/\.pdf}
echo $PDF
wkhtmltopdf \
--enable-internal-links \
"$F" \
"$PDF"
done
sonic-pi-2.9.0/app/gui/qt/html/ 0000775 0000000 0000000 00000000000 12641053014 0016173 5 ustar 00root root 0000000 0000000 sonic-pi-2.9.0/app/gui/qt/html/doc.html 0000664 0000000 0000000 00000001023 12641053014 0017622 0 ustar 00root root 0000000 0000000
_____ __ ____ __
/ ___/____ ____ /_/____ / __ \/_/
\__ \/ __ \/ __ \/ / ___/ / /_/ / /
___/ / /_/ / / / / / /__ / ____/ /
/____/\____/_/ /_/_/\___/ /_/ /_/
music_as :code
code_as :art
v2.9
sonic-pi-2.9.0/app/gui/qt/html/info.html 0000664 0000000 0000000 00000001336 12641053014 0020017 0 ustar 00root root 0000000 0000000
The Live Coding Synth for Everyone
Designed and crafted by Sam Aaron
in Cambridge, England
http://sonic-pi.net
For the latest updates follow
@sonic_pi
music_as :code
code_as :art
v2.9
sonic-pi-2.9.0/app/gui/qt/html/startup.html 0000664 0000000 0000000 00000001307 12641053014 0020564 0 ustar 00root root 0000000 0000000
Welcome!
This is Sonic Pi
the live coding music environment
To get started please follow the
tutorial in the help system below
(which you can always access via the Help button)
and remember...
with live coding
there are no mistakes
only opportunities
Have fun and share your code
for others to jam with
sonic-pi-2.9.0/app/gui/qt/image_source/ 0000775 0000000 0000000 00000000000 12641053014 0017671 5 ustar 00root root 0000000 0000000 sonic-pi-2.9.0/app/gui/qt/image_source/ADSR envelopes.graffle 0000664 0000000 0000000 00000134727 12641053014 0023751 0 ustar 00root root 0000000 0000000
ActiveLayerIndex
0
ApplicationVersion
com.omnigroup.OmniGrafflePro
139.18.0.187838
AutoAdjust
BackgroundGraphic
Bounds
{{0, 0}, {559, 1566}}
Class
SolidGraphic
FontInfo
Font
Helvetica
Size
13
ID
2
Style
shadow
Draws
NO
stroke
Draws
NO
BaseZoom
0
CanvasOrigin
{0, 0}
ColumnAlign
1
ColumnSpacing
36
CreationDate
2014-08-31 21:22:51 +0000
Creator
Samuel Aaron
DisplayScale
1 0/72 in = 1.0000 in
GraphDocumentVersion
8
GraphicsList
Bounds
{{229.5, 207}, {34, 14}}
Class
ShapedGraphic
FitText
YES
Flow
Resize
ID
125
Shape
Rectangle
Style
fill
Draws
NO
shadow
Draws
NO
stroke
Draws
NO
Text
Pad
0
Text
{\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf210
\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset0 HelveticaNeue-Light;}
{\colortbl;\red255\green255\blue255;\red76\green76\blue76;}
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
\f0\fs22 \cf2 release}
VerticalPad
0
Wrap
NO
Class
LineGraphic
ID
124
Points
{423, 198}
{108, 198}
Style
stroke
Color
b
0.501961
g
0.501961
r
0.501961
HeadArrow
FilledArrow
Legacy
TailArrow
FilledArrow
Class
LineGraphic
ID
121
Points
{108, 189}
{108, 117}
{423, 189}
Style
stroke
Color
b
0.501961
g
0
r
1
HeadArrow
0
Legacy
TailArrow
0
Width
6
Class
LineGraphic
ID
118
Points
{423, 639}
{360, 639}
Style
stroke
Color
b
1
g
1
r
1
HeadArrow
FilledArrow
Legacy
TailArrow
FilledArrow
Class
LineGraphic
Head
ID
115
Info
1
ID
117
Points
{162, 558}
{162, 639}
Style
stroke
Color
b
0.501961
g
0.501961
r
0.501961
HeadArrow
0
Legacy
Pattern
1
TailArrow
0
Tail
ID
112
Info
1
Bounds
{{175.5, 648}, {34, 14}}
Class
ShapedGraphic
FitText
YES
Flow
Resize
ID
116
Shape
Rectangle
Style
fill
Draws
NO
shadow
Draws
NO
stroke
Draws
NO
Text
Pad
0
Text
{\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf210
\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset0 HelveticaNeue-Light;}
{\colortbl;\red255\green255\blue255;\red76\green76\blue76;}
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
\f0\fs22 \cf2 release}
VerticalPad
0
Wrap
NO
Class
LineGraphic
ID
115
Points
{216, 639}
{162, 639}
Style
stroke
Color
b
0.501961
g
0.501961
r
0.501961
HeadArrow
FilledArrow
Legacy
TailArrow
FilledArrow
Bounds
{{123, 648}, {30, 14}}
Class
ShapedGraphic
FitText
YES
Flow
Resize
ID
114
Shape
Rectangle
Style
fill
Draws
NO
shadow
Draws
NO
stroke
Draws
NO
Text
Pad
0
Text
{\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf210
\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset0 HelveticaNeue-Light;}
{\colortbl;\red255\green255\blue255;\red76\green76\blue76;}
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
\f0\fs22 \cf2 attack}
VerticalPad
0
Wrap
NO
Class
LineGraphic
ID
113
Points
{162, 639}
{108, 639}
Style
stroke
Color
b
0.501961
g
0.501961
r
0.501961
HeadArrow
FilledArrow
Legacy
TailArrow
FilledArrow
Class
LineGraphic
ID
112
Points
{108, 630}
{162, 558}
{216, 630}
Style
stroke
Color
b
0.501961
g
0
r
1
HeadArrow
0
Legacy
TailArrow
0
Width
6
Class
LineGraphic
ID
109
Points
{270, 702}
{270, 783}
Style
stroke
Color
b
0.501961
g
0.501961
r
0.501961
HeadArrow
0
Legacy
Pattern
1
TailArrow
0
Class
LineGraphic
Head
ID
64
ID
108
Points
{189, 270}
{189, 351}
Style
stroke
Color
b
0.501961
g
0.501961
r
0.501961
HeadArrow
0
Legacy
Pattern
1
TailArrow
0
Tail
ID
61
Info
1
Class
LineGraphic
Head
ID
85
ID
107
Points
{360, 423}
{360, 504}
Style
stroke
Color
b
0.501961
g
0.501961
r
0.501961
HeadArrow
0
Legacy
Pattern
1
TailArrow
0
Tail
ID
84
Info
1
Bounds
{{337.5, 792}, {34, 14}}
Class
ShapedGraphic
FitText
YES
Flow
Resize
ID
105
Shape
Rectangle
Style
fill
Draws
NO
shadow
Draws
NO
stroke
Draws
NO
Text
Pad
0
Text
{\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf210
\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset0 HelveticaNeue-Light;}
{\colortbl;\red255\green255\blue255;\red76\green76\blue76;}
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
\f0\fs22 \cf2 release}
VerticalPad
0
Wrap
NO
Bounds
{{193.5, 792}, {34, 14}}
Class
ShapedGraphic
FitText
YES
Flow
Resize
ID
104
Shape
Rectangle
Style
fill
Draws
NO
shadow
Draws
NO
stroke
Draws
NO
Text
Pad
0
Text
{\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf210
\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset0 HelveticaNeue-Light;}
{\colortbl;\red255\green255\blue255;\red76\green76\blue76;}
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
\f0\fs22 \cf2 sustain}
VerticalPad
0
Wrap
NO
Class
LineGraphic
Head
ID
109
Info
1
ID
102
Points
{423, 783}
{270, 783}
Style
stroke
Color
b
0.501961
g
0.501961
r
0.501961
HeadArrow
FilledArrow
Legacy
TailArrow
FilledArrow
Class
LineGraphic
Head
ID
93
ID
100
Points
{153, 702}
{153, 783}
Style
stroke
Color
b
0.501961
g
0.501961
r
0.501961
HeadArrow
0
Legacy
Pattern
1
TailArrow
0
Class
LineGraphic
ID
98
Points
{270, 783}
{153, 783}
Style
stroke
Color
b
0.501961
g
0.501961
r
0.501961
HeadArrow
FilledArrow
Legacy
TailArrow
FilledArrow
Tail
ID
109
Info
1
Bounds
{{114, 792}, {30, 14}}
Class
ShapedGraphic
FitText
YES
Flow
Resize
ID
94
Shape
Rectangle
Style
fill
Draws
NO
shadow
Draws
NO
stroke
Draws
NO
Text
Pad
0
Text
{\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf210
\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset0 HelveticaNeue-Light;}
{\colortbl;\red255\green255\blue255;\red76\green76\blue76;}
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
\f0\fs22 \cf2 attack}
VerticalPad
0
Wrap
NO
Class
LineGraphic
ID
93
Points
{153, 783}
{108, 783}
Style
stroke
Color
b
0.501961
g
0.501961
r
0.501961
HeadArrow
FilledArrow
Legacy
TailArrow
FilledArrow
Class
LineGraphic
ID
90
Points
{108, 774}
{153, 702}
{270, 702}
{423, 774}
Style
stroke
Color
b
0.501961
g
0
r
1
HeadArrow
0
Legacy
TailArrow
0
Width
6
Bounds
{{373.5, 513}, {34, 14}}
Class
ShapedGraphic
FitText
YES
Flow
Resize
ID
88
Shape
Rectangle
Style
fill
Draws
NO
shadow
Draws
NO
stroke
Draws
NO
Text
Pad
0
Text
{\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf210
\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset0 HelveticaNeue-Light;}
{\colortbl;\red255\green255\blue255;\red76\green76\blue76;}
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
\f0\fs22 \cf2 release}
VerticalPad
0
Wrap
NO
Class
LineGraphic
ID
87
Points
{423, 504}
{360, 504}
Style
stroke
Color
b
0.501961
g
0.501961
r
0.501961
HeadArrow
FilledArrow
Legacy
TailArrow
FilledArrow
Bounds
{{213, 513}, {30, 14}}
Class
ShapedGraphic
FitText
YES
Flow
Resize
ID
86
Shape
Rectangle
Style
fill
Draws
NO
shadow
Draws
NO
stroke
Draws
NO
Text
Pad
0
Text
{\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf210
\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset0 HelveticaNeue-Light;}
{\colortbl;\red255\green255\blue255;\red76\green76\blue76;}
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
\f0\fs22 \cf2 attack}
VerticalPad
0
Wrap
NO
Class
LineGraphic
ID
85
Points
{360, 504}
{108, 504}
Style
stroke
Color
b
0.501961
g
0.501961
r
0.501961
HeadArrow
FilledArrow
Legacy
TailArrow
FilledArrow
Class
LineGraphic
ID
84
Points
{108, 495}
{360, 423}
{423, 495}
Style
stroke
Color
b
0.501961
g
0
r
1
HeadArrow
0
Legacy
TailArrow
0
Width
6
Bounds
{{274.5, 360}, {34, 14}}
Class
ShapedGraphic
FitText
YES
Flow
Resize
ID
76
Shape
Rectangle
Style
fill
Draws
NO
shadow
Draws
NO
stroke
Draws
NO
Text
Pad
0
Text
{\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf210
\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset0 HelveticaNeue-Light;}
{\colortbl;\red255\green255\blue255;\red76\green76\blue76;}
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
\f0\fs22 \cf2 release}
VerticalPad
0
Wrap
NO
Class
LineGraphic
ID
73
Points
{459, 351}
{189, 351}
Style
stroke
Color
b
0.501961
g
0.501961
r
0.501961
HeadArrow
FilledArrow
Legacy
TailArrow
FilledArrow
Bounds
{{150, 360}, {30, 14}}
Class
ShapedGraphic
FitText
YES
Flow
Resize
ID
65
Shape
Rectangle
Style
fill
Draws
NO
shadow
Draws
NO
stroke
Draws
NO
Text
Pad
0
Text
{\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf210
\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset0 HelveticaNeue-Light;}
{\colortbl;\red255\green255\blue255;\red76\green76\blue76;}
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
\f0\fs22 \cf2 attack}
VerticalPad
0
Wrap
NO
Class
LineGraphic
ID
64
Points
{189, 351}
{144, 351}
Style
stroke
Color
b
0.501961
g
0.501961
r
0.501961
HeadArrow
FilledArrow
Legacy
TailArrow
FilledArrow
Class
LineGraphic
ID
61
Points
{144, 342}
{189, 270}
{316, 306}
{459, 342}
Style
stroke
Color
b
0.501961
g
0
r
1
HeadArrow
0
Legacy
TailArrow
0
Width
6
Bounds
{{412.5, 945}, {7, 14}}
Class
ShapedGraphic
FitText
YES
Flow
Resize
ID
43
Shape
Rectangle
Style
fill
Draws
NO
shadow
Draws
NO
stroke
Draws
NO
Text
Pad
0
Text
{\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf210
\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset0 HelveticaNeue-Light;}
{\colortbl;\red255\green255\blue255;\red76\green76\blue76;}
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
\f0\fs22 \cf2 0}
VerticalPad
0
Wrap
NO
Bounds
{{319.5, 972}, {34, 14}}
Class
ShapedGraphic
FitText
YES
Flow
Resize
ID
39
Shape
Rectangle
Style
fill
Draws
NO
shadow
Draws
NO
stroke
Draws
NO
Text
Pad
0
Text
{\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf210
\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset0 HelveticaNeue-Light;}
{\colortbl;\red255\green255\blue255;\red76\green76\blue76;}
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
\f0\fs22 \cf2 release}
VerticalPad
0
Wrap
NO
Bounds
{{211.5, 972}, {34, 14}}
Class
ShapedGraphic
FitText
YES
Flow
Resize
ID
38
Shape
Rectangle
Style
fill
Draws
NO
shadow
Draws
NO
stroke
Draws
NO
Text
Pad
0
Text
{\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf210
\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset0 HelveticaNeue-Light;}
{\colortbl;\red255\green255\blue255;\red76\green76\blue76;}
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
\f0\fs22 \cf2 sustain}
VerticalPad
0
Wrap
NO
Bounds
{{150.5, 972}, {29, 14}}
Class
ShapedGraphic
FitText
YES
Flow
Resize
ID
37
Shape
Rectangle
Style
fill
Draws
NO
shadow
Draws
NO
stroke
Draws
NO
Text
Pad
0
Text
{\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf210
\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset0 HelveticaNeue-Light;}
{\colortbl;\red255\green255\blue255;\red76\green76\blue76;}
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
\f0\fs22 \cf2 decay}
VerticalPad
0
Wrap
NO
Class
LineGraphic
ID
36
Points
{405, 963}
{261, 963}
Style
stroke
Color
b
0.501961
g
0.501961
r
0.501961
HeadArrow
FilledArrow
Legacy
TailArrow
FilledArrow
Class
LineGraphic
Head
ID
32
ID
35
Points
{262, 918}
{262, 963}
Style
stroke
Color
b
0.501961
g
0.501961
r
0.501961
HeadArrow
0
Legacy
Pattern
1
TailArrow
0
Tail
ID
20
Info
3
Class
LineGraphic
Head
ID
32
Info
1
ID
34
Points
{189, 918}
{189, 963}
Style
stroke
Color
b
0.501961
g
0.501961
r
0.501961
HeadArrow
0
Legacy
Pattern
1
TailArrow
0
Class
LineGraphic
Head
ID
31
Info
1
ID
33
Points
{135, 882}
{135, 963}
Style
stroke
Color
b
0.501961
g
0.501961
r
0.501961
HeadArrow
0
Legacy
Pattern
1
TailArrow
0
Tail
ID
20
Info
1
Class
LineGraphic
ID
32
Points
{262, 963}
{189, 963}
Style
stroke
Color
b
0.501961
g
0.501961
r
0.501961
HeadArrow
FilledArrow
Legacy
TailArrow
FilledArrow
Class
LineGraphic
ID
31
Points
{189, 963}
{135, 963}
Style
stroke
Color
b
0.501961
g
0.501961
r
0.501961
HeadArrow
FilledArrow
Legacy
TailArrow
FilledArrow
Class
LineGraphic
Head
ID
20
Info
3
ID
30
Points
{396, 918}
{262, 918}
Style
stroke
Color
b
0.501961
g
0.501961
r
0.501961
HeadArrow
0
Legacy
Pattern
1
TailArrow
0
Bounds
{{405, 909}, {58, 14}}
Class
ShapedGraphic
FitText
YES
Flow
Resize
ID
29
Shape
Rectangle
Style
fill
Draws
NO
shadow
Draws
NO
stroke
Draws
NO
Text
Pad
0
Text
{\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf210
\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset0 HelveticaNeue-Light;}
{\colortbl;\red255\green255\blue255;\red76\green76\blue76;}
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
\f0\fs22 \cf2 sustain level}
VerticalPad
0
Wrap
NO
Bounds
{{96, 972}, {30, 14}}
Class
ShapedGraphic
FitText
YES
Flow
Resize
ID
27
Shape
Rectangle
Style
fill
Draws
NO
shadow
Draws
NO
stroke
Draws
NO
Text
Pad
0
Text
{\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf210
\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset0 HelveticaNeue-Light;}
{\colortbl;\red255\green255\blue255;\red76\green76\blue76;}
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
\f0\fs22 \cf2 attack}
VerticalPad
0
Wrap
NO
Class
LineGraphic
ID
26
Points
{135, 963}
{90, 963}
Style
stroke
Color
b
0.501961
g
0.501961
r
0.501961
HeadArrow
FilledArrow
Legacy
TailArrow
FilledArrow
Bounds
{{405, 873}, {53, 14}}
Class
ShapedGraphic
FitText
YES
Flow
Resize
ID
25
Shape
Rectangle
Style
fill
Draws
NO
shadow
Draws
NO
stroke
Draws
NO
Text
Pad
0
Text
{\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf210
\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset0 HelveticaNeue-Light;}
{\colortbl;\red255\green255\blue255;\red76\green76\blue76;}
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
\f0\fs22 \cf2 attack level}
VerticalPad
0
Wrap
NO
Class
LineGraphic
ID
22
Points
{396, 882}
{135, 882}
Style
stroke
Color
b
0.501961
g
0.501961
r
0.501961
HeadArrow
0
Legacy
Pattern
1
TailArrow
0
Class
LineGraphic
ID
20
Points
{90, 954}
{135, 882}
{189, 918}
{262, 918}
{405, 954}
Style
stroke
Color
b
0.501961
g
0
r
1
HeadArrow
0
Legacy
TailArrow
0
Width
6
GridInfo
ShowsGrid
YES
SnapsToGrid
YES
GuidesLocked
NO
GuidesVisible
YES
HPages
1
ImageCounter
1
KeepToScale
Layers
Lock
NO
Name
Layer 1
Print
YES
View
YES
LayoutInfo
Animate
NO
circoMinDist
18
circoSeparation
0.0
layoutEngine
dot
neatoSeparation
0.0
twopiSeparation
0.0
LinksVisible
NO
MagnetsVisible
NO
MasterSheets
ModificationDate
2014-08-31 22:55:14 +0000
Modifier
Samuel Aaron
NotesVisible
NO
Orientation
2
OriginVisible
NO
PageBreaks
YES
PrintInfo
NSBottomMargin
float
41
NSHorizonalPagination
coded
BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG
NSLeftMargin
float
18
NSPaperSize
size
{595, 842}
NSPrintReverseOrientation
int
0
NSRightMargin
float
18
NSTopMargin
float
18
PrintOnePage
ReadOnly
NO
RowAlign
1
RowSpacing
36
SheetTitle
Canvas 1
SmartAlignmentGuidesActive
YES
SmartDistanceGuidesActive
YES
UniqueID
1
UseEntirePage
VPages
2
WindowInfo
CurrentSheet
0
ExpandedCanvases
name
Canvas 1
Frame
{{352, 99}, {1132, 867}}
ListView
OutlineWidth
142
RightSidebar
ShowRuler
Sidebar
SidebarWidth
120
VisibleRegion
{{38.75, 163.75}, {498.5, 364}}
Zoom
2
ZoomValues
Canvas 1
2
4
sonic-pi-2.9.0/app/gui/qt/image_source/GUI.pxm 0000664 0000000 0000000 00005213734 12641053014 0021062 0 ustar 00root root 0000000 0000000 PXMDMETA bplist00X$versionX$objectsY$archiverT$top C/0123456789:;<=>?@ABCDEHOPgkorux{~U$null
.WNS.keysZNS.objectsV$class
!"#$%&'(!*#,-12345B_3PTImageIOFormatBasicMetaBitsPerComponentInfoInfoKey_+PTImageIOFormatBasicMetaDocumentSizeInfoKey_.PTImageIOFormatBasicMetaResolutionUnitsInfoKey_/PTImageIOFormatBasicMetaGroupLayersCountInfoKey_-PTImageIOFormatBasicMetaColorspaceNameInfoKey_0PTImageIOFormatBasicMetaBitmapLayersCountInfoKey_'PTImageIOFormatBasicMetaKeywordsInfoKey_)PTImageIOFormatBasicMetaDataAmountInfoKey_)PTImageIOFormatBasicMetaLayerNamesInfoKey_0PTImageIOFormatBasicMetaVectorLayersCountInfoKey_.PTImageIOFormatBasicMetaTextLayersCountInfoKey_.PTImageIOFormatBasicMetaLayerMasksCountInfoKey_1PTImageIOFormatBasicMetaNumberOfComponentsInfoKey_.PTImageIOFormatBasicMetaColorspaceModelInfoKey_)PTImageIOFormatBasicMetaResolutionInfoKey_&PTImageIOFormatBasicMetaVersionInfoKey[{1200, 900} [Generic RGB
FGIJKLZ$classnameX$classes^NSMutableArrayKMNWNSArrayXNSObject
QGRSTUVWXYZ[\]^_`abcde !"#$%&'()*+,-./0hijYNS.stringXA copy 4IJlm_NSMutableStringlnNXNSStringhiqXA copy 2hitXA copy 1hiwVA copyhizQAhi}_Code Window copy 1hi\Shape copy 1hiXA copy 3hi_Code Window copyhiZShape copyhi_Code Window copy 2hi\Shape copy 4hi_Code Window copy 1hi\Shape copy 3hi_Code Window copyhi\Shape copy 2hi\Code EditorhiUShapehiTTexthi_Background Layer
#@b
.6789:;?6@AB_PTImageIOPlatformMacOS_%PTImageIOFormatDocumentVersionInfoKey_-PTImageIOFormatDocumentSavedOnPlatformInfoKey_1PTImageIOFormatDocumentSavedWithAppVersionInfoKey_5PTImageIOFormatDocumentMinimumSupportedVersionInfoKey
ġ<À=>_7PTImageIOFormatDocumentRequiresMinimumAppVersionInfoKeyU3.1.1IJ\NSDictionaryNU1.5.1S3.3S1.5IJ_NSMutableDictionaryN_NSKeyedArchiverTroot # - 2 7 }
Bp6`M %',-/4?HW[clqv
#(*,13HMO\aclqs).0=BDJOQV[]prtvM*-2 4PK a
document/infoSQLite format 3 @ -
C
!!ktablelayer_infolayer_infoCREATE TABLE layer_info (layer_uuid TEXT, name TEXT, value BLOB, UNIQUE (layer_uuid, name) ON CONFLICT REPLACE)3G! indexsqlite_autoindex_layer_info_1layer_info))Stabledocument_layerdocument_layerCREATE TABLE document_layer (layer_uuid TEXT, parent_uuid TEXT, index_at_parent INTEGER, type TEXT)|''7tabledocument_infodocument_infoCREATE TABLE document_info (name TEXT, value BLOB, UNIQUE (name) ON CONFLICT REPLACE)9M' indexsqlite_autoindex_document_info_1document_info
o 2iPTImageIOFormatDocumentBitsPerComponentInfoKey8\MPTImageIOFormatDocumentIDInfoKeyAE175EF8-9033-4A72-A9D1-044226ABFC0F-370-0000515B3794633DYdPTImageIOFormatDocumentKeywordsInfoKeybplist00X$versionX$objectsY$archiverT$top
U$null
ZNS.objectsV$classZ$classnameX$classes^NSMutableArrayWNSArrayXNSObject_NSKeyedArchiverTroot#-27;AFQXY[`kt _ejPTImageIOFormatDocumentSelectedLayersInfoKeybplist00X$versionX$objectsY$archiverT$top U$null
ZNS.objectsV$class_:Layer-3C0831AA-E71F-44A5-9362-C573995818AC-20141119-172347Z$classnameX$classes^NSMutableArrayWNSArrayXNSObject_NSKeyedArchiverTroot#-27