PSPSeq 3.01
pspseq@dspmusic.org
http://www.dspmusic.org/psp
http://groups.google.com/group/pspseq
(c) ethan bordeaux 2004-2008

--------------------------------------------------------------------------------

(0)  Introduction

Thanks for downloading PSPSeq!  PSPSeq is a powerful sequencer and synthesizer
for writing music on the Sony PSP handheld system.  The main documentation is
PSPSeq301UsersManual.pdf and should be used as the full reference for the
program.  However, I wanted to provide a quick start guide for PSPSeq because I
know not everyone wants to pour through 50+ pages of documentation to make some
loops.  I strongly encourage that once you get started with PSPSeq (and before
you email me with any questions or feature requests) that you read the full
documentation as there is a lot of additional information and tips contained in
there.

(1) Installing PSPSeq

PSPSeq is homebrew software; because of this to run this program you must
follow very specific steps which change depending on the firmware revision on
your PSP.  To find your firmware revision, go the Cross Media Bar (XMB) and
select System Settings->System Information.  The System Software version is the
firmware revision.

There are a number of online guides which generally detail the steps required
to run homebrew.  Because firmware compatibility is always changing, it is
recommended using one tied to a popular online forum is used as a reference.
Below are a couple good references on custom firmware and homebrew for the PSP:

http://forums.qj.net/forumdisplay.php?f=43

http://alek.dark-alex.org/pspwiki/index.php/Main_Page

There are two different versions of the PSP; the first revision (PSP fat/phat)
and the second revision (PSP slim).  The best way to run PSPSeq on a PSP fat
is to either run Sony official firmware 1.5 or install the latest M33 custom
firmware.  To run PSPSeq on a 1.5 firmware system, copy the appropriate
subdirectories of the zip to the Memory Stick (generally speaking this
directory is ms0:/PSP/GAME).  This is the only official Sony firmware
revision that allows for direct execution of homebrew software.

PSPSeq also runs on M33 custom firmware both with and without the 1.50 add-on
installed.  Only PSP fat runs the 1.50 add-on.  To run PSPSeq in this manner,
copy the contents of the 1.5 subdirectory to the ms0:/PSP/GAME150 folder on
the memory stick.  If the 1.50 add-on is not installed, copy the contents of
the 3.xx directory to the ms0:/PSP/GAME directory on the memory stick.  This
is the only version usable on PSP slim.

IMPORTANT: if you run the version of PSPSeq from the 3.xx subdirectory and
are using Custom Firmware version 3.80 or 3.90, you need to install fatmsmod.
This application fixes a bug in the flash memory driver in the 3.80 and 3.90
kernels which causes extremely slow access times.  By installing fatmsmod,
flash accesses are the same speed in both the 1.50 and 3xx versions of PSPSeq.
I have personally tested the fatmsmod fix with PSP fat and it works fine.  The
instructions I followed to make this patch to the firmware are here:

http://forums.afterdawn.com/thread_view.cfm/637110#3854788

In summary, these are the steps to follow to install PSPSeq based on the
hardware and firmware on your machine:

PSP fat, 1.50 firmware
  - copy the contents of the 1.5 directory to ms0:/PSP/GAME

PSP fat, 3.xx custom firmware, no 1.50 add-on
  - copy the contents of the 3.xx directory to ms0:/PSP/GAME.  installation of
    fatmsmod is required if custom firmware is 3.80 or 3.90
    
PSP fat, 3.xx custom firmware, with 1.50 add-on
  - copy the contents of the 1.5 directory to ms0:/PSP/GAME150
  
PSP slim, 1.50 firmware
  - PSP slim cannot run 1.50 firmware.

PSP slim, 3.xx custom firmware, no 1.50 add-on
  - copy the contents of the 3.xx directory to ms0:/PSP/GAME.  installation of
    fatmsmod is required if custom firmware is 3.80 or 3.90
    
PSP slim, 3.xx custom firmware, with 1.50 add-on
  - PSP slim cannot run the 1.50 add-on
  
In general, the best way to install custom firmware is to use Pandoras Battery
in combination with a Memory Stick which has the appropriate custom firmware
copied on it (known as a magic memory stick).  Pandoras Battery is a
specially programmed battery which gains control of the PSP before any firmware
is loaded.  The magic memory stick contains files for installing the latest
firmware along with additional programs such as the 1.50 add-on.  The steps
required to create Pandoras Battery and the magic memory stick are more
complicated than I can reasonably get into here (plus this information will
undoubtedly be out of date as soon as it is released).  The easiest way to
learn how to install custom firmware is either by asking on a major PSP forum
like qj.net, dcemu.co.uk, or forums.afterdawn.com, or by googling Pandoras
Battery and Magic Memory Stick.

One important thing to keep in mind about Pandoras Battery is that you need a
homebrew-enabled PSP to make one.  If you do not have access to a PSP that can
do this, your options are to either buy one online (either a preprogrammed
official Sony battery or a battery tool such as the Datel service mode
battery), or find someone local to where you live that can either make a
battery for you or program the new firmware in your PSP (craigslist is a good
option for finding people who will program custom firmware for a fee).  Once
you are running custom firmware you can update the firmware without Pandoras
battery, as well as make your own battery.

