* Legend
--------

*=bug
!=change
+=addition
?=hmmm
FF=requires file format update
AF=API change

XXX very important, top priority
XX important
X low priority

[blah]  <- Notes written by developers




* New and unsorted and untested
-------------------------------

+	SCK| PageUp/PageDown while "playing == true" skips 16rows Up/down.
*	Numeric 0 to stop song could be used in 1.66, but in 1.7, it puts the value if its not in
	in the "note" column.
	[Is it useful to enter numbers while playing and follow song? what about just adding notes
	 wherever the position of the cursor is?]

*** <YanniS> my settings directories always get corrupted somehow
	<YanniS> psycle has a lisp
	<YanniS> quit and restarted, and it's still
	<YanniS> C:\Audio\Psycle\Skinss\
	[ not recreated ]

+ <Fabrice> a button (or many ones) to clean the unused samples, patterns, machines, effect etc....

+ <AF> I am thinking on using the unused "aux" column for the "off" note ( key "1" as you mention)
	to allow the user to speficy a "different than default" fadeout.
	[pooplog: OFF should be in the note column, but if you want a different than default fadeout perhaps it
	 could be called CUT ]

** <photonamp> i dont understand why sampletank notes are getting stuck in v1.7rc5 and while in 1.66
	it works fine?

** <alk_> when Psycle is open hibernate does not work (windows crashes)

* Machines
------------
**	cyanphase vibrasynth has an access violation bug
		[ I need source to fix]
**	JAL7OH- JMdrum.dll crashes psycle (or gets muted) when using FBxx and/or FAxx.
**	JMDrum is buggy (Crashes after changing settings sometimes)
*	<_sue_> are there any bugless ported machines? m3 in 22050 mode just makes a click..nothing more....
!	James says: i noticed that the appegiator in the lab causes constant retriggering of VCA
!	alk: dalay delay is not precise enough (in terms of time)
		[JAZ: Ehem... use the keyboard arrows for sample-precise tweaking]
+	pooplog synths don't have gain lfo phase cmd?
++	<[JAZ]> Internals still miss mouse tweak, right?
+	alk/[JAZ] Add Osci/etc from wire dialog to Master Dialog.
+	<pooplog> it would be nice to have an internal wavein machine to get live input
		<Druttis> Yes
		<trylle> i mean that it records and plays back at the same time * record wave in too

* Sampler Machine:
--------------------------
FF ******************* NEW SAMPLER NEEDS TO BE CODED ***********************
*	Sample loop not works - is it possible to fix it in next Psycle release?
		[[JAZ] Works for me.]
*	portamento to note, slides too much.
		[[JAZ] can anyone test this for me?]
+FF	just have an checkbox to enable or disable the Amplitude, or the whole synthesis (phongshade)
+FF	Instruments Support ( *.xi , *.iti, *.sf2. Maybe more)
		 * samples mapped by key
		 * maybe: samples mapped by velocity?
+	Improve Filter support.
		 * twk Control
		 * maybe: allow filter cutoff/res mapping to velocity
+	volume slides/arpeggio
+	better way to set loop points. (+ ping-pong loops)

