300 sensor systems… I can’t say I’m aware of all of those, but I do know that there’s a whole lot of processing going on before what you see reaches the visual cortex.
In a loose sense, the entire visual cortex could be considered a large set of sensor systems, given that’s where you sense orientation (‘bar’, ‘grating’, ‘end-stopped’ a.k.a. corners), motion (direction-sensitive cells) and other higher-order stimuli. A stroke in the right place could mean something as specific as corners of things would be less attention-grabbing, or even altogether imperceptible to you. I once smoked salvia divinorum and I am pretty sure it did exactly this; the edges of things seemed to ‘run off past the corners’ – combined with the odd sense of somebody else controlling my movement, I naturally concluded that these were definitely force fields and I had to carefully step over each and every one of them …Anyway
So even before visual input comes near the brain, all this happens, and probably more:
- In the retina, rods, cones and photosensitive ganglion cells directly take visual input - the ganglion cells are much deeper in the retina than the others - Cells in the retina perform edge-detection to compress the visual information enough to travel the optic nerve; basically, a high-pass/sharpen filter made of neurons - ‘Retinal ganglion cells’ (all 5+ different classes of them) send results on its merry way into the brain, some types extending all way way through the optic nerve
Types include: - Midget cells sense color changes well, and also sense great contrast changes (but not minor ones so much) - Parasol cells sense minor contrast changes well, but not color changes - Bi-stratified cells are known to sense moderate contrast changes, and are only affected by inputs from blue cones
Below: the insane amount of cells which process your vision before it gets to your brain. Direct input starts at the bottom of the pic, and moves up.
I should think the auditory system would be a lot simpler. I know there’s some sort of high-pass filter that works on a per-frequency basis, i.e. it effectively ‘tunes out’ unchanging, continuous sounds. I should expect the auditory cortex picks up on sudden stops and starts, since those are fairly attention-grabbing things. Probably some more cells for rising and falling tones, helping speech recognition, supplementing general sound recognition, fuelling the ‘infinite’ perception of the Shepard tone etc.
Basically, the rule of perception seems to be, think of every ‘event’ you recognise and there’s probably a cell or set thereof to ‘sense’ it. I guess a great portion of the entire brain is a some sensor or another.
EDIT: Back on topic – my ‘naive’ algorithm for baby’s-butt-smooth sound stretching, preserving pitch. Feel free to pilfer as desired, no patents here (that I am aware of).
Following on from basic FFT theory, sound could be considered to be made of sine-wave ‘grains’ of all different frequencies, amplitudes and offsets in time (roughly, I would guess that phase = grain start time MOD period).
- A grain is a single period of a sine-wave; an ‘atom’ of sound
- Grains/sec is low for low frequencies => little storage requirement
- Grains/sec for treble is high => greater storage requirement
We may need some sort of timing information for every grain if we would like to preserve phase information. For now, that’s a bit over my head so I will politely forget about it
Anyway, into the meat of the pitch-shift. Let’s say we take the ‘grid’ approach, where you have a sort of grid, but every row is chopped-up finer and finer as you go higher frequency. Each cell represents a grain, represented by its amplitude only (frequency is inferred from the row number, timing is inferred from the column number).
- A 2x speed-up would be trivial: remove every second (time-domain) cell, making the entire grid half-length.
- A naive but decent 2x slow-down would simply involve playing every grain twice
Finer pitch changes would entail removing/repeating every Nth grain in each frequency, at its simplest (i.e. nearest-neighbour sampling). As you can imagine, we could apply any of the usual interpolations to recover any pitch we like.
And for pitch-shifting, just stretch the sound as above, then re-pitch in the usual Renoise way in the opposite direction, e.g. To double the pitch: double the length using the above method, then play an octave higher.