[SCM] sonic-pi packaging annotated tag, upstream/2.0.0, created. upstream/2.0.0
pere at users.alioth.debian.org
pere at users.alioth.debian.org
Fri Feb 12 14:46:31 UTC 2016
The annotated tag, upstream/2.0.0 has been created
at 09906f0b8bc27346092c9dbb10b02a77016eeb13 (tag)
tagging 23fd6abcfe0a931c9b5a3302c3fdff10e7281ed0 (commit)
tagged by Petter Reinholdtsen
on Mon Dec 7 09:38:32 2015 +0100
- Shortlog ------------------------------------------------------------
Upstream version 2.0.0
Joe Haig (1):
Remove dependency on missing (not required) image files.
Martin Keegan (47):
fix missing include file
dedupe font names
ignore autogenerated C++ files
fix path to server startup script
explain how to start QT GUI; avoid circular Makefile trick
update ignore file
move build machinery out of toplevel bin/ directory
Merge branch 'master' into dedupe-lexer
add hook for autogeneration code
add execute permission
add switch for specifying alternative output file for docs generator
hook ruby docs generation into build bootstrap script
be more explicit about what file we're trashing
make it clear what we're doing under the hood
Merge branch 'master' into split-docs-gen2
split clobbered part of mainwindow.ccp into separate file
clobber right file
note dependency
add dummy file
Merge branch 'master' into split-docs-gen3
update ruby_info.h with latest help text
include copyright boilerplate
ignore .lein-plugins directories
Merge branch 'master' into split-docs-gen3
generate placeholder for autogenerated file
ignore autogenerated file
remove version-specific help text from template file
generate individual files from ruby docstrings
don't pass literal help HTML through to C++ include file
remove transitional documentation
Merge branch 'master' into split-docs-gen3
Merge branch 'master' into split-docs-gen3
fix typo
add another helper function
Merge branch 'master' into split-docs-gen3
use saner generation technique
rename for generality
only auto-generate the bare minimum of code
fix indentation of generated code
get rid of distracting compiler warning
move api list to own file
factor workspace material together
remove unused vars
fix typo
ignore emacs droppings
properly fix unused parameter warning
note optional step re ruby compilation
Michał Lewandowski (1):
Add missing $
Petter Reinholdtsen (1):
Imported Upstream version 2.0.0
Sam Aaron (1034):
initial commit
Update main window license info - this file has *long* diverged from the original help example!
Put group name in /tmp rather than in application directory (which won't necessarily be writable)
put workspaces in ~/.sonic-pi and generate them if they don't already exist.
disable logging
Merge pull request #5 from traylenator/drop_binaries
Merge pull request #6 from traylenator/home_not_home_pi
Massive refactor and reworking of Ruby internals:
Move QT app into a specific directory in anticipation of other UIs
Add dependencies for HTML5 GUI
Add more Ruby dependencies (for HTML5 GUI)
Remove detritus
Pull in some more Ruby dependencies, jiggle things around and the HTML
ignore log files
MonkeyPatch Rubame to not thrash round in a loop waiting for IO:
Add Overtone source for synth designs.
update code mirror to 3.2.1
Fix up server->ws comms.
Fix play_pad so sound is heard. Still need to hook
override puts
Add thread safe way of removing multiple handlers
Prefix non-public API functions with __
Add state lifecycle information to nodes:
Rename node :live state to :running
Remove unused class IncomingChan - replaced by Event system
Make current synth, bpm and current pad thread local.
Store an array of currently running 'jobs'.
Fix call to __sync after rename
Ignore Emacs tmp files
Add function current_tempo which pulls from the Thread local bpm variable in Studio.
Update bootstrap to 3.1.0
Rename mods from *.rb to *._rb to stop them being accidentally loaded.
Allow code to be dynamically reloaded from the HTML GUI
Move RcvDispatch class to SonicPi module
Update README with some simple instructions for using the HTML interface.
Remove deprecated boot scripts
move vendor from js to parent dir
Move to Om for HTML GUI:
Ensure SynthNode is initialised before sending out OSC message
* Add ability to add on_destroyed handlers to nodes.
Remove debug statement.
Fix a couple of bugs introduced in recent commit.
add Hamster as a dependency - immutable datastructures FTW!
Add ability to stop individual jobs
Start moving towards a more lock-free approach:
Kill all subthreads (created with in_thread) when killing job.
disable debug mode
only join subthreads if they exist!
mention that you need to compile cljs source for dev gui
only display last 20 messages in dev gui
Add web server listening on port 8000 serving html, css and js.
Add new fn with_synth_defaults
Specifically require 1.9.3+ and backport Ruby 2+'s thread local syntax
Start adding some nice drum samples from freesound.org (CC 0 Licensed)
Add support for Ruby 2+'s Thread#thread_variables for 1.9.3
Fix timing.
Only allow connections to dev html client from localhost.
Add Array#choose as an alternative to Array#sample
Run web server in its own thread - allows script to be killed with C-c
Add more electronic samples
Add some more samples
make rect.js locally available
Add buffer object and update synths
Add utility function sample_duration, to return the duration of a sample
Add synonym Node#control for Node#ctl
Re-instate standard mono and stereo players and add new method sample_partial
Update synthdefs
Add ability to specify note by string or keyword in addition to integers.
Update synth-designs.clj to reflect latest synthdefs
Add initial (and very brittle) support for Windows
Minor refactor
Plug memory leak - remove /n_end handler on node end.
short-circuit out of loading sample once within critical section
Add exit mechanism
Add simple eval program - which takes a Sonic Pi rb file and executes it.
Fix remaining memory leak (GC :heap_line_num now flatlines)
indentation fix
Move subthread creation and management from sound mod to spider itself.
Plug another memory leak - this time with groups associated with each job
whitespace fix
Don't leak memory when jobs throw exceptions - instead correctly tear things down.
Add useful test script for looking for memory leaks
add simple version of the intro to Blue Monday by New Order to examples
remove comment
Fix a couple of basic typo bugs w.r.t. job stopping
Add new method `load_samples` which will take an arbitrary list of sample paths and pre-load them all
Add new test for jobs stopping - also move quit-on-exit hook to the
Add crude Raspberry Pi detection and sleep longer when booting
move quit on exit block closer to top of file
require set as its used in this class
add blue monday test
Add experimental AOT scheduling
Handle case where no proms have been created when joining job.
Default to a much smaller AOT - this should be modifiable for platforms.
Comment out reload button (this should only be available for dev purposes)
Allow synth trigger sched_ahead_time value to be modified:
Add quick (potentially hacky) job joining method.
Update README.md
Start working on improving synths:
Add cutoff param to saw synths
Add limiter to mixer for ear safety.
Add a fun example
Update README.md
Add thread synchronisation mechanism:
Add `_s` versions of the mod synths:
Allow values to be passed through `sync`/`wait`:
Add first cut of keeping a tree of subthreads for both correct joining and killing.
Fix memory leak in new thread creation code:
Tidy up tests
refactor Atom code for readability
Don't call `Studio#stop` when stopping all jobs:
Join or kill all subthreads before calling `/job-completed` event
Add mechanism for creating critical 'no-kill' sections:
Actually synchronise with the mutex from the correct thread!
Update code mirror to 3.22
Move react.js to vendor dir
Add commented version of server lines for open access
Simplify blue monday example by using with_synth_defaults
Tidy up README
Update HTML GUI to Om 0.5.0 and React.js 0.9.0
Allow C-r to run code in HTML GUI
Re-implement mono and stereo sample players:
re-implement `rand` using a seeded generator:
remove repeated synthdef
Teach sample players how to handle negative rates (for reversing)
Fix recognition of flat notes with b suffix - also make bs 'above' b
Add sustain parameter to all synthdefs
Implement a simple ring buffer data structure for storing messages:
New example: guitar pulses
don't commit dev js code
Don't pull in cljs-main.js just yet
mv LICENSE to md extension
Add copyright preamble to source files:
Add copyright notice to GUI files
Update README.md
Update README.md
Update README.md
Remove Aphex and Kraft workspace sets
remove old scripts
start working on Qt GUI:
Rename samples to have a standard four-letter prefix and add autocompletion.
Further work on Qt interface:
load synthdefs when initialising server
Further qt interface look and feel work:
Display splash screen in separate window when info button is clicked
move tabs to bottom of window
Make further progress hooking up the Qt gui to the new backend...
Finally hook up errors and output to backend processes.
Kill off all subprocess when exiting app.
make both sets of buttons similar heights
Implement proof-of-concept font zooming for output pane.
Provide 'auto pushing/popping' versions of `with-*` fns via blocks:
Teach autocomplete about `with-*` functions
Ensure merging synth defaults has a target map to merge into
Update html design
make rotating boxes lovely pinky pink
Add slide args to synths:
Spread out a given node's control messages over real time:
comment out synths in design file
Teach stereo sample synth player how to pan
Fix naming of ambi_glass_hum sample
ambi_piano isn't called ambi_atmos_piano
Add new ranged random function rrand
fix spacing
Add support for scales:
Teach play to accept a single args Hash in addition to key-val varargs:
fix naming issue
trigger_synth no longer allows varargs, merge buffer info in first
Add chord functionality:
Allow scales to be addressed via strings
Improve printing to end user
Teach with_merged_synth_defaults and with_synth_defaults to accept
Remove pad functionality. The focus for Sonic Pi is currently for
Minor refactoring
Remove deprecated function comms_eval
Remove duplicated synth triggering functionality.
Create and use new node abstraction ChordGroup:
Improve to_s of Chord and Scale
defer to play_chord if an Array is passed as the note arg to play
add to_s for Buffer
Return scale as an Array rather than a Scale object:
Fix sample synths to allow :amp to be modulatable
comment out synth design saving fns (Again)
Add amen brothers break sample as :loop_amen
Extract out sched ahead node osc functionality
Make Node's method to_i actually return an Integer
Replace sched_osc_for_node with a simpler fn which just calculates time
Add the ability to pause and run nodes
Add three more synths:
Add some more samples:
Trim samples
Add more samples:
Teach sample_duration to also take opts and allow rate to be specified:
Raise an exception if sample doesn't exist
Update sample names
Make calls to sync wait (in real time) before sending sync event:
Add two more examples:
Add version of get with timeout to Promise and use it in in_thread:
Keep trying to receive promise from parent - until parent is dead,
Check to see if parent is alive *after* attempting to get promise
Add (super basic) support for sending error messages out to the GUI
Increase HTML GUI message ring buffer size to 100
Add tentative support for named threads:
Fix audible click heard when playing some samples:
Add basic non-enveloped sample playing synths:
Remove debug lines
Update supersaw synth design:
Use new named thread functionality in comps beats example
Add license info to synth-designs file.
Re-order dsaw arg order for consistency.
Started work on synth information classes for docs and validation.
Improve fm synth design - add slide args for both div and depth
Start fleshing out synth information
Fix bug in Node's on_destroyed method:
ensure state is set to :destroyed before calling on_destroyed_callbacks
Kill ChordGroup node when all containing subsides are destroyed.
move to snake_cased names for sample synths
specify :amp arg for :amp validation!
Reference new snake_case sample synth names
Wire up synth arg validation functionality (still needs fleshing out)
Teach trigger and control args to handle symbols for note names.
Breaking Change - rename with_volume to set_volume!
Rename debug! and debug_off! to set_debug_on! and set_debug_off!
Breaking change: rename with_tempo to set_tempo!
add :modulatable metadata to synth info
Remove code referencing pads
Revert back to with_tempo as it's set up to use thread locals. Add block.
Mixer now receives a stereo bus
Rename new_user_synth_group to new_synth_group
Fix critical bugs in bus allocator:
Add initial (sketchy) pass of FX functionality (much more work needed):
schedule killing and clearing osc messages with virtual clock
remove amusing debug message
add option to force group free osc messages to dispatch immediately
Force group creation to be synchronous with with_server_sync
Wait for all subthreads to finish before removing self from tree
Further fx work - still incomplete
add named threads
fix sample names
Add new echo FX synth + example
Add new synths to head of group. Fixes FX chain ordering issue.
Join on all subthreads created in fx block before killing fx nodes
break out trigger_synth into separate synth categories
remove empty fn stub
Add missing comma comma comma comma comma
Add some inline docs
Remove debug lines
Add synth node tracking for fx blocks:
remove debug statements
Fix bug in new trigger fns where group was overridden accidentally
remove debug line
Add ability to bypass sched ahead functionality for node control:
Use iteration rather than recursion to minimise stack trace sizes
Use more specific exception class
Gracefully handle situation where FX bus was unable to be allocated:
Remove unused qt import for QWindow
Update Qt GUI project file to include new lexer and other resources
Massively reduce default kill delay to 1s
Fix up FX info and add new slicer
Add fun tron bike example (RPi tested)
BREAKING CHANGE: with_* methods now require a block
Allow easy rate change in echo_drama example
Allow synths to be triggered immediately with a new now argument:
add shell script for starting up application on RP with dbus started
Fix up arg resolution algorithm
create new trigger_* fns which can have their own print statements
move to relative paths for rb scripts
use correct var names
aaargh! Typo
must kill server!
remove resources from pro file
make rp-app-bin executable
use path to script in bash file to locate application binary
Fix issue with playing chords and shuffle fn ordering.
Update README dependencies
Meta-glasses from our hero Why to help us see more clearly...
Stop core API function clobbering by users:
add Copyright info
Fix examples with new use_* vs with_* names
Pretty print synth args with new foo: 1, bar: 2 syntax
Allow fx blocks to accept a param which will be the fx synth node:
Teach BlankNode to report its state as :destroyed
Add corresponding slide args on all modulatable synth args:
comment out synth saving fns
Add integer version of rrand: rrand_i -
Teach *_synth_default fns to accept lambdas as args:
Add new fns use_debug and with_debug:
Use more idiomatic foo= method for setting sched_ahead_time:
Remove debug statement
Fix bug in studio at sched_ahead_time - shouldn't require a param
Delay messages by sched_ahead_time to keep messages in sync with synths
Switch from using ramp to lag for sliding synth args:
Fix bug in fn name for joining thread and subthreads in fx block
Use basic sampler synths if no non-modulatable args are used:
Support sample packs with use_sample_pack and with_sample_pack:
Update codemirror to version 4.0
Teach with_fx to do nothing if fx_name is set to :none
Use default sampler synth if rate is negative:
Add a bunch of new FX:
Add fun filtered dub example
Add jungle example
Add amp param to compressor:
Add distortion FX
Wooh, look, no parens!
Fix distortion to work with a stereo channel
Add number of allocated audio and control busses to status info
Update audio and control bus counts to scsynth defaults
Update with_fx gc logic to handle the case where user killed main thread.
Don't automatically print status - instead return a map:
Add on_started call back for Node
Teach Promise#deliver! to not raise an exception if required.
Allow synths to sneakily be added to tracker without blowing things up.
update example to new syntax style
update blue monday example to new syntax style
update comps beats example to new syntax style
Completely rework with_fx logic (again). Remove all (known) resource leaks:
Add sched_ahead_time to sleep time:
Only print sample loading message when sample is actually loaded:
No need to duplicate trigger_synth out-bus logic in with_fx
Add new ChainNode class which represents a routed audio SynthNode:
Teach BlankNode about Node#on_started and SynthNode#name
Introduce new FXNode:
Teach synths how to describe their own bespoke kill_delay for FX GC
Switch to using JSON for encoding messages:
Teach FXNode to free bus in on_destroyed handler
Switch json lib to multi_json:
Address compiler warnings:
Remove unnecessary comments
remove potentially confusing word "args" from print statement
Default to beep synth instead of pretty_bell:
Add link to beep info
Add OSC comms to Qt GUI:
Add C++ OSC lib to Qt GUI
Teach Qt GUI how to stop all synths and to exit correctly
remove accidental typo
Release OSC socket when exiting Qt app
Start using SynthInfo class to spit out markdown docs
Calling the dbus-launch script has no effect.
Add useful path fns
Generate Sample cheat sheet automatically from metadata
Fix modulatable info
Add script for auto generating doc cheatsheets
Add constraints to fx and synth documentation
Improve synth docs
Update synths.md
Add table of contents to synth and fx docs
Merge remote-tracking branch 'origin/master'
Add fm noise example
Fix bug in mod_pulse synth stopping it from modulating pitch
Update examples to use new preferred syntax
Add function versions of choose and control:
Use standard keys for sample groups and add new helper fns
Print out message if sample had to be loaded into memory
Teach load_samples to handle an array as an arg
Add new functions: sample_names and sample_groups:
Unify sample output format
Add new example - ambient:
Add replace versions of all FX synths and new basic_mixer:
Basic formatting modifications
Tweak defaults of reverb and tb303 for aesthetic purposes:
Improve stack trace printing in html gui
add ability to specify scsynth port
print exception when found in JSON parsing or message dispatch
Make basic_mixer synth a chained in/out bus synth:
Add synth info for basic_mixer and new replace fx synths
Add active support to vendor directory:
basic-mixer is now basic_mixer
add another useful comment (need more of these)
Move to new Job audio bus infrastructure:
fix minor syntax error
Teach in_thread not to pass on thread locals with specific prefix:
Improve synth doc defaults based on today's workshop
Add new synth: Zawa
Improve debug messages
move start scripts to new bin directory
add new top level bin directory with a script to launch the qt gui
Added first draft of autosaving functionality and hooked it up to HTML GUI
Cleanup unused parts of Qt GUI
Extract out method for sending OSC message to reduce duplication
Remove duplicate #includes
Start hooking up Qt GUI to new buffer loading functionality:
remove unused code
add loops to autocomplete in Qt GUI
Teach Qt GUI to display splash screen until server has started:
Teach Qt GUI to load and save all workspaces using new OSC mechanism
use hyphens to separate OSC handles rather than underscores
Actually send buffer content when attempting to save all workspaces
revert back to allocating 2 audio busses per FX:
Further standardisation on hyphenated OSC names
Fix bug in workspace saving:
fix another hyphen change bug
add more samples to autocompletion
Start each workspace off with the text #loading...
Add draft of Mag PI magazine article
Fix typo in autocompletion list
Change sample param end: to finish:
remove old cruft
don't require start-server script to be executable:
Add code folding functionality and nesting indicators:
Add missing ) paren
add missing function definition to main window header
further interface tweaks
Modify defaults of beep synth to be more percussive
Further Qt GUI tweaks
rename app/scripts to app/server
also initialise workspace8
remove tree folding stuff
Ensure Qt GUI doesn't send out ping messages until it has opened its
Ensure that the output text area isn't a memory leak:
Fix synth info defaults to match actual synth design.
force splash screen to be repainted:
set style to GTK and clean up a little
improve scsynth/jackd process creation and teardown mechanism
Comment out all unnecessary puts statements in server script
print message when OSC server has started listening
remove old stop-code script execution
make synth argument checking optional:
update splash png to contain border and shadow
Optimise Server#trigger_synth to remove unnecessary method calls
Further synth trigger optimisations:
Add trailing > to to_s for buffer
Create recording group on studio initialise
resolve hash_or_arrah args when controlling node
Extract out allocator from bus allocator:
swap attr_reader arg order to match constructor
Teach allocators to have a default index offset of 0
Add default of 1 for Allocator#num_adj_ids
Use Allocator to allocate buffer ids rather than a Counter:
Unify file header comments:
Reorder autocompletion code to match sample README order:
Add ability to allocate standard buffers:
add Buffer at to_i method - returns buffer id
Add Server#buffer_free - which also releases id from allocator
Add new server arg to Buffer constructor
Implement Buffer#free
Add default number of adjacent ids for Allocator#release!
Add new class BufferStream for streaming buffers to files:
Add Server#buffer_stream_open for creating a new buffer stream
Add initial pass of recording functionality:
Add Qt GUI interface for starting and stopping recording:
First pass of hooking recording Qt GUI interface with recording functionality.
Add simple preference window for modifying system audio settings:
Start adding implementation for Qt GUI system audio preferences:
add missing header changes for previous commit
add missing include
remove unnecessary references to toolbox
Handle the fact that the mixer percentage range isn't linear:
Pull in cmath on RPi and namespace pow correctly
just initialise preferences window once rather than re-creating on view
pull in correct qtconcurrent headers for system
add missing ostringstream line
update splash image to remove whitespace surround
give splash image more vertical space
Add missing ostringstream declaration for OS X Qt GUI
Stop comments going invisible if they're the current line
Add more appropriate comment for new buffers :-)
rename techno fx to ixi_techno in synthinfo
Use basic HTML formatting on error pane to improve readability.
Dock prefs pane in right dock by default - also add new prefs:
remove cruft
Don't raise an error window if user cancels buffer save
Implement pref debug options:
toggle preference pane visibility on button press
set output panes to be read only. Also limit size of error pane
clear error pane before running code
remove unnecessary debug messages
Dock doc/help widget at top of app and toggle with button:
add more with_* methods to autocompletion
prioritise threads that are struggling to keep up...
Add more sophisticated thread priority allocation:
improve __no_kill_block fn and favour over raw mutex sync:
Give each thread created a group name:
add helpful comment
add to_s for SynthNode
ensure that __no_kill_block returns the result of the block
Add missing id method to synthnodeproxy
Run fx block in separate thread to isolate trackers:
specify correct allocation error exception
add handy helper method for debugging: __describe_threads:
move fx bus creation block above gc thread definition:
Implement use_bpm, with_bpm and current_bpm:
Add new fns: use_transpose and with_transpose:
update test code to work with new module injection stuff
allow indifferent access on dispatch hash
Start work on a generic method documentation system:
Fix memory leak in in_thread:
unify all fonts in Qt editor
Add two new testing routines:
add new test routine: test_with_multi_fx
Plug memory leak when firing off multiple similarly named threads:
Use different approach for displaying splash screen that hopefully should
Try another splash screen approach
add missing header
uncomment out the code that actually starts the server!
try another splash screen approach!
update main.cpp to use csplashscreen
Revert back to original splash screen method:
add new basic icon file
Add icon in ico format
Add skeleton for doc system:
Improve doc pane - using a QListWidget instead of buttons
Add Ruby script to help generate Qt app doc system from Ruby metadata
remove accidental double underscores
turn nicely formatted docstring into an ugly single line for new system
Start populating doc system - exciting times!
Add FX and Samples to Qt doc system
Extract out docsystem to separate module and start adding lang docs
pull in requirements
Add skeleton info for all API methods and add to Qt doc system
Fix bug in arg names within rrand_i
Add examples_path helper method
use symbol for synth name rather than string
remove rand function from API - falling back to default Ruby impl
Update examples to work with latest API
Further API tweaks - revert octave behaviour
Add examples to Qt doc system
Dock documentation pane at bottom of screen
Teach docsystem about summaries and examples.
escape html entities in docsystem
add doc info for print
expand detection of :raspberry os
Teach node_ctl, node_pause and node_run immediate 'now' mode
Add a default ached ahead time
Optimise counter:
Teach server thread about :sonic_pi_thread_group and priority
Make thread priorities more diverse for a greater effect
Fix bug in doc name for with_sample_pack
Further thread prioritisation changes
Use default_sched_ahead_time rather than a magic number
Further doc additions
Merge pull request #34 from jrmhaig/master
Merge pull request #36 from mk270/master
remove unnecessary code
Move log dir inside home_dir and only use if in debug mode
Merge pull request #37 from mk270/ignore-autogen
Merge pull request #38 from mk270/fix-readme
Merge pull request #39 from mk270/qt-instructions
Merge pull request #40 from mk270/dedupe-lexer
Merge pull request #41 from mk270/split-docs
Replace job promise mechanism with non-blocking queue based system:
Optimisation: cache current job synth group in a thread local
Optimisation: cache fx group in a thread local.
Add text size modification toolbar:
Try and get spacers to work correctly...
icons are 270x111 rather than 270x109
disable doc pane debug messages
Add start of documentation for standard Ruby constructs
Add more docs
send exited message on server exit
Set tool tips for toolbar buttons.
Merge pull request #42 from wstephenson/mainwindow_toolbar_item_spacing
Add initial scaffold of Native scsynth FFI bridge:
Teach the native FFI example how to receive and decode OSC from scsynth
Restructure server code to support both native and external scsynth
Fix start-server script to work with new scsynth structure
Use more appropriate FFI blocking declaration
Stop using global variables
Add some more API docs
Incubate blue_monday example as it doesn't currently perform well on RP
Update docs in Qt app
Only store true or false in arg_check thread local
Add new thread local value viewing functions:
stop scsynth dumping all OSC messages
Fix syntax errors in doc additions
Don't pull in native file as it's still incomplete.
Merge pull request #45 from mk270/split-docs-gen2
Merge pull request #46 from mk270/tweak-gitignore
Merge pull request #47 from mk270/split-docs-gen3
give basic stereo player a more sensible stereo panning system.
Mixer doesn't support panning - remove Studio#pan= method
Send control message to @mixer node rather than @mixer_group when setting
Don't limit volume in studio method, this happens in sound.rb
Merge pull request #48 from mk270/split-docs-gen3
Merge pull request #49 from mk270/fix-typo
Add some more documentation:
Merge pull request #50 from mk270/split-docs-gen4
Merge pull request #52 from mk270/move-api-list
Merge pull request #53 from mk270/factor-workspaces
Merge pull request #51 from mk270/fix-prev-warn
Merge pull request #54 from mk270/fix-readme-typo
Merge pull request #55 from mk270/ignore-emacs-droppings
Merge pull request #56 from mk270/fix-docpane-warn
Remove requirement that generated doc info should be on one line:
Start making the documentation pretty-pretty
Fix typo
Further doc prettification
Fix up doc metadata
Remove FX prefix from all FX names
Further doc prettification :-)
Fix typo
stop doc list from being so cramped
clean up whitespace
Fix timing regression by re-instating send_at
Increase sched_ahead_time to RP 1s
Merge pull request #57 from mlevvy/master
Set tooltips in addition to status tips for toolbar items
Fix typo
Fix bug in set_volume!
Add soft, hard, and exception-raising timing issues:
Throw timing exceptions on play, sample and control
Handle case where sched_ahead_time is 0
move from out-bus and in-bus to out_bus and in_bus for synth params:
Remove sp/ prefix from all synthdefs:
Return to namespaces synth names for mixers and recorder synths:
block synthdef loading with_server_sync rather than nasty sleeps...
add new API fn load_synthdefs:
Add doc skeleton for load_synthdefs
Create OSC::Server with internal port:
Remove arbitrary sleep wait on os x boot:
extract out new booting and waiting (sans sleep) functionality and use
find out: are these sleeps necessary?
Make output pane use only one line per message in monospace
Correctly return workspace name
Add rugged as a dependency:
Create a way of easily making platform-specific rugged extensions
ignore autogenerated rugged Makefile
Add initial git persistence layer - much work to be done here.
Add compiled rugged extension for Ruby 1.9.3 on OS X
Add RP native rugged extension
make output look more like code which generated it
Don't clobber git index every commit
Display synth names as symbols
Replace nasty sleep with nicer jackd waiting on linux boot
oops, it's jack_wait rather than jackd_wait
appropriately invert logic and also store jackpid (-T doesn't seem to do what I wanted)
Add class to parse incoming OSC binary packets:
remove unnecessary require statement
Use new IncomingOSC class - native lib connection now works!!!
teach incomingosc about doubles
remove typo
add missing parameter
Don't say "starting..." when booting, just say "Ready..." when booted.
Prettify output pane:
Try auto-hiding error pane
Save file as well as storing it in git repo.
Round long floats to 4 decimal places when printing
Move editor and errorPane into a separate layout:
HTML escape errors (as the Qt client current use HTML to display them)
Set hard timing error buffer to be 0.5s + the sched ahead time:
Fix spacing
Remove extra space with thread death error if thread is unnamed.
move current_bpm to default api file
Set max height for error pane to stop it taking up half the vertical real estate
wait for osc thread to complete before exiting.
move doc metadata after fn definitions
Improve formatting of error message
put RC name in ready message
rename start-server script to sonic-pi-server
Rework message delay system - still more work to do:
ensure __delayed is called from a job thread
wrap job id in square brackets
Fix major bug in with_fx:
Move delay logic into sleep function:
Disable dock ability of prefs pane (only make it close able)
Rework prefs pane:
reset delayed_blocks thread local after sound thread has completed:
Update messaging system:
send info message when jobs have stopped, not when they're about to.
Add mechanism to auto-format (i.e. beautify) the current buffer:
raise more meaningful error if fx name isn't recognised
Don't use the term job, instead refer to the run button.
Store the specific time each job started
Always determine virtual run time wrt job local start time:
space out output pane for greater clarity
Don't clear output pane on stop, instead clear on run:
round current job time to 4 decimal places
Start work on attempting to get error messages from server available in Qt client:
don't kill all subthreads on job completion, just deregister job
don't use cheeky sleep, schedule delayed blocks and messages directly
grab time *after* /job-start event has completed:
Improve info messaging on global setting modification
remove unnecessary sleep
move all doc metadata declarations after function
Allow users to control note parameters with note keywords such as :E4
inform user when run has completed
improve output message spacing
Add new fn - stop to kill running synth nodes.
Don't print finished run as message can be received before other messages from same job.
use the term sound rather than node
extract out DEFAULT_PLAY_OPTS and other minor doc improvements
Further docstring work
Remove repeat fn - prefer loop
add more docs. One day I'll get there...
Prefer control(foo) over foo.control:
remove erroneous > symbol
Improve formatting of lang documentation
improve docstrings
teach the ruby server how to listen and send to different ports
fix up server start code
allow transpose values to be floats as well as integers
Add align button to toolbar:
Don't create multiple duplicate windows on multiple info button presses.
Fix bug in current_bpm - wrong TL was being referenced
split out __schedule_messages and __schedule delayed blocks
Merge pull request #66 from mk270/document-compile
Merge pull request #60 from xavriley/master
Update README.md
Update README.md
Update README.md
fix Studio#load_synthdefs
remove unused QAction
Give message and delay threads their own mutexes.
Print out number of threads in __describe_threads
Allow with_fx gc thread's promise to be delivered multiple times:
Simple improvement to promise to help debugging: now prints out vals
Move job teardown code into a separate thread:
add job id to thread name
don't let the thread die whilst sending out error messages.
add another test routine
Relax native lib platform constraints:
add native directory for server stuff
add server_path and native_path util fns
look for scsynth in native path by default
Add Ruby FFI library to vendor
remove os x ffi detritus
Place examples at top position in tab list.
Maximise app window on start.
Use safe message output chars on RP
Only copy the appropriate lib files for the arch
Add patch level to ruby extension path
Optimise fn ensure_good_timing!
default to major chord
No need to check for good timing before dispatching way to play_chord - just make sure we do it over there though!
optimise resolve_synth_opts_hash_or_array
Optimise note:
Further note optimisations:
ensure debug and arg checking is set correctly based on prefs.
use shorthand a += x over a = a + x
Optimise midi note lookup caching values
add to_s methods for allocators
Sweeping optimisation pass:
Allow for a 2s buffer in ensure timing as this doesn't account for the next sleep.
Allow an array of tonic , name to be passed to chord:
resolve args for node_ctl - fixes control messages
Optimise Server#trigger_synth - replacing external hash constructor with inline hash bashing
use ore general resolve_synth_opts_hash_or_array over hash constructor
prefer delivering a more descriptive promise name over true
Use payload obtained job_id rather than reading from thread local:
use descriptive thread_group id - adding job id into the mix
replace incoming events system with a non-thrashing queue based single-threaded system:
standardise the way that the args are normalised across node_ctl and trigger_synth
(temporarily) relax numeric constraint on arg vals
Revert "replace incoming events system with a non-thrashing queue based single-threaded system:"
add (temporary) code reload shortcut to easy debugging
note may be a numeric without having to coerce it
Run osc code in separate thread to stop melody threads blocking on osc out
Optimise Node constructor:
fix midi note resolution with octaves
Teach play_chord how to play symbols and strings in addition to numbers
don't put the sched_ahead_time calculation in the osc sending thread, otherwise virtual time isn't honoured!
Fix chord for new cached note resolution mechanism.
Use a single worker thread to send out osc messages:
catch exceptions when when attempting to send hello message to new scsynth server
rely on rand for unique keys for gensym - reduces amount of thread coordination necessary.
Add group to synth node
Replace guts:
Revert "Replace guts:"
Revert "Revert "Replace guts:""
ensure all node event handlers are added asynchronously to reduce waiting
add all node handlers at once
only print out control change messages if the user wants them
Fix adding multiple async handlers for node
remove note poller from dsaw synth:
don't create synth group or fx group for a job unless required:
fix subtle but annoying thread name bug introduced in big horrible commit:
ensure current job and fx groups are cached in thread locals
Fix with_server_sync:
Oops - remove creation of IncomingEvents object on *every* job eval:
Implement Node#wait_until_started
use new Node#wait_until_started to synchronise group creation.
Fix more thread name bugs introduced in big 'orrid commit.
s/@EVENTS/@osc_events in Server
Don't include StudioInfo synths in help system:
Rename all synths to have a sonic-pi- prefix to remove chance of clashing with external synths. Also:
Prefix all examples with one of:
teach Qt app to launch stuff relative to current directory:
ignore os x native stuff
Fix FX synth naming:
Add new functions: use/with_sample_pack_as for aliasing samples:
Add new frequency utility fns midi_to_hz and hz_to_midi:
add i18n and thread_safe ruby libs to vendor
munge around with examples - separate into different dirs for ability
ensure builtin fx synths have the correct prefix
add docstring
Add new fn defonce for defining values only once:
Further work on formatting the docs: samples now look nicer :-)
Teach scsynth external booter to handle spaces in paths for OS X
remove debug statements
Merge pull request #71 from xavriley/documentation_updates
Add current_sample_pack_aliases fn
Add (yet) another alias for load_sample: sample_buffer
Tweak docs
fix syntax for new doc metadata
Always prefer explicit note arg over opts value in note fn.
Use the absolute of the rate when calculating sample_duration.
Further docstring work.
start working towards web interface compliance again...
add another docstring
Add a test!
Add some more note tests and fix up functionality accordingly.
start playing around with Travis for CI
Add Travis status image
Add further tests and a minor fix w.r.t. note
properly short circuit note resolution with return
Add further note tests - also unify pitch class
Format note tests and throw in few more asserts
Increase precision of note matcher regexp and
Raise InvalidNoteError over generic RuntimeError
Add further invalid note tests
Report and test for invalid octaves to note
Fix synths and FX:
Fix mod_dsaw to use envelope params correctly
OS X build instructions are currently broken...
add block level comment fn
remove unnecessary addition
minor restructure of includes
tidy up qt config files
ensure current running ruby is used to compile the extensions
teach the GUI to use high res images on Mac
update all synths:
update all synths:
Merge remote-tracking branch 'origin/master'
remove ruby extension detritus
fix up synthdefs to ensure they don't have ns info:
fix path to root to be 2 dirs deeper now we have an extra lib/sonicpi
actually add bitscrusher FX synth designs
Breaking change! Temporal args now scale with current bpm
Fix slicer fx to use (/ 1 phase) as rate
update examples to match new arg names and bpm behaviour
Add new fn rt for bypassing any bpm scaling:
allow users to disable bpm scaling for args
fix whitespacing
we're heading towards RC12
add start of tests for scale and chords
Add mod_phase_offset param to all modulated synths
new fn: synth for playing an arbitrary synth ignoring TLs
Don't throw an exception if the synth name isn't recognised.
remove lambda arg default optimisations and allow lambdas everywhere for
Add exciting new dimensions to FX by adding mix and amp args:
Merge pull request #89 from xavriley/fix_mismatched_sample_rates_on_osx
Merge pull request #90 from xavriley/documentation_Aug2014
Complete adding mix and amp args to all FX -
Add new FX: wobble:
Fix Note inspect fn to display octave. Also add inspect fns for other
add some more scale tests
update to latest wobble synthdef
Improve documentation for core API.
change name of RP-specific components to mention RP
replace QSplashScreen with standard window:
Allow chord to take opts:
update Qt build artifacts:
Stop OSC server exploding on error and add support for OSC ‘h’ type
Add prototype system for obtaining new vals via OSC:
Minor doc tweaks.
Teach wobble FX to use different filters for wobble.
tidy docs
Update for Qt 5x on Mac
start drafting build notes for Mac (needs more work and polish)
add new incubation example using bitcrusher FX - need to test on RP
Fix wobble FX using pulse control wave form:
Teach slicer to use different waveforms for modulating amplitude.
enforce ugen rate to be specified in selects.
minor synth doc additions
Teach slicer how to invert control waveform.
Add further FX docs.
minor doc tweak
Further API doc improvements.
Add another incubation example for RP testing.
Teach rand_i to return a float rather than an integer:
Implement rand and rand_i to work using the seeded random_generator:
Another incubation example…
define defonce in terms of define for once and not def - fine?
add sketch of a sample warper similar to that described here:
minor doc tweaks
Make implement me! messages more descriptive and useful
Add rudimentary support for sound in via the sound_in synth.
Fix compus beats phase rate
Add new pan FX
teach oscval to be able to read all vals for a given OSC path
Breaking change: rename sync/wait fns and add wait as a synonym for sleep:
monkey patch Integer#times into Float (after a to_i on self)
Fix up synth arg checking fns
teach Node#control to check whether or not to check args based on current Run’s TL rather than the TL of the run that started the synth initially.
Add new fn uncomment which allows you to very easily ensure a comment block is executed:
Add more docstrings for synth args
Create space for a tutorial in the docsystem
remove unnecessary declaration
update sample rate validation to not be zero
fix minor typo
Teach slicer how to act like a tremolo:
Add new noise synths:
turn info window into HTML pane for credits
send the hash version of args to Server#node_ctl
no need to create ts local - just return the last val in the if/else
scsynth expects /n_set’s first arg to be an integer representing node id
teach OSCVal#read to accept an index arg
update info window to have plain logo and fixed width and height
Add another incubation example
update incubation examples
Add grey noise synth to compliment brown, pink and white noise
Add cnoise synth (clipped noise)
offset phase by a half to ensure the min point is start and end of phase
Modify wobble phase offsets to ensure phase always starts at min point.
add phase_offset arg to ixi_techno FX
update other FX with phase offsets to ensure min value is start of phase
teach mod_fm mod wave forms plus further general phase offset futzing
add more synth docstrings
add ocean incubator demo
Remove all ‘simple’ synths
Teach all mod_* synths to use multiple control wave forms
unify control wave design
Set default mod wave form for mod synths to pulse
Upgrade zawa synth to have multi-oscillator control. Crazy scenes.
add docstring for TB303 emulation synth
Add pre_amp and pre_amp_slide args to all FX
Further doc improvements for FX
Tweaks to examples
Fix wobble and ixi_techno synth info
rename norm_* synth to n* for easier transitioning in live coded setting
add doctoring for ixi techno FX
whitespace tweak
use new SonicPi.pro rather than old generic application.pro
flush all syntdefs to ensure they’re in sync with .clj file
ensure mainWin has been declared in scope on non OS X architectures
binary file is now named Sonic-Pi
Horrible code fork between RP and Mac versions:
mod_rate is now mod_phase
Fix Blue Monday to work on non-overclocked RP!
add qscintilla to libs for RP
close splash screen differently on RP and Mac
s/ifdef/if defined()
use application directory in path names
output stdout and stderr to temp files for debugging purposes
Give each run its own similarly seeded random number generator:
add new randomisation fn dice which will emulate a standard dice:
specify the inclusivity/exclusivity of rrand_i and rrand respectively
teach Array#choose to use thread local seeded rand num generator
Teach sync to print out delayed messages:
Ensure deterministic randomisation across threads:
Add fns for deterministically modifying random generator seed thread locals:
Fix doc examples for cue fn.
Add new probability function: one_in for defined probabilities
Add doc metadata for wait
update blip_ryhthm example
fix name of sync fn in docs
fix spelling of attack_level
Finish up the about window:
toggle info window on info button press
Add version to info window!
Add missing commas
pimp up blip_rhythm example
Info.plist should go into Content dir not root
Add website to info window
Give a more meaningful error when user uses use_fx instead of with_fx
Add new fn: version for returning current version information
Add version number to all fn metadata indicating when fn was introduced
print info on defonce and define
comment out on_keypress - will revisit in v3.0
separate out RP boot fn from generic linux -
update .gitignore
ignore *all* native files
add class representing versions
remove unnecessary workspaces dir
Open up welcome window and tutorial on first launch
tweak wording and spacing of welcome message
rename doc pane to Help
fix grammar
Move tutorial to separate directory
don’t override default sched_ahead_time for RP (1s)
move to markdown format for tutorial docs
give all doc text panes padding
Start working on the tutorial content. First three sections down
Tutorial tweaks and changes:
s/possibilities/opportunities
Add section 04 of tutorial - changing synths
Display the Sonic Pi logo in empty doc windows
rename tutorial 04 to switching synths
Add section 05 of tutorial - stretching and compressing samples
minor tutorial tweaks
unify synth defaults:
tweak tutorial
reduce emphasis noise!
Add section 6 - durations with envelopes including lots of nice diagrams
minor tweaks to envelope tutorial section
renumber tutorials 05 and 06 ad beef up envelope section a little
add a new section on amplitude
update tutorial
Upgrade mono and stereo sample players to ADSR envelopes :-)
Add tutorial section 08 - enveloped samples
Fix speling mistakes in tuturial
Default all envelopes to exponential curves between segments:
Add tutorial section 09 on playing sub parts of samples
add more information on panning to the parameters section of the tutorial
fix formatting
Change default echo decay to 2 seconds
Add tutorial section 10 on FX
minor tweaks to FX section
Use appropriate headers and add some emphasis
Add new section - Iteration and Loops
Add new tutorial section on randomisation.
minor tweaks
Fix bug in one_in
fudge all synth amps to normalise their relative amplitudes
minor tweaks
Add another section on conditionals
minor doc tweaks
Add another section to the tutorial on Chords and Scales
Fix docsystem to not treat a HTML entity as a Ruby comment
Teach play_pattern_timed to accept a single number as a time
minor tweaks to docstrings
add empty tutorial files waiting for juicy content
Fix bug in sampler decision logic:
Add section on threads
Add new section on functions
Add section on Live Coding
Add new section controlling running synths
Add section on sliding parameters
Add final two sections to tutorial
Remove bit crusher as it’s not yet available on RP
Add some basic doc strings
Remove comedy fn summary
Unify on title colour and background across docsystem
promote examples from incubation
add more summaries
make examples pretty-pretty
rename output pane to log
prepare for v2.0 release
remove old incubation examples
Add more summaries
move install info to separate file
use correct indentation
add final missing summary
fix typo
unify on Block-level rather than block level
Steve Traylen (3):
Drop binaries from source tree.
Add https://github.com/github/gitignore/blob/master/C%2B%2B.gitignore
Use $HOME rather than /home/pi
Will Stephenson (1):
Merge the toolbars so the items can be spaced out
Xavier Riley (14):
Fix Qt install process on Osx
Fixup docs for midi_to_hz and hz_to_midi. Add docstring for recording_delete
Document with_fx
Document use_sample_pack and use_sample_pack_as
Document with_sample_pack and with_sample_pack_as
Document load_sample and load_samples
Document sample_info, sample_duration and sample_methods
Document status, note and note_info
Document scale
Document chord
Documented params for sample method
Fix mismatched input/output sample rates on OSX
Add docs for rrand, rrand_i, use_bpm, with_bpm and sleep
Add docs for in_thread
-----------------------------------------------------------------------
--
sonic-pi packaging
More information about the pkg-multimedia-commits
mailing list