Bugs and suggestions
Posted: May 21st, '18, 00:01
Hi,
i still had some strage issues with the latest firmare, so i tried to hunt down the last bugs and found a few that need to be fixed:
All of them are tested on 2 different navas running 1.025 with initialized eeprom.
It is not my goal to be picky or to critisize vincent, i noticed all bugs during regular use (exept nr. 5).
I'd just love to see a fully working and bug free 909 after two years now and there's not much more missing for that!
@Vincent: If you're busy with other projects or if you simply don't have the time, i can offer to have a look at the code and correct them myself.
I would also like to update the tap mode and erase function, as described in the next post.
Bugs:
1. Setting a trig-1 step prevents the mux board from updating the velocity on rim, clap, crash and ride.
Example: Set all rim steps with different velocity. Set all trig 1 steps.
Now there's no change in velocity anymore and the volume slowly decays, as the s/h cap discharges.
Without trig-1: (1: dac voltage, 2/3/4: mux adress lines)
With trig-1:
2. S/h aquisition time for the ride and hitom is too low, the s/h cap doesn't fully charge in one step.
Example: (sequencer stopped) Set all ride steps.
Press start. The ride needs about 3-4 steps to reach full volume.
The same happens again when the ride isn't triggered for some time.
There's about 1k - 1.2k resistance from the dac to the cap and it needs 5*tau = 5*R*C to charge a capacitor to 99%. That equals to about 3us.
The Ride cap has <700ns to settle, other voices vary between 2us and 6us.
A small delay in the code should do the trick, so that the aquisition time of all voices exeeds 4us (to be safe) at all time.
Ride: (1: INH_MUX, 3: DAC, 4: ACCENT_RIDE)
Note: the transient spikes are due to my bad/lazy (nonexistent ) probe grounding and not present in the actual signal.
And you can already see the propagation delay (~400ns) of the 4051 multiplexer (:
Other Voice:
Mux Board, ride is the last dip in the yellow trace: (1:INH_MUX, 3/4/5: mux adress lines)
3. Occasionally trig-1 pulse width drops to about 2ms. Enough to prevent a sh-101 from clocking.
I didn't manage to find any pattern in the distribution and it seems to be limited to the internal clock (master).
Distribution: (1: midi out, 3: trig-1, 4: master out)
The white arrows on top indicate a 2ms pulse, sampled over 5 minutes.
Normal trig-1:
Short trig-1:
4. With nava as master, din clock phase is delayed by a quarter period. Din clock reacts to the positive edge, so it's not usable at the moment.
Timing relations: (1: DIN_CLK, 2: midi out, 3: master out, 4: trig-1)
5. Midi clock tick is delayed by 2ms (10% of the period at 125 bpm!) at a sequencer step. This is not a major bug, but should be easy to correct.
It's already visible in the last 3 screenshots.
Tick delay: (1: DIN_CLK, 2: midi out, 3: master out, 4: trig-1)
6. Pattern chaining bugs:
In pattern play mode, changing to a new chain while running starts the new one at the second pattern of that chain.
In step edit mode, when changing to a new chain (after the previous pattern made at least one cycle!) the sequencer skips the second pattern in the first cycle (or repeats the first if the chain is only zwo pattern long, but thats just a consequence of the bug).
I hope that description isn't too confusing, otherwise i could try to explain it a bit more detailed.
7. In tap write mode holding shuffle shows the display, but the enconder is changing bpm.
Thats it for now, i have to look at the song and external instrument mode soon. Midi triggering is on my list as well.
Cheers
i still had some strage issues with the latest firmare, so i tried to hunt down the last bugs and found a few that need to be fixed:
All of them are tested on 2 different navas running 1.025 with initialized eeprom.
It is not my goal to be picky or to critisize vincent, i noticed all bugs during regular use (exept nr. 5).
I'd just love to see a fully working and bug free 909 after two years now and there's not much more missing for that!
@Vincent: If you're busy with other projects or if you simply don't have the time, i can offer to have a look at the code and correct them myself.
I would also like to update the tap mode and erase function, as described in the next post.
Bugs:
1. Setting a trig-1 step prevents the mux board from updating the velocity on rim, clap, crash and ride.
Example: Set all rim steps with different velocity. Set all trig 1 steps.
Now there's no change in velocity anymore and the volume slowly decays, as the s/h cap discharges.
Without trig-1: (1: dac voltage, 2/3/4: mux adress lines)
With trig-1:
2. S/h aquisition time for the ride and hitom is too low, the s/h cap doesn't fully charge in one step.
Example: (sequencer stopped) Set all ride steps.
Press start. The ride needs about 3-4 steps to reach full volume.
The same happens again when the ride isn't triggered for some time.
There's about 1k - 1.2k resistance from the dac to the cap and it needs 5*tau = 5*R*C to charge a capacitor to 99%. That equals to about 3us.
The Ride cap has <700ns to settle, other voices vary between 2us and 6us.
A small delay in the code should do the trick, so that the aquisition time of all voices exeeds 4us (to be safe) at all time.
Ride: (1: INH_MUX, 3: DAC, 4: ACCENT_RIDE)
Note: the transient spikes are due to my bad/lazy (nonexistent ) probe grounding and not present in the actual signal.
And you can already see the propagation delay (~400ns) of the 4051 multiplexer (:
Other Voice:
Mux Board, ride is the last dip in the yellow trace: (1:INH_MUX, 3/4/5: mux adress lines)
3. Occasionally trig-1 pulse width drops to about 2ms. Enough to prevent a sh-101 from clocking.
I didn't manage to find any pattern in the distribution and it seems to be limited to the internal clock (master).
Distribution: (1: midi out, 3: trig-1, 4: master out)
The white arrows on top indicate a 2ms pulse, sampled over 5 minutes.
Normal trig-1:
Short trig-1:
4. With nava as master, din clock phase is delayed by a quarter period. Din clock reacts to the positive edge, so it's not usable at the moment.
Timing relations: (1: DIN_CLK, 2: midi out, 3: master out, 4: trig-1)
5. Midi clock tick is delayed by 2ms (10% of the period at 125 bpm!) at a sequencer step. This is not a major bug, but should be easy to correct.
It's already visible in the last 3 screenshots.
Tick delay: (1: DIN_CLK, 2: midi out, 3: master out, 4: trig-1)
6. Pattern chaining bugs:
In pattern play mode, changing to a new chain while running starts the new one at the second pattern of that chain.
In step edit mode, when changing to a new chain (after the previous pattern made at least one cycle!) the sequencer skips the second pattern in the first cycle (or repeats the first if the chain is only zwo pattern long, but thats just a consequence of the bug).
I hope that description isn't too confusing, otherwise i could try to explain it a bit more detailed.
7. In tap write mode holding shuffle shows the display, but the enconder is changing bpm.
Thats it for now, i have to look at the song and external instrument mode soon. Midi triggering is on my list as well.
Cheers