MyPic
Here you will find items concerning my program MyPic. Please bear with me as this page is still under construction.
News
12.6.2010 => Minor bug fixes and updates.
9.15.2010 => Version 1.0 Released! I’ve run this on OS X 10.5/10.6 machines with no problems, but I believe it will also work on 10.4 (as long as you have java 1.5 +.)
Download
Disclaimer: No warranties or guarantees, either expressed or implied, are made with regard to this program, or its output or performance. The end-user accepts this program as is, and use of the program indicates an acceptance of responsibility for any damage occuring as a result of this use.
Version 1.0.1 (12.6.2010) - Download Here
Version 1.0.0 (9.15.2010) - Download Here
Description
MyPic, simply put, is a tool for computer-assisted algorithmic music composition. Its purpose is to provide the composer with an interface for describing/orchestrating musical events through the use of envelopes (or functions) on a two-dimensional canvas where the x-axis denotes time and the y-axis denotes pitch. Events in MyPic, can be expressed simply as the x/y pairs that define them in time and pitch space or with the additional use of multiple auxiliary envelopes and data fields that are associated with each event. These auxiliary envelopes and data fields can be use to describe any aspect of the musical event: amplitude, density, deviation, rhythmic values, pitch sieves, etc.
As stated above, MyPic is a tool, it is not a compositional environment or a complete music composition anything. MyPic is meant to be used in conjunction with an existing algorithmic composition environment (Common Music/Grace, jMusic, Open Music, Symbolic Composer, and the like) that can make use of the exported data describing the events expressed on the canvas and in auxiliary envelopes/data, thus providing extended flexibility. MyPic’s output can then be used to do anything from describing the arrangement of gestures in an orchestra to plotting the evolution of varying parameters of an electroacoustic work. This approach of using MyPic to “drive” algorithms developed in existing algorithmic composition environments is optimal as it takes advantage of the well-established existing algorithmic environments and the familiarity that algorithmic composers have with them, allowing the composer to simply add this tool to the ones he/she uses for specific tasks rather than adding yet another environment for the composer to learn and maintain facility with.

MyPic 1.0.0 - App Screenshot
MyPic draws inspiration primarily from the writings and works of Iannis Xenakis, especially his work on UPIC, from which MyPic draws its name in homage.
In MyPic’s current configuration, Events are structured as follows:
The Events can be exported in various formats (more to come), but the underlining structure is as follows:
{{Event Envelope}{GroupName}{AuxEnvs*}{AuxData*}}
{Next Event} and so on.
*Here AuxEnvs and AuxData would be represented as {{Aux1}{Aux2}{Aux3}{Aux4}{Aux5}}.
User Interface
Toolbar
Soon!
![]()
MyPic - Toolbar
Canvas
Soon!

MyPic - Canvas
Console
Soon!

MyPic - Console
Inspector
Soon!

MyPic - Inspector (w/ Aux Env Tab Selected)
Aux Env Tab
Soon!

MyPic - Aux Env Tab
Aux Data Tab
Soon!

MyPic - Aux Data Tab
Session Data Tab
Soon!

MyPic - Session Data Tab
View Options Tab
Soon!

MyPic - View Options Tab
Export Options Tab
Soon!