* Wave Editor:
--------------------------
!	alk: escape to close wave ed
		[JAZ : It's a window, not a dialog]
+++	<_sue_> prolly some already sugested this but, a play button in the wave editor is really needed
		[Problem: Needs a sampler Machine. The wave preview is not adecuated
		 it doesn't loop, and doesn't take note into consideration ]
+	ALK waveed: remove silence from start and end of wave
+	Mystic - import .mp3 format for samples
+	Easier way to load Samples.
+	Toolbar for the Wave Editor.

* GUI (pattern):
----------------
**	<alk> somehow I managed to get the row number highlighted in two places.
		to cause the bug of more than one line number highlighted:
		select a line, then lower down click and drag to select a block.
		cause the window to scroll by making the block go off the Bottom of the screen.
		(notice the previous highlight moving up) now click another place.
		[pooplog - cannot reproduce]
**	Can't select with keyboard while follow song on, and playing.
		[[JAZ] We Need to differenciate what's follow song, and what's record notes to pattern]
+	how about option to switch the instrument and machine columns?
+ <iliks> option to switch off effects column when you want thus obtaining more screen space for channels
+	option to see waveform instead of notes in pattern editor for acid mode
+	D says: maybe have some of the effects in a drop down or available by right clicking
+	D says: When you highlight something in Psycle would it be possible to make it so you can drag and
		drop that highlighted area?
+	Xerox replace, allow multiple - it replaces the selected pattern(s) with an identical new one
+	Xerox multiple
+	In FT2, the cursor Jumps to the top of a pattern when you move from one to another (Kris)
+	maybe: MultiPattern View (see the previous pattern at top and the next at bottom, like if it was continuous)
+	hotkeys in pattern editor for (un)mute/solo the current track

* GUI (machines):
-----------------
** <_sue_> hey.....remember seeing someone at the boards sayn that psycles param bar went crazy with
	 some plug.....im checking NI FM7 vsti.......with haves 881 params.......when i tweak a knob
	 sometimes the param bar takes ages to get to its postion.......maybe this is what he was
	 talking about......the first time it happened it scrolled for ages..i thought it had went
	 crazy too.....
**	preview check box in preset dialog stopped working?
	[ it works, but you can't test notes realtime because the dialog is modal ]
**	alk:  note gets stuck bug, open a machine dialog, play a note, move the machine window,
		before releasing mouse button release note, then release mouse.
		[Could it be InputHandler::KeyToCmd() not understanding the key because of the mouse button?]
*	moving machines makes playback pop - machine interface takes too long to redraw, and moving causes redraw
	on every frame -
	[ make bigger buffers and more of them to prevent this from happening ]
*	<bdzld> when you put a machine on top of each other, the vus always pop to the top?
*	<alk> move mouse over vu, black flickering (more noticable on the big vus)* transparent only i think
!!	machine param enter dialog should be modeless.
		[[JAZ] Why? What do you want to do meanwhile?]
		[<pooplog> play notes to test parameter]
!?	alk - make wires square ended, like spec analyser
+	Prevent duplicate names when creating Machines ( FeedMe , FeedMe 2...)
+	Directories in "Add new machine" (Sorting with directories)
		 Remember previous used and add "class/type" selection to registry
+	Internal Fx Gui to Native Gui Conversion (including wiredialog, or not...)
		 Create a new "universal" MachineFrame class, for all plugins
		 (Needs a few more changes in the class definitions)
+	VST/Native machine Windows : ESC = close (Problem: can't close within the CWnd!!!)
+	Option to hide Parameters in VST GUI.
+	Add Presets in a "tab" under Parameters (easy switching/testing)!
+	<_sue_> native mahcines gui should have sliders...it would change a lot....
		<pooplog> sliders, switches, and owner draw controls i say?
+	James says: how hard would it be to put nodes in the wires, so you can bend them?
+ <JAL7OH> is it possible to make arrows resizable?
+ <Druttis_> can you have background picture in psycle somehow?
+?	<alk> make single click/drag move wire from one machine to another (preserving vol)
		[ This means changing the destination ]

* Player Engine:
----------------
**	<Alk^> do u think the recording with subtracting the buffer delay will be doable? - use fdxx command
**	<sue> playbar should take latency into account - same as ^
**	<_sue_> (autostop) now it also behaves weird with internal delays even if not in record mode....just
		playng
		[Might be fixed already, if the problem was that machines remained muted]
*	When changing octave, notes playing should be stopped (because if not, notes playing don't stop)
		[Problem!!! All key processing is done by InputHandler, so machines don't know when it happens,
		 and neither does Inputhandler know which machines are playing.
		 Doing a "player::Stop()" would be a bit hardcore.
		 I agree]
++	Add options to "save as wave" for: sample rate, # channels, bitsize
+++FF?	DirectX effects, intstruments
+++	option for record to take command FD into account like ft2
++	ALK tracker command to bypass an fx, mute command for machines
		[Currently machines are disconnected when doing so. If we do the commands, they should be just muted]
++	Maybe: New command "twc" which will send a machine command (like note delay, to say a silly one)
		 to the machine indicated by gen, and ___>to_the_channel_indicated_by_"inst"<____!
		 (asked by Pikari)
++FF	DocBexter: (machine interface) and it urgently needs 3. control/read of parameters of other
	machines ....
+	pattern repeat (loop) and song repeat (asked by Vir|us)
+	alk: global Delay Trigger, that affects every note (not just the one on this channel)
		[this seems hard, because the player will have to scan all tracks for this command, then go back and
		play the tracks]
+FF	Angelus: <pooplog>Adding panning to the wire dialog would be very easy, other than the changes to
	file format.  Psycle could be sneaky and just store it as a leftvol rightvol and convert to
	vol+panning for the gui for the user.

* Vsts:
------------
***	Crash bug when loading a big .fxb file, problem with deleting, etc...  (Rep. by Vibra and JAL7OH-)
		[Fix:Basically, make ONLY .fxb for VST's.]
** <discharge> when i close the gui for this one vsti, all keyboard shortcuts stop working until
	minimize/refocus psycle or change the current view
	this only seems to happen on the rgc audio z3ta+ and on nothing else
*	JAL7OH- patches in the preset editor should not be sorted by name - most banks (fxb) are already
		sorted by the authors.
		[ A "bypass" bug, if we do the above ^]
*	JAL7OH- vsampler3 vsti doesnt draw its popups and undocked windows properly
		 (im experiencing the same problems with all previous releases alpha1,2 and beta1,2 of vsampler)
*	JAL7OH- reaktor 3.05 - psy crashes on exiting when reaktor is loaded;
		docked toolbars in reaktor are invisible when running as a vst plug in psycle so to become visible
		again i had to run reaktor in buzz (where they are visible) undock them and then run reaktorvst in psycle;
	psycle crashes when i get the 'cpu overload' warning in reaktor
*	<_sue_> bug with native intruments pro-52 it doesnt rec the tweaks at all.....
		<pooplog> are you able to control the tweaks of it from the pattern?
		<_sue_> yes i am (in pro52)
		[ How does those plugins do Automation then? Maybe it is a Host fault not reporting that it supports it? ]
*	New Note in Quadrasid does not reinitialize the Envelope.
		[ Bug? This doesn't happen on freebase]
*	many vsts freeze the childview from updating while Left mouse button is down, which makes it so pattern does
		not draw, so it appears that tweak recording is not working, such as:
		-juno X2
		-externalizer
		-leveler
		-tools one
+++FF	<bdzld> which is support for multiout vsti?
		<pooplog> if psycle was smart enough to detect mutli-out vst, when you drag a wire to it, it could pop up a
		dialog asking what you ouput want it to connect to - this will require a file format change though :(
!	List of "VST's not to load".

**	The Winamp plugin shows a memory leak with modules that have VST's. I have overlooked but I
	haven't found the cause yet. I will try later with a leak detector program.

* MIDI related
------------
**	Midiout is NOT solid...
*	MIDI out only works with Waveout
++	midi control commands learn
++	midi control commands handling 14 bit messages
++	<lastfutur> if psycle recieves a program change i suggest it interprets it as the user wanting to change
	the active machine to machine number [program number] ...this enables psycle for live use without screen
+	<lastfutur> future feature requests for the controllers tab: midi routing presets;
	checkbox: binding which machine is active to incoming program changes;
	binding midi routing presets to machines; (possibly: save the presets in the psy)

* Interface (contains pattern stuff too):
------------
**	<Erodix> theres one little thing.. when psycle is playing and i double-click an song, a new
	psycle opens..
	[ DDE ? mmmm... ]
**	<lipid> so is there any way to make 'Delete' an assignable key in the keyboard config? * some other key
	combinations don't work either, like ctrl+pageup etc.
**	<[JAZ]> "fixing" the cache.map file so that it can include dates of dll's and update automatically
	the info when new one.
**	should save wire dialog settings
*	<alk> in the master the vols dont match up with the wire vol, seems to be 0.1 bigger
	[Quantization errors, due to that the sliders have a range of 256. maybe I should make the
	 range bigger]
*	<alk> there's a bug where when u alt-tab the icon is not correct
		[ cannot find the reason, older version had this too ]
*	<alk> 'play current block' loops current pattern -should it just play the selected block?
*	<alk> 'play current pattern' plays song from current order (which is the same function as 'play song (normal)'
	-should it just play the current pattern?
*	<alk> in keyboard settings, try setting transpose channel +1 to 'alt f12', display Alt f12, but then if you move to another function and back it displays f12
!!!	Psycle default colours should be improved (cursor, selection, etc.)
!!	Should make it so clicking on colour boxes pops up menu
!!	<pooplog> i mean follow song, multi aud, noteoffs, tweaks, etc. could be buttons perhaps
!	JAL7OH- the cycle lenght in the swing fill dialog set to lines per beat/2 by default
++	<alk> another idea, a keypress to toggle follow song
++	<alk_> alt-f5 - play song from start
++	<[JAZ]> pooplog : Mmmmm... Seems that the "song modified" code doesn't work now..
		[because machine view does not track changes yet]
++	<_sue_> something like selecting a generator and having some global edit functions (in the edit menu :)
		like :  delete all notes / tranpose all + 12 / delete all tweaks .....stuff like this *for the entire song*
++	<sue> hotkeys for seq edit cut, copy, paste, etc?
+ <bd|cup> poop: could you add an option to make psycle load the last opened .psy, when you run it?
+ <sampler> Well, i've been playing and changing default hotkeys and now i think it would be good
	enhance this feature.  I think the hotkeys list/dialog should show them in a better way, various
	types of sorting, show the complete keys assigned (larger textbox)  , allow printing it....
+	<Alk> to be able to drop a play markers (start and end) to loop through to make editing easier
+	<Alk> +alt to make the transposing only effect current machine/sample
		i.e. ctrl+alt+f11 = transpose current gen/sample down 1 note
		ctrl+alt+shift+f12 = transpose current gen/sample up 1 octave
+	<dp|away> you could setup some standard buffers you know are solid and do like setting low -> high
		and shield the user from the nastiness
+	James says: i have an idea for that actually... seeing as there are so many configurable
		keys... could perhaps have a textbox, where if you clicked in there, typed a key, it would highlight
		what was assigned to it
+	<alk_> the 'Apply' button is not implemented in the config dialog
+	<alk> make it so that you can click anywhere on the wire to get wire vol? (in case triangle is hidden)
+	<alk> song properties (allow carriage returns, make box bigger?)
+	<_sue_> centering the open file menus....
		and saving theyre size.......i allways have to make them larger so i can browse my samples dir....its
		convenient for when you have folders with many files as you usually do with samples
+	<Alk^> I also think that the cursor movement after a paste should be optional to =)
+	<sue> <pooplog> so please explain to me exactly what sequence mix paste button would do- it would mix-paste data
		into the currently selected blocks? <sue> yes it would work as pattern mix paste for more than one pattern.
+	<wayfinder> alk, oh oh and another one :D it would be cool if you could, for example with alt-0 through
		9, change the row skip
+	<wayfinder> alk, and it would be nice if the row skip would affect the cursor movement as well (or at
		least if the tracker could be configured to do so=)
+	<wayfinder> like navigating in the sequence list with the cursor
		[No. It is not needed, and causes alot of harm. if you want to navigate you have hotkeys]
+	<wayfinder> numeric entering of pattern number
+	<wayfinder> oh, i forgot one function of the IT pattern editor. when the cursor isnt following the
		pattern, or when the song isnt playing, hitting the G key on a number takes you to that pattern
		[ dear wayfinder, please remember that this is not IT damnit ]
+?	<wayfinder> it would be so much cooler if there were like macros
		say, i have a chorus part that's pattern 4, 6, 4, 5 and i have that three times in the song or so
		i'd love to define pattern macro A as "4, 6, 4, 5" and be able to enter macro A in the
		pattern sequencer
+	 MORE Keyboard shortcuts
		[ We've added some more actually]
		[ and most the needed ones are listed up there ^^ ]


* Driver Issues:
------------
** <_sue_> just a small issue ive noticed with this build....when i select asio psycle crashes...wich doesnt
	amazes me since i dont have asio.....but software should be "crash free"...
		[ if you have 0 drivers enumerated, perhaps you should not be able to select that method ]
*	Output gets weird after a bit and start playing all crackly and doubletime
		[<[JAZ]> I've seen this bug only when playing a song, going to configure the output and accepting
		in the "waveout" or "Directsound" box. When accepting in the config dialog, all is back to normal.]
*	DirectSound Output is a bit buggy.Crashes and bad sound reported.
	[ still ? ]
* <Z-Matrix> any idea how do I set the BUS output in the ASIO Driver? I Use Digi9652 RME Hammerfall,
	it got 8 outputs

* Importing:
------------
*	It doesn't add the machines necessary to play all notes.
++ .mid import/export
+	IT importing
+	.mid import
+	Import machines from song - the (regular) .psy is loaded without erasing the already loaded song ignoring
		pattern data and other settings, this possible? (yes, but will require new song parser...)
+ <angelus> In this threat I suggest an option to import a XM or IT file into differents
	Sampler-machines separating by instrument/sample.

* File Format:
------------
**FF	psycle is saving the WRONG lines/beat from file.  I saved a song with 3, it loaded as 2.
	[Save LPB instead of SamplesPerTick]
**FF	plugins which make use of the "SaveData" (native) or "SaveChunk" (VST) can cause a crash if they are
		missing when you load a song. Wont get fixed by now. Needs a fileformat change.
*FF	if you import an XM file and save, the finetune of the samples is not saved (Fileformat limitation)
!!!FF	longer sequences (256)
!!!FF	more tracks (64)
+++FF	new file format: (machines save custom data length, patterns stored according to # tracks, sequence
		length stored according to length, vst multi-out, connections as linked lists, wire nodes,
		volume column, multiout info, direct x stuff, etc.)
++FF	songs should save master decrease flag
		[This can be hacked by now without need of fileformat change]
+FF	<pooplog> again i ask why the connection limit is 12 and not 16 or 24
		[should use linked lists instead of arrays]









-- Possible Features For Psycle 2 --
------------------------------------

* Editing Capabilities:
-----------------------
	* Multi pattern Sequencing
	* Multiple Editors (Not only tracker view)
	* Parameter Automation  ( Envelopes for Parameters )
	* Velocity/Panning/other_weird column to pattern data
	* Appregiator: One "template" note, notes "produced" by the appregiator in a different colour.
	* "zip"-able columns.
	* Tracker track? (for bpm, global volume...)
	? Notes of current selected machine marked with a different colour
	? Maybe notes/etc, of muted machines shown in grey
	? Time signatures

* Machines :
------------

	* Multiple Inputs/Outputs
	* MIDI generator - instead of generating audio, generates MIDI out - sync could be an issue.
	* Sequencers: Posibility to control more than one machine at the same time
	* Compressor/limiter
	* Flanger/Chorus

* Audio/Control:
----------------

	* ASIO driver I/O
	* audio record support (Like, from microphone)
	* "MIDI Controlling <-> Machine <-> Machine" Interface = MIDI mapping
	  (allow to map midi commands to change different parameters)

	* Ogg/Winamp Plugin export?