I did a second video.
(First one here as this got bumped to a new page, don't want you to miss it http://blog.ntrq.net/?p=404)
chipmusic.org is an online community in respect and relation to chip music, art and its parallels.
You are not logged in. Please login or register.
ChipMusic.org / Forums / Posts by neilbaldwin
I did a second video.
(First one here as this got bumped to a new page, don't want you to miss it http://blog.ntrq.net/?p=404)
Here you go: video with audio.
(Sound quality seems to have been compromised by YouTube but you'll get the idea)
As far as I know it won't work on a dingoo. PR8 requires support for 32K NVRAM (like Pulsar) and still I think the only things that do are Nestopia and PowerPak carts.
Only advice I can give is for you to nag the authors of dingoo (or your other favourite emulator) to get them to add proper support (the ability to support NVRAM > 8K comes from the extended iNES 2.0 ROM headers).
Oh lord, I finished off the synthesis stuff tonight and got it playing one track of a (fake) pattern, complete with real-time modulating via the Trigger Parameter function and a drum patch using all 5 hardware voices.
It works incredibly well. I've amazed myself and I'm not easily impressed
Getting it to this stage has thrown up a few UI issues to solve (and a couple of bugs) but I'll try to do a little video tomorrow night.
Pulsar is in the 'beta testing phase'. I've also got Keff having a look to see if he can polish up the pixels a bit. Updates probably coming soon.
Nice idea but it's too complicated for this project.
I've been laid up with some sort of chest infection / virus type nonsense so I've been doing bits and piece on PR8.
I'm not kidding when I say this is going to be the most awesome thing to ever hit the NES. Seriously.
I'll do one of my infamous videos soon as most of the UI is now working (and it's kind of producing sound that you can modify via the UI) but there's a long way to go yet. Had another bit of a redesign and I think I'm closer to what I need now. Quick screen grab to show you some progress;
Some info:
You can see the cursor in the Grid Editor. This is where you place the triggers for the sounds/drums. On the right-hand side are the parameters for each trigger. From top-to-bottom: root note, retrigger speed, parameter 1 value, parameter 2 value, parameter 3 value.
To modify the trigger parameters in the grid, you can tap B and the editing cursor will move to the trigger box where you can edit each one. Alternatively, if you hold A on a trigger in the grid you can modify one of the 5 values without leaving the grid. Which value you edit is indicated by the little green arrow next to the trigger parameters. The position of the arrow is saved per track. To move the arrow, tap B to jump to trigger box and move up/down. Tap B to jump back.
It might take a little effort to get your head around from just a text description but it's really fast and simple to make very complicated patterns of triggers. I'll do a video to show you.
The three parameters P1,P2 and P3 all relate to the 3 settings at the bottom of the drum parameters (handily labelled P1, P2 and P3!). At the side of these you'll see 3-letter codes. These code refer to one of the 42 parameters of each drum. In the picture;
AOC = Voice {A}, {O}scillator, {C}oarse Pitch Offset
AOF = Voice {A}, {O}scillator, {F}ine Pitch Offset
AOH = Voice {A}, {O}scillator, {H}ard Frequency
Therefore, in the Grid, when you write values to P1, P2 and P3 for this Sound/Drum, you'll write values to AOC, AOF and AOH respectively. Takes a little bit of thinking about but I think it's a pretty revolutionary design (actually, I was heavily influenced by my Monomachine )
No worries Tony. Hope you're making good progress.
Just a crash fix, mostly.
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 ) 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 ) and it's becoming a distraction.
I feel your pain Tony - the progress towards Pulsar beta has slowed to snails pace.
Nice to hear you're making progress
Heh, that's kind of weird seeing that. Like watching one of your children perform in a school musical
Whatever you like
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?
The new technology permits us to do exciting things with interactive bowling software. Wave of the future, Dude. 100% electronic.
Uh huh. Well... I still bowl manually
Hah! The dude doesn't bowl!
It's true you never actually see him bowl in the film but, man, as a game, that would be a bummer...
ChipMusic.org / Forums / Posts by neilbaldwin