This is a list of people willing to make Pandoras Batteries and program new
Custom Firmware for free:

http://www.darkmessiah.byethost13.com/freeservice.html

The firmware update and compatibility landscape is constantly changing.  In
general PSPSeq is a well-behaved program; therefore it should be compatible
with new methods developed to run homebrew.  If you are having trouble getting
PSPSeq to run on your firmware revision, visit the PSPSeq forums at
http://groups.google.com/group/pspseq or contact me at pspseq@dspmusic.org and
I will do what I can to help.

PSPSeq is a part of the Installotron project started by Fanjita.  This is an
attempt to create a generic installing environment for PSP homebrew and is a
great piece of homebrew in its own right.  It can be found at:

http://psp-homebrew.eu/

PSPSeq saves all sequence files (.SEQ) in a .\SEQ subdirectory, all of its .WAV
files (in its default configuration) in a .\WAV directory and all presets in a
.\PRESETS subdirectory under the install location of PSPSeq.  The synthesizer
initialization file CUSTOM.PSI is placed in the same directory as the PBP
executable.  The zip file containing PSPSeq has the necessary directory
structure.  If any of these directories or files are not available, the
corresponding functionality will also not be avaialble.

(2) Using PSPSeq

When PSPSeq is loaded, it is in Stepedit Mode; this allows you to trigger notes
(hits) on each track and configure some parameters.  The current selected step
is highlighted in red; all other steps are green.  To move to a specific
step/track, move the D-pad or A-pad.  To trigger a note at a particular step,
hold the X button.  One unique feature of PSPSeq is that each hit is
"probabilistically" triggered; this means that rather than always triggering a
note at a particular step it is possible to set a probability that a note will
trigger at a particular step.  This is represented by the "TRIG" value in the
upper right hand side of the screen.  If TRIG is 0, the note will never trigger,
if it is 50, there is a 50% chance it will retrigger, and if it is 100 the note
will always retrigger.  Setting the probability is done by holding the X button
and moving the A-pad up or down.  To set a volume for a particular hit, hold the
X button and move the A-pad or D-pad left or right to decrease or increase the
volume.  The volume is visible next to "VOL" on the upper right hand side of the
screen.

Instant setting of TRIG and VOL to 0 is possible by pressing X and the
L-trigger simultaneously, and instant setting of TRIG and VOL to 100 and 50 is
possible by pressing X and the R-trigger simultaneously.

To modify the overall volume and pan on a particular step, press the O button
and move the A-pad or D-pad left or right (for left and right pan) and up or
down (to increase and decrease track volume).  Pan can also be set to the same
value for all steps in a loop by pressing O+R-trigger.  These parameters are
next to "PAN" and "TVOL" in the upper right hand side of the screen.

To mute a track, press the square button.  To mute all but the selected track,
press square and L-trigger, and to unmute all tracks press square and the
R-trigger.

To modify up to 2 different synthesis parameters, hold the triangle button.
There are a number of button combinations for modifying the rate at which
parameters are modified.  They are as follows:

    A-pad up/down or left/right:                fast modify
    A-pad up/down or left/right + L-trigger:    slow modify
    A-pad up/down or left/right + R-trigger:    fastest modify
    D-pad up/down or left/right + L-trigger:    slowest modify, discrete steps
    A-pad up/down or left/right + R-trigger:    fast modify, discrete steps

Additional synthesis parameters are available via the menuing system.

To swap loops (for composing a song consisting of many loops) press the
L-trigger or R-trigger.  The current loop is next to "LP" at the lower left
hand side of the screen.  PSPSeq supports up to 100 unique loops per song.

To access the transport to start/stop the sequencer, enable loop vs song mode,
set the beats per minute (BPM) and global volume, press the SELECT button.
Parameters are modified by pressing the D-pad up/down and in the BPM and volume
cases, the A-pad or D-pad up/down.

To access the menu system, press the START button.  Please note that menus are
only available if in LOOP mode or if the sequencer is halted.  Pressing START
while in SONG mode and the sequencer is playing will bring up the visualization
screen (to exit visualizations press O).

In general, the D-pad is used to move between menu items, pressing the D-pad
right or pressing X selects a menu option, pressing the D-pad left or pressing
O goes back one menu level (and exits the menu system when at the top level).
Pressing START at any point in the menu system returns to Stepedit Mode.  The
menu system contains the following general capabilities:

  SYSTEM    new, load, save, save as, record, visualize, display, control,
            about, help, exit
  TEMPO     BPM, tap tempo, swing, swing steps, seqlen
  TRACK     copy trig, copy track, copy gen/fx/env/freq, clear track, shift
            track, fill track
  LOOP      copy track to loop, copy loop, copy track to all loops, clear loop,
            rename loop
  SONG      sequence
  CONFIG    freqmode, stereoize, humanize, loop jump, record location
  SYNTH     edit synth, add synth, del synth, make preset file, load preset,
            save preset

