Offline

I just mean like on a typical dj mixer you have kill switches for low mid and high freq ranges..

Offline
WOW MAN!

Ah, OK. Yes, you'd kind of have that because each drum patch would need 5 switches to select which voices it uses. Could probably extend this to a kind of global switch that will mute each hardware voice. Nice idea, I'll think about it more.

Offline

Can I have your babies, neilbaldwin?  Pleeeeeeeeeeeeeeease?

This seems excellent.  Trackers aren't really my thing any more, so this seems like something I could actually use! XD

Offline

yeah man.. one button touch that restricts the pulse width on the lower sounding "parts" or something to that extent..

Offline
Milwaukee, Wisconsin USA

Neil,

if you can fire some kind of clock signal out the controller port 2 i could try to put together somekind of sync device. if it could be something
as simple as 24ppqn  would be a great start.. at least then we can achieve DIN sync. And from there Midi can easily be had.

perhaps it could be a 2 mode type thing where you can set to master/slave
So it will either provide clock out or wait till it receives clock input.

And on a selfish note... having the 24ppqn output would allow me to sync to my modular a lot easier. hahaha

Last edited by low-gain (Nov 15, 2010 3:15 am)

Offline
rochester, ny
low-gain wrote:

Neil,

if you can fire some kind of clock signal out the controller port 2 i could try to put together somekind of sync device. if it could be something
as simple as 24ppqn  would be a great start.. at least then we can achieve DIN sync. And from there Midi can easily be had.

perhaps it could be a 2 mode type thing where you can set to master/slave
So it will either provide clock out or wait till it receives clock input.

And on a selfish note... having the 24ppqn output would allow me to sync to my modular a lot easier. hahaha

i would gladly pay 80 dollars for such a device.

Offline
New York, New York

Pictograms would make more sense than the drum parameter names in the layout. Pattern arrangement and instrument parameters and drum patterning would make sense on separate pages to me. I like the idea of 32 steps per pattern.

Offline
lolusa
mk wrote:

sounds like hyper-Trippy-H

Glad I'm not the only who thought that.

mk wrote:

perhaps it could be "playable" also.. like an MPC.. using the game pad, or using two game pads
one could control the "sound" or effects and the other play the drums

SEL + L

low-gain wrote:

Neil,