MyPic - Export Options Tab
Menus
File
Standard File Menu items here: New, Open, Save, and Save As.
New clears the Event List and resets the Canvas to its default size of 60”. Any session data not saved before new is selected will be lost. NOTE – The default color scheme is not reinstated, so any user chosen color scheme will remain after New is selected.
Open (Cmd - O) is as expected, it launches a open dialog where the user can select a .mypic file. Any session data not saved before a file is opened will be lost. Session data in a .mypic file includes Events data, Canvas parameters, and color scheme. NOTE – Only .mypic files can be opened in MyPic!
Save (Cmd - S) and Save As function as expected, a save dialog will appear if a file name has not been previously defined, etc.
Import Midi opens a file chooser dialog, once a .mid file is selected, the midi data is converted to MyPic events (Midi Note-On Events are mapped to Event Envelopes - Time and Pitch). Imported Events are added to your current MyPic session.
Mode
New Event Mode (N) is used, as you would expect, to create a new Event. In New Event Mode you click (places the first node), drag, and then release (places the second node) on the canvas to create a new Event Envelope that consists of two points. New Event Mode remains in effect after a new Event is created (the Mode does not change), so if you click, drag and release again you will have another Event Envelope on the canvas, not new nodes added to the first Event Envelope. NOTE - Envelopes in MyPic cannot have fewer than two points or nodes.
Event Selection Mode (S) is used to change which is the “Active” or Selected Event. Whichever Event is selected is highlighted with a (by default) magenta box in the canvas, and is editable in the canvas as well as in the inspector (aux parameters). In Selection Mode, simply click on an Event Envelopes node to select that Event for editing.
Event Edit Mode is where the user has access to tools to manipulate Event Envelopes: Move Node Tool, Draw Node Tool, Erase Node Tool, Free Hand Draw Tool, Free Hand Erase Tool, Move Annotation Tool, Place Annotation Tool, and Delete Annotation Tool.
- Move Node Tool (E) - Once selected, click on a node and drag to move, release to place node in new location.
- Draw Node Tool (D or Hold Ctrl to use Draw Node Tool and switch back to Move Node Tool on release) - Once selected, click on canvas to add a node to the Selected Event Envelope.
- Erase Node Tool (W or Hold Alt to use Erase Node Tool and switch back to Move Node Tool on release) - Once selected click on a node to erase it. Cannot erase last two nodes of an envelope.
- Free Hand Draw Tool (F or Hold Cmd to use Free Hand Draw Tool and switch back to Move Node Tool on release) - Once selected click or click and drag to add/place nodes freely, drag slower to add/place nodes closer together and faster for more space between nodes.
- Free Hand Erase Tool (G or Hold Shift to use Free Hand Erase Tool and switch back to Move Node Tool on release) - Erases envelope nodes when dragged along the Time/X-axis without regard to Pitch/Y location. Wipe erase tool would perhaps be a better name.
Event Move Mode is for changing the location of the entire envelope. Click on a node and drag to move the Event envelope.
Event Transform Mode is for manipulating the shape of the Event Envelope. Once selected, Transform Nodes will appear on the Selected Event Box, click and drag these notes to reshape the Event Envelope. In its current implementation Transform Mode could be called “Resize Mode.” This will change in future versions of MyPic making “Transform Mode” live up to its name.
Event
Copy Event (Shift - Cmd - C) - Copies the Selected Event to the Event Clipboard (includes all data associated with that Event).
Copy Event Env to Aux Clipboard (Opt. - C) - Copies the Event Envelope of the Selected Event to the Aux Env Clipboard.
Cut Event (Shift - Cmd - X) - Cuts the Selected Event to the Event Clipboard (includes all data associated with that Event).
Cut Event Env to Aux Clipboard (Opt. - X) - Cuts the Event Envelope of the Selected Event to the Aux Env Clipboard.
Paste Event (Shift - Cmd - V) - Pastes the Event from the Event Clipboard to the Canvas creating a New Event. The New Event will be placed directly following the copied Event. NOTE - to paste the copied Event at the location of the mouse cursor press V with the mouse in the Canvas.
Cycle Selected Event Up/Down (Cmd - ] or Cmd - [) - increments/decrements through the Event List changing which Event is “Selected” or Active for editing.
Break Event Envelope (B) - Toggles Breaking Enabled/Disabled. Once Breaking is Enabled you can erase a node to create two separate Events from a given Event Envelope (there must be two or more nodes on either side of the node to be deleted, else the Event will not Break.)
Invert/Reverse Event Envelope (Opt. - I or Opt. - R) - Inverts or Reverses the Event Envelope. Aux Envs are not effected.
Shift Event Envelope Up/Down (Shift - ↑ or Shift - ↓) - Moves the Event Envelope by the Pitch/Y Shift increment, by default this is set to 1.0.
Shift Event Envelope Left/Right (Shift - ← or Shift - →) - Moves the Event Envelope by the Time/X Shift increment, by default this is set to 1.0.
Define Shift Increment (Shift - Enter) - Opens a dialog where the user can define a new Pitch/Y or Time/X Shift increment.
Add Random Point (Cmd - R) - Add a random point the Event Envelope within the Selected Event Box (using uniform randomness).
Randomize X-Values -Replaces the X-values in the Selected Event’s Event Envelope with random values (using uniform randomness).
Randomize Y-Values - Replaces the Y-values in the Selected Event’s Event Envelope with random values (using uniform randomness).
Delete Event (Cmd - Del) - Deletes the Selected Event.
Export Events to Clipboard (Cmd - E) - Exports all Events to the clipboard with the exports settings selected in the Export Tab.
Export Active Event to Clipboard (Cmd - Shift - E) - Exports the Selected or Active Event to the clipboard with the exports settings selected in the Export Tab.
Canvas
Add Time to Canvas - Opens a dialog where the user can add time to the canvas.
Stretch/Condense Canvas - Opens a dialog where the user can select a region of the canvas and apply a multiplier to that section. The dialog only opens when there are one or more events.
Increase/Decrease Canvas Time/View ( Cmd - → or Cmd - ←) - Alters the viewing percentage of the canvas on the Time/X axis.
Increase/Decrease Canvas Pitch/View ( Cmd - ↑ or Cmd - ↓) - Alters the viewing percentage of the canvas on the Pitch/Y axis.
Help
MyPic Documentation - Launches the default web browser to the top of this page.
MyPic Keyboard Shortcuts - Launches the default web browser to the Keyboard Shortcuts section of this page.
Keyboard Shortcuts
Soon!