For more detailed information, refer to PSPSeq301UsersManual.pdf.  PSPSeq also
includes a  quick reference sheet for commands called
PSPSeq301QuickReference.pdf.

Good luck!

(3) Revision History

Features Added to 3.01                                          Aug-13-08

- added 3.xx build for direct 3.xx compatibilty
- fixed pitch bend to work for both higher and lower frequencies
- added support for reporting memory for > 4GB memory sticks
- fixed bug with accessing menus in SONG mode
- fixed bug in BFM modulator generator
- fixed bug in clearing steps in a loop
- fixed bug in displaying VOL data in EDIT SYNTH menus
- fixed bug in copying N and WAV parameters in TRACK menu
- fixed bug in SHIFT TRACK when shift values was > 32
- changing control-only step vs "normal" step doesn't quickly toggle in
  sequencer

Features Added to 3.00                                          June-25-08

- fixed dc offset in humanize and delay cases
- synthezier presets
  - load to step, loop, all loops, save current step, preview preset data,
    multiple preset files per synth comp
- fixed wav save bug
- add exponential decay on freq to all synths
- 7Mbytes of memory for samples
- global configurable sensitivity on apad
- START always exits menu entirely
- fm feedback for BFM and FM synths with configurable routing
- shortcut to synth params from sequencer screen (triangle+L-trig+R-trig)
- per step pan, pan and vol moved to ENV as well as Stepedit Mode
- faster load/save and more compressed SEQs
- configurable stepping through sequencer with apad
- randomize parameters with ranged setting, start/end points for random values
- configurable colors
- namable loops, display next loop jump point
- better DADSR controls
- edit a subset of steps in a loop (latched mode)
- jump by 8 through seq load list (triangle+D-pad up/down)
- enhance clear track to clear from an arbitrary step
- enhance shift track to keep old hits for copy/paste functionality

Features Added to 2.11                                          Mar-01-08

- VOL used on non-triggered hits
- copy/paste of step parameters also copies TRIG/VOL values
- using L/R trigger with D-pad in WAV synth steps through parameters in a more
  logical manner (L-trig+D-pad goes up/down 1/512 and R-trig+D-pad goes up/down
  1/32).
- fixed bug where writing to memory stick fails if >2GB memory available.  the
  maximum value is now 4GB.
- pressing SELECT starts on PLAY/STOP rather than LOOP/SONG for faster starting
  and stopping of the step sequencer.
- WAV properly loads 8-bit samples.
- little optimizations to envelopes and writing to the screen

Features Added to 2.10                                          Apr-15-07

- interpolate GEN/FX/ENV parameters
- copy/paste synth data in a step from Stepedit Mode
- copy gen, copy fx, copy env, copy freq between tracks
- trackshift, move all params in one direction or another
- instant delete and TRIG/VOL override setting in Stepedit Mode
- solo/unmute all tracks
- copy track to all loops
- configurable record WAV output to ms0:/PSP/MUSIC
- new visualization modes and controls
- display of battery life, time, memory available
- memory optimizations and bug fixes to WAV playback
- small optimizations and bugfixes

Features Added to 2.01                                          Feb-25-07

- fixed bug in Stepedit Mode which occasionally caused the sequencer to enter
  Transport Mode.  this may have also fixed a redraw bug in the sequencer.
- updated weighting of instruments to try to avoid processor overloading.

Features Added to 2.00                                          Feb-08-07

- visualization
- frequency tracking in SVFFX
- 2 FM synthesizers, single oscillator 2-op and dual oscilaltor 2-op
- WAV file playback synthesis
- square wave synthesizer with configurable pulse width
- WAV recording of songs and loops
- waveshaper FX
- square resets parameters to default value in synthesizer
- more wavetable options
- improved noise generator
- add/remove instruments
- only put FX on menu when FX exists
- menu/sequencer trigger bug fixes
- more A-pad and D-pad controls on parameters
- fix tap tempo bug which halted the sequencer
- help menus within PSPSeq
- internal processing optimizations
- remove parameter data for untriggered steps

Features Added to 1.01                                          Oct-25-06

- fixed 3 bugs in 1.00 related setting FREQMODE, loading custom presets and
  the menu system.

Features Added to 1.00                                          Oct-22-06

- fully editable parameters on instruments
- customizable instrument groupings
- multiple loops/song sequencing for writing entire songs
- tap tempo
- improvements and optimizations to many of the generators and fx, along with
  new instruments
- configurable loop length
- proper swing handling

Features Added to 0.20                                          May-07-06

- partially editable parameters on instruments
- better BPM handling + swing
- clear/copy tracks
- absolute and 12 tone frequency handling
- new instruments
- 64 step sequencer
- documentation!

Features Added to 0.10                                          Feb-24-06

- file save and load
- track mute
- volume control for each track
- sequencer start/stop
- optimizations to allow for more concurrent audio tracks

Features Added to 0.00                                          Jan-29-06

- initial release!