if you can fire some kind of clock signal out the controller port 2 i could try to put together somekind of sync device. (stuff I don't understand)..

When drum machine was mentioned, syncing was the first that came to mind. I know it's jumping the gun, but I would heart LOVE heart a sync'd NES with the rig. Especially something that looks like it could be edited on the fly.

Keep it up!

Offline
WOW MAN!

OK, last night I was fiddling about with LFOs and envelopes and also running a few numbers. Per drum there are 42 parameters so it's just not practical to be able to modify all of them on each pattern step. When you start multiplying that up by the number of tracks that's 42 x 6 bytes per pattern step x 16 pattern steps. Each pattern would take up 4032 bytes which is just silly.

I've come up with a plan though. For each drum patch, you can select 4 of the parameter that are able to be modified by the pattern. This way I'm only having to do 6 bytes per pattern step (x 6 x 16 = 576 bytes per patter). The 6 bytes per pattern step would be: pitch, retrigger speed, param 1, param 2, param 3, param 4.

Here's the list of parameters that I think should make it pretty flexible and interesting. The codes in brackets e.g. (AAV) are what you'll specify in the drum patch as being modifiable by the pattern steps.

;00 A AMP (AAV) Volume    ;Nx = curve number, xN = volume scale
;01 A AMP (AAE) Envelope    ;Nx = attack, xN = decay
;02 A AMP (AAG) Gate Time    ;00-7F = one-shot, 80-FF = looped envelope
;03 A OSC (AOC) Coarse Pitch    ;signed semitone offset
;04 A OSC (AOF) Fine Pitch    ;signed detune offset
;05 A OSC (AOH) Hard Frequency;00=off, anything else = on
;06 A DTY (ADS) Mode/Speed    ;00-7F = one shot, 80-FF = loop
;07 A DTY (AP1) Pulse Width 1    ;00 40 80 C0
;08 A DTY (AP2) Pulse Width 2    ;00 40 80 C0
;09 A LFO (ALD) Delay    ;00-7F = vib/sweep delay, 80-FF = arpeggio speed
;0A A LFO (ALS) Speed    ;vib speed or if 00, sweep mode. If arpeggio mode, speed = number of repeats
;0B A LFO (ALW) Width    ;vib depth or if sweep mode, pitch sweep. If arpeggio, depth = chord

;0C B AMP (BAV) Volume
;0D B AMP (BAE) Envelope
;0E B AMP (BAG) Gate Time
;0F B OSC (BOC) Coarse Pitch (semitone)
;10 B OSC (BOF) Fine Pitch (detune)
;11 B OSC (BOH) Hard Frequency
;12 B DTY (BDM) Mode/Speed
;13 B DTY (BP1) Pulse Width 1
;14 B DTY (BP2) Pulse Width 2
;15 B LFO (BLD) Delay
;16 B LFO (BLS) Speed
;17 B LFO (BLW) Width

;18 C AMP (CAE) Envelope    ;if 00, just use gate time to turn on/off, otherwise, Nx = frames on, xN = frames off, in loop
;19 C AMP (CAG) Gate Time
;1A C OSC (COC) Coarse Pitch (semitone)
;1B C OSC (COF) Fine Pitch (detune)
;1C C LFO (CLD) Delay
;1D C LFO (CLS) Speed
;1E C LFO (CLW) Width

;1F D AMP (DAV) Volume
;20 D AMP (DAE) Envelope
;21 D AMP (DAG) Gate Time
;22 D LFO (DLD) Delay
;23 D LFO (DLS) Speed
;24 D LFO (DLD) Depth

;26 E SMP (ESM) Sample Number
;27 E SMP (EPT) Pitch
;28 E SMP (EST) Start Offset
;29 E SMP (EEN) End Offset
;2A E SMP (ELP) Loop

;2B Seq Parameter 1 ;these are modifiable in real time by the pattern
;2C Seq Parameter 2
;2D Seq Parameter 3
;2E Seq Parameter 4

So you'd say, set "Seq Parameter 1" to AAV (Volume A) and "Seq Parameter 2" to ALD (LFO Depth A) so then in the pattern you can set values to these parameters indirectly on each pattern step. Nice eh? smile

Last edited by neilbaldwin (Nov 15, 2010 7:06 pm)

Offline
philly

This sounds awesome!

Offline
Bristol

this idea makes me smile loudly. Trackers ain't my thing, If this had some simple midi clock a la nanoloop I'd be all over it like a rash with jam on it.

Offline
Philly, PA, USA

You know what would be cool, having the option to save presets separate from song files, similar to what you can do in DS-10, though i don't know how doable that would be considering hardware limitations?

Offline
WOW MAN!

I've been making a bit of progress with this. I've pretty much done all the synthesis for the drums. It was quite a challenge to make the synthesis flexible but compact and fast and I think I've got a pretty good system. All in all there are 24 amp envelopes and 24 LFOs (that also handle very simple pitch table and arpeggios) running twice per frame (once just isn't enough these days smile) plus really simple but flexible duty modulation. I plan to do DCM too but that's pretty straight forward as it requires no real-time modulation unlike the other voices.

There's a long, long way to go. I think I've worked out rough data sizes and there should be enough RAM for 32 patterns and 256 steps to the Song. As the Drum Patches themselves only take up about 48 bytes there's a lot of space for loads of drums. You'll be able to assign drums to tracks of the matrix sequencer per pattern.

Anyway, a picture paints a thousand words and all that so....

I got a bit bored with coding recently so I've been messing about trying to construct a nice UI for the project. I think I've pretty much got it nailed.

I think the picture explains much of what this will be about but some bullet points;

+ 6 tracks to the matrix sequencer. Tracks are not tied to the NES's voices but are 'virtual'
+ each Drum Patch can use all 5 NES voices or any combination (there are little switches to turn voices on/off in each Patch)
+ each Drum Patch has 3 real-time controllers that you can assign to any of the 46(ish) parameters that make up a Patch
+ the matrix sequencer works on a top-down priority system
+ you can place either a trigger, a 'tie note' (extend a trigger) or a kill trigger (kills any sound on that track)
   in the grid.
+ For each trigger you can set the root note, a retrigger speed and also parameter data for the 3 real-time controllers
+ I will definitely be seriously investigating external sync for this because it lends itself to it so much

I'm going to get things to a nice stage where I can put the whole thing on the shelf for a while as I'm really, really excited about this project (I've had some fucking amazing sounds out of it with a hex editor - it does drums sounds and bass sounds really, really well big_smile) and it's becoming a distraction.

Offline
rochester, ny

that looks awesome.

Offline
thieveland ohio

yes!!!!!

Offline

what node said.