Skip to content

Instantly share code, notes, and snippets.

@tildebyte
Last active May 20, 2018 02:24
Show Gist options
  • Save tildebyte/e8cf1a0a47638527c2cfc09e8a43f2ce to your computer and use it in GitHub Desktop.
Save tildebyte/e8cf1a0a47638527c2cfc09e8a43f2ce to your computer and use it in GitHub Desktop.
Sonic-Pi stuff
body {
font-family: HelveticaNeue-Light, Helvetica Neue Light, Helvetica Neue, Liberation Sans;
font-size: large;
color: #657b83;
background-color: #002b36;
}
ul.toc {
list-style-type: none;
}
a {
color: #b58900;
text-decoration: none;
}
em {
color: #cb4b16;
}
.asciilogo {
font-size: large;
color: #808080;
}
.highlight {
color: #073642;
}
.error_description {
font-size: large;
background-color: #586e75;
color: #dc322f;
}
.syntax_error_description {
font-size: large;
background-color: #268bd2;
color: #dc322f;
}
.backtrace {
font-size: small;
color: #dc322f;
}
.error_msg {
font-size: large;
color: #dc322f;
}
.error_line {
font-size: large;
color: #dc322f;
}
.error_msg {
font-size: large;
color: #dc322f;
}
pre {
font-family: "Fira Code", "Hack", "Menlo", "Bitstream Vera Sans Mono", "DejaVu Sans Mono", "Liberation Mono", "DroidSansMono", "Lucida Console", Consolas, Terminal, Monaco, "Courier New", monospace;
}
code {
font-family: "Fira Code", "Hack", "Courier New", "Menlo", "Bitstream Vera Sans Mono", "DejaVu Sans Mono", "Liberation Mono", "DroidSansMono", "Lucida Console", Consolas, Terminal, Monaco, "Courier New", monospace;
color: #93a1a1;
font-size: large;
}
code .symbol {
color: #93a1a1;
}
code .number {
color: #268bd2;
}
code .keyword {
color: #cb4b16;
}
code .info {
color: #586e75;
}
.version {
font-size: small;
}
.strapline {
font-size: large;
}
.usage {
color: #657b83;
}
.usage code {
font-size: large;
color: #93a1a1;
background-color: #073642;
}
h1 {
font-size: large;
font-weight: bold;
padding: 2px;
color: #073642;
background-color: #586e75;
}
h2 {
font-size: large;
font-weight: bold;
padding: 2px;
color: #073642;
background-color: #268bd2;
}
body.info {
font-family: "Fira Code", "Hack", "Menlo", "Bitstream Vera Sans Mono", "DejaVu Sans Mono", "Liberation Mono", "DroidSansMono", "Lucida Console", Consolas, Terminal, Monaco, "Courier New", monospace;
}
body.info a {
color: #586e75;
}
body.example code {
font-size: large;
color: #586e75;
}
body.manual .introduced {
color: #cb4b16;
font-size: large;
}
body.manual table.arguments td {
font-size: large;
padding: 2px;
font-family: "Fira Code", "Hack", "Menlo", "Bitstream Vera Sans Mono", "DejaVu Sans Mono", "Liberation Mono", "DroidSansMono", "Lucida Console", Consolas, Terminal, Monaco, "Courier New", monospace;
}
body.manual table.arguments td.odd,
body.manual table.arguments td.odd a {
background-color: #073642;
color: #839496;
}
body.manual table.arguments td.even,
body.manual table.arguments td.even a {
background-color: #586e75;
color: #839496;
}
body.manual table.details td {
padding: 8px;
}
body.manual table.details td.key {
font-family: "Fira Code", "Hack", "Menlo", "Bitstream Vera Sans Mono", "DejaVu Sans Mono", "Liberation Mono", "DroidSansMono", "Lucida Console", Consolas, Terminal, Monaco, "Courier New", monospace;
font-size: large;
color: #839496;
}
body.manual table.details td.odd {
background-color: #586e75;
color: #839496;
}
body.manual table.details td.even {
background-color: #073642;
color: #839496;
}
body.manual table.details td.odd.key {
background-color: #073642;
color: #839496;
}
body.manual table.details td.even.key {
background-color: #586e75;
color: #839496;
}
body.manual table.details .properties {
font-size: large;
font-style: italic;
}
body.manual table.examples td {
padding: 8px;
}
body.manual table.examples code {
color: #839496;
font-size: large;
}
body.manual table.examples td.odd {
background-color: #073642;
}
body.manual table.examples td.even {
background-color: #073642;
}
body.manual table.examples td.odd.head {
background-color: #586e75;
}
body.manual table.examples td.even.head {
background-color: #586e75;
}
*snip*
QMap<QString, QString> SonicPiTheme::darkTheme(){
QMap<QString, QString> themeSettings;
// Dark Theme Colour Palette
QString dt_pink = "#839496";
QString dt_white = "#ffffff";
QString dt_black = "#002b36";
QString dt_lightgrey = "#93a1a1";
QString dt_grey = "#657b83"; // same as button background
QString dt_darkgrey = "#586e75";
QString dt_vdarkgrey = "#073642";
QString dt_blue = "#268bd2";
QString dt_gold = "#cb4b16";
QString dt_not_supported = "#fdf6e3";
QString dt_warning = "#dc322f";
QString dt_green = "#859900";
*snip*
#!/usr/bin/env bash
# Source tree, for reference:
# ├── app
# │   ├── gui
# │   │   └── qt
# │   │   ├── fonts
# │   │   ├── html
# │   │   ├── image_source
# │   │   ├── images
# │   │   ├── lang
# │   │   ├── platform
# │   │   ├── theme
# │   │   └── wix
# │   └── server
# │   ├── erlang
# │   ├── native
# │   └── ruby
# │   ├── bin
# │   ├── lib
# │   ├── test
# │   └── vendor
# ├── bin
# └── etc
U_L_O=/usr/local/opt
QT5=$U_L_O/qt
# Partial solutions. Look further down for other spots needing fixes
QSCINT_VER=13
QWT_VER=qwt-6.1.2
# *Absolute* path of where we're running from
_here="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
_app=$_here/app
_etc=$_here/etc
_qt=$_app/gui/qt
_server=$_app/server
_native=$_server/native
_superc=$_native/supercollider
_build=$_here/build
_dot_app=$_build/'Sonic Pi.app'
_bin_dir=$_dot_app/Contents/MacOS
mkdir $_build
echo "Build script for SP on MacOS Sierra with Xcode 8 installed"
echo "script by Robin Newman, based on similar script by @Factoid"
echo "not setup or tested for final deployment"
# echo "assumes you have updated gem source for ffi to ffi-1.9.14"
# echo "and amended appropriate line in compile_extensions.rb to reflect this"
#Install homebrew prerequisites
brew install qt5 boost cmake pkg-config libsndfile wget qscintilla2
# Do this or overwhelm git
echo "build" > .gitignore
# Download and extract source packages
cd $_build
wget http://downloads.sourceforge.net/project/qwt/qwt/6.1.2/$QWT_VER.tar.bz2
wget https://github.com/supercollider/supercollider/releases/download/Version-3.8.0/SuperCollider-3.8.0-OSX.zip
wget https://github.com/supercollider/sc3-plugins/releases/download/Version-3.8.0/sc3-plugins_OSX_SC3.8_692f92f.zip
wget http://aubio.org/pub/aubio-0.4.3.tar.bz2
wget https://github.com/llloret/osmid/archive/master.zip -O osmid_master.zip
unzip -qq -o SuperCollider-3.8.0-OSX.zip
unzip -qq -o sc3-plugins_OSX_SC3.8_692f92f.zip
unzip -qq -o osmid_master.zip
tar -xf $QWT_VER.tar.bz2
tar -xf aubio-0.4.3.tar.bz2
sudo cp $U_L_O/qscintilla2/data/mkspecs/features/* $QT5/mkspecs/features
# Build qwt libraries for Qt5
cd $QWT_VER
$QT5/bin/qmake qwt.pro
make
sudo make install
# sudo cp features/* $QT5/mkspecs/features/
# Extract all SC plugins to combined folder. Could go straight into SP osx/supercollider/plugins
# plugins copied into SP further on in script
cd $_build
mkdir plugins
find ./SuperCollider -name "*.scx" -type f -exec cp -p {} ./plugins \;
find ./SC3plugins -name "*.scx" -type f -exec cp -p {} ./plugins \;
# Install aubio (with libsndfile support)
# Currently fails
# cd $_build/aubio-0.4.3
# ./waf configure --enable-sndfile
# ./waf build
# sudo ./waf install
# Make osmid
cd $_build/osmid-master
mkdir build
cd build
cmake ..
make
# Copy in SC bits
cd $_qt
mkdir -p $_superc/plugins
rsync -arv $_build/plugins/ $_superc/plugins/
cp $_build/SuperCollider/SuperCollider.app/Contents/Resources/scsynth $_superc
ln -s supercollider/scsynth $_native/scsynth
#Build Sonic-Pi server extensions, documentation, and gui
# Setup ruby link
cd $_server
mkdir -p ruby/bin
ln -s `which ruby` ruby/bin/ruby
# Compile extensions
ruby/bin/compile-extensions.rb
# On subsequent runs after initial install, can usually restart from here if no gems have been updated
# Prepare documentation
ruby/bin/i18n-tool.rb -t
cp -f $_qt/ruby_help.tmpl $_qt/ruby_help.h
ruby/bin/qt-doc.rb -o $_qt/ruby_help.h
cd $_qt
$QT5/bin/lrelease SonicPi.pro
$QT5/bin/qmake SonicPi.pro
make
# Move app to build dir
mv 'Sonic Pi.app' $_build
# Fixups to make the app independant
cd "$_bin_dir"
rsync -arv $U_L_O/qscintilla2/lib/libqscintilla2_qt5.* .
rsync -arv $_build/$QWT_VER/lib/ .
install_name_tool -change qwt.framework/Versions/6/qwt @executable_path/qwt.framework/Versions/6/qwt ./Sonic\ Pi
install_name_tool -change libqscintilla2_qt5.$QSCINT_VER.dylib @executable_path/libqscintilla2_qt5.$QSCINT_VER.dylib ./Sonic\ Pi
cd "$_dot_app"
cp -R $_server ./app/
ln -s ./app/server .
cp -R $_etc ./etc
mkdir -p ./app/gui/qt
cp -R $_qt/theme ./app/gui/qt/
cd app
mv erlang server/
mv native server/
mv ruby server/
rm ruby_help.h
cp $_build/osmid-master/build/m2o .
cp $_build/osmid-master/build/o2m .
$_qt/prune.rb "$_dot_app"/app/server/ruby/vendor
#now finished. Can double click 'Sonic Pi.app' icon in finder to run

Keymap

command keys I keys command
backOneLine CTRL + 'n' I META + '_' fontZoomOut2
backTenLines SHIFT + META + 'd' I META + '-' fontZoomOut
contextHelp CTRL + 'i' I META + ']' copyToBuffer
contextHelp2 F1 I META + '/' toggleLineComment
copy META + 'c' I META + '+' fontZoom2
copy CTRL + 'c' I META + '=' fontZoom
copyToBuffer META + ']' I META + 'a' selectAll
cutToBuffer CTRL + 'x' I META + 'c' copy
cutToBufferLive CTRL + ']' I META + 'l' downcaseWord
cutToEndOfLine CTRL + 'k' I META + 'Return' runCode
downcaseWord META + 'l' I META + 'Space' setMark
escape CTRL + 'g' I META + 'u' upcaseWord
escape2 ESC I META + 'v' pasteToBuffer
fontZoom META + '=' I CTRL + '-' zoomOutLogs
fontZoom2 META + '+' I CTRL + ']' cutToBufferLive
fontZoomOut META + '-' I CTRL + '=' zoomInLogs
fontZoomOut2 META + '_' I CTRL + 'a' selectAll
forwardOneLine CTRL + 'p' I CTRL + 'c' copy
forwardTenLines SHIFT + META + 'u' I CTRL + 'g' escape
indentLine Tab I CTRL + 'i' contextHelp
loadBufferShortcut SHIFT + META + 'o' I CTRL + 'k' cutToEndOfLine
moveLineDown CTRL + META + 'n' I CTRL + 'n' backOneLine
moveLineUp CTRL + META + 'p' I CTRL + 'p' forwardOneLine
pasteToBuffer META + 'v' I CTRL + 'Space' setMark
pasteToBufferEmacs CTRL + 'y' I CTRL + 't' transposeChars
pasteToBufferWin CTRL + 'v' I CTRL + 'v' pasteToBufferWin
reloadServerCode F8 I CTRL + 'x' cutToBuffer
runCode META + 'Return' I CTRL + 'y' pasteToBufferEmacs
saveBufferShortcut SHIFT + META + 's' I CTRL + META + 'n' moveLineDown
selectAll META + 'a' I CTRL + META + 'p' moveLineUp
selectAll CTRL + 'a' I ESC escape2
setMark META + 'Space' I F1 contextHelp2
setMark CTRL + 'Space' I F10 toggleFocusMode
tabNext SHIFT + META + ']' I F11 toggleLogVisibility
tabPrev SHIFT + META + '[' I F12 toggleScopePaused
toggleButtonVisibility F9 I F8 reloadServerCode
toggleButtonVisibility SHIFT + META + 'B' I F9 toggleButtonVisibility
toggleDarkMode SHIFT + META + 'M' I SHIFT + META + '[' tabPrev
toggleFocusMode F10 I SHIFT + META + ']' tabNext
toggleFullScreenMode SHIFT + META + 'F' I SHIFT + META + 'B' toggleButtonVisibility
toggleLineComment META + '/' I SHIFT + META + 'd' backTenLines
toggleLogVisibility F11 I SHIFT + META + 'F' toggleFullScreenMode
toggleLogVisibility SHIFT + META + 'L' I SHIFT + META + 'L' toggleLogVisibility
toggleScopePaused F12 I SHIFT + META + 'M' toggleDarkMode
transposeChars CTRL + 't' I SHIFT + META + 'o' loadBufferShortcut
upcaseWord META + 'u' I SHIFT + META + 's' saveBufferShortcut
zoomInLogs CTRL + '=' I SHIFT + META + 'u' forwardTenLines
zoomOutLogs CTRL + '-' I Tab indentLine
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment