Page 2 of 5

Re: Is still someting going on here? Any dev-activity?

Posted: Sep 9th, '16, 22:50
by antto
i've been thinking about writing a sequencer for the yocto
i checked the current FW source code, wtf.. arduino? i don't want to learn this uino thing right now
a better option would be to start from zero

there are some things which i don't like, like:
- the eeprom being i2c (which is slow, plus i'm not familiar with that interface)
- the button debouncing is bad/broken
- the way the sync mode (internal/dinsync/midisync) is put on the function selector like with the x0xb0x stock FW this is annoying

these are somewhat fixable - there's a 16KB RAM on this chip, so (i haven't actually calculated it but) most of the sequencer memory can be thrown into the RAM and periodically stored in the eeprom, button debouncing can be fixed, the function selector could be reorganized and sync mode can be a global setting

unfortunately there are a few things which are harder to overcome:
- the lack of buttons
- a fast way to reflash the chip as part of the developement process (frequent recompilation and testing)

since the yocto has only MIDI as a serial communication, i assume the bootloader is flashed via sysex
and i guess it's borrowed from one of the existing places which provide a sysex-enabled avr bootloader, i've heard bad things about one of those, i bet it's not buffered and packets break unless you intentionally slow down the sysex transmit, as if midi isn't already slow enough for this job

i've put sysex onto an stk500v2-based avr bootloader already as part of another project, and it's buffered there, doesn't require special configuration, the data can be sent without additional pauses/delays
but changing the bootloader is practically not an option for those who already have the chips (a programmer is required)

-------------------------

so there are a few options i can think of
- i could (since i have a programmer) change the bootloader on mine, just to make it easier (if possible) to reflash frequently
- rewrite the thing in C or maybe C++ but minus those uino libraries
- reorganize the function selector and maybe the roles of some buttons
--- remove the sync mode from the selector
- abstract away the scary ugliness of the i2c eeprom

however, given the very limited amount of buttons, i have no real idea how to make accessible all of the functionality i'd like to put into a drum sequencer
to solve this, what's needed is a carefully crafted plan of features and functionalities that should be featured in this thing, which requires some tough decisions to be made, dillemas and compromises
i'm not familiar with the 808 sequencer, and i haven't even used the yocto sequencer too much yet, i've only figured out how to make a pattern, and use the mute function in pattern-play mode

so if anyone has time to think about a detailed plan of features and modes it'll be a good starting point

the stuff i'd personally like to have in it are:
- live pattern recording by tapping the instrument buttons
- shuffle

Re: Is still someting going on here? Any dev-activity?

Posted: Sep 9th, '16, 23:47
by Buzzy B
I would not add shuffle to the firmware.

- shuffle can be had by clocking via DIN Sync using an external device shuffling the clock

- there is no shuffle control on the unit

The 808 style handling is important, I think it's much better to manipulate the incoming clock than messing with the usability.

Re: Is still someting going on here? Any dev-activity?

Posted: Sep 10th, '16, 14:41
by FlavioB
Hi antto - thanks in advance for your detailed post.
antto wrote:i've been thinking about writing a sequencer for the yocto
i checked the current FW source code, wtf.. arduino? i don't want to learn this uino thing right now
a better option would be to start from zero

there are some things which i don't like, like:
- the eeprom being i2c (which is slow, plus i'm not familiar with that interface)
- the button debouncing is bad/broken
- the way the sync mode (internal/dinsync/midisync) is put on the function selector like with the x0xb0x stock FW this is annoying
Can you explain what you mean with "button debouncing"?
And also, how would you like to have the sync mode selection to work? I haven't played around with it too much, but I feel about the same as you do... not practical.
these are somewhat fixable - there's a 16KB RAM on this chip, so (i haven't actually calculated it but) most of the sequencer memory can be thrown into the RAM and periodically stored in the eeprom, button debouncing can be fixed, the function selector could be reorganized and sync mode can be a global setting

unfortunately there are a few things which are harder to overcome:
- the lack of buttons
Would you be able to overcome this by using "double-tap" or "double-click" functions? Or button combinations?
[...]
so there are a few options i can think of
- i could (since i have a programmer) change the bootloader on mine, just to make it easier (if possible) to reflash frequently
- rewrite the thing in C or maybe C++ but minus those uino libraries
- reorganize the function selector and maybe the roles of some buttons
--- remove the sync mode from the selector
- abstract away the scary ugliness of the i2c eeprom
Whatever brings improvement, I guess would be wellcome ;)
[...]
the stuff i'd personally like to have in it are:
- live pattern recording by tapping the instrument buttons
- shuffle
I have already input some missing features I'd like to see in the Yocto, there are some posts of mine around here.
Anyway, I'll try to summarize what I remember:
- MIDI SysEx pattern dump (single pattern and the whole "machine state")
- roll function synced when MIDI sync is on (actually not working)
- tap-record function

I guess some more could be added... and other ppl will for sure add their suggestions as well.

I'd be available for testing purposes as well :P

BR,
Flavio.

Re: Is still someting going on here? Any dev-activity?

Posted: Sep 14th, '16, 14:48
by kluber
It looks like things are moving around here! This is great!
There is two selectors on the Yocto the Pattern selector and the Instruments selector. The Pattern selector has two "step/slot" available and the Instrument Selector has one available marked as N.C . Plus we could use the buttons Reset/Mute and Roll/End and Shift in combination with others buttons to command extra features.
Also I won't recommend to change the Pattern Selector system because I think it's pretty simple to use and it's quite logical from my point of view.

But I agree there is some features missing.
Flavio already started a list I would add the groove shuffle option, to be able to edit a pattern sync in midi or din sync, to chain several patterns to be played in a row (look what Arturia did for the Beatstep Pro https://youtu.be/whR7R0o2ZeA?t=3m17s ).

I think we need to draw a map or diagram of all the functions (see the manual of the kiwitechnics products http://kiwitechnics.com/index_htm_files ... 20v100.pdf ) it could be really useful for atto and others coder/dev to work with!

Re: Is still someting going on here? Any dev-activity?

Posted: Sep 14th, '16, 17:13
by antto
yes, a visual diagram of what kind of functionality should be available is great, it's exactly what i had in mind

it doesn't even have to be pretty like the kiwi one
it'll help visualise the whole thing and any obvious flaws will be seen there first, and hammered till everything looks like it makes sense
then, at that point implementing the functionality would be easier because there will be a plan/diagram which is well thought out

FlavioB: yes, tap-record mode is another thing i want to put, because sometimes it's easier to just hit the button corresponding to the drum at the right time, than to switch the instrument selector.. etc etc..

debouncing: when a tact switch is pressed - it usually bounces for some short time before it firmly lays down and makes proper electrical contact, this results in a short burst of noise, when the microcontroller polls this (the pin is a digital input) it will read it as pressed, then as released, then as pressed again.. during the noise. that's called bouncing and it's not good
to solve this issue one way is to put smoothing capacitors on each button, but this is overkill if you got many, the other way is to do it in software
the yocto (and many many other devices) does it in software, but the algorithm it uses is obviously not very good, especially when i edit a pattern and try to activate a few steps simultaneously.. i have to press each button sepparately which sux

sync mode: the x0xb0x also had the sync mode as part of the mode selector, i hated this
i mean.. it results in having the same mode at multiple positions, where the only difference is the sync mode
example:
- pattern play (master)
- pattern play (slaved to dinsync)
- pattern play (slaved to midisync)
- pattern edit (master)
- pattern edit (slaved to dinsync)
- pattern edit (slaved to mdisync)
... etc
it gets even worse when they are scrambled around the selector
so, in the x0xb0x i threw all this in the garbage, and i have:
- pattern edit
- pattern play
- track play
- track edit
- settings
... etc
and you can just switch to the mode you want, without thinking about sync
you can change the actual sync mode (master, slave, etc..) from settings mode
sadly this requires re-labeling the selector, but it improves the usability IMO

as for the lack of buttons: surely we have just a few options
i prefer button combinations, i don't like the idea of double-clicking a button too much, so i'd only use that if i really need to

sysex dump is doable, it's a matter of deciding how the sysex packet will be structured and making it easy to extract a specific pattern quickly and importing a pattern with the option to just hear it before deciding whether you want to actually store it in the yocto memory or not

i'm not familiar with the roll function, i know that it has to do with repeatedly hitting the drum, but no idea in what conditions, i remember the 909 had something like that, flam or so, but i'm not sure if this is the same thing

Re: Is still someting going on here? Any dev-activity?

Posted: Sep 15th, '16, 17:19
by FlavioB
Hi antto - it's starting to roll here, and I'm in! ;-)
antto wrote:yes, a visual diagram of what kind of functionality should be available is great, it's exactly what i had in mind

it doesn't even have to be pretty like the kiwi one
it'll help visualise the whole thing and any obvious flaws will be seen there first, and hammered till everything looks like it makes sense
then, at that point implementing the functionality would be easier because there will be a plan/diagram which is well thought out
Never seen that from Kiwisix but it looks great - sadly I'm not good at such diagrams, so I have to leave it to others (maybe the one who will be somehow "leading" this development?!).
FlavioB: yes, tap-record mode is another thing i want to put, because sometimes it's easier to just hit the button corresponding to the drum at the right time, than to switch the instrument selector.. etc etc..
I understand - like the original 808. Nice.
debouncing: when a tact switch is pressed - it usually bounces for some short time before it firmly lays down and makes proper electrical contact, this results in a short burst of noise, when the microcontroller polls this (the pin is a digital input) it will read it as pressed, then as released, then as pressed again.. during the noise. that's called bouncing and it's not good
to solve this issue one way is to put smoothing capacitors on each button, but this is overkill if you got many, the other way is to do it in software
the yocto (and many many other devices) does it in software, but the algorithm it uses is obviously not very good, especially when i edit a pattern and try to activate a few steps simultaneously.. i have to press each button sepparately which sux
Ah, ok! Now I understand and I also pretty well know, what you're talking about: it also happens to me that I have to activate steps individually...
sync mode: the x0xb0x also had the sync mode as part of the mode selector, i hated this
[...]
and you can just switch to the mode you want, without thinking about sync
you can change the actual sync mode (master, slave, etc..) from settings mode
sadly this requires re-labeling the selector, but it improves the usability IMO
OK - I'm interested to read on how you'd implement this with the least change necessary (re-labelling wouldn't be nice for me, but if that'd be the only way...)
as for the lack of buttons: surely we have just a few options
i prefer button combinations, i don't like the idea of double-clicking a button too much, so i'd only use that if i really need to
Combinations are ok, personally I'm happy with the double-clicks I can work with on my TR-606 with Quicksilver mod.
sysex dump is doable, it's a matter of deciding how the sysex packet will be structured and making it easy to extract a specific pattern quickly and importing a pattern with the option to just hear it before deciding whether you want to actually store it in the yocto memory or not
Interesting would be here to have it like on the QS-606 (the above mentioned Quicksilver-modded TR-606): a full system dump, with all what is configured (pattern contents of course, but also other things, like maybe MIDI channel), along with the ability to manually dump single patterns.
Your idea of hearing (playing) an about-to-import pattern, before writing it into Yocto's memory is interesting: if you have enough memory for this feature, why not. Anyway, it's not a priority to me.
i'm not familiar with the roll function, i know that it has to do with repeatedly hitting the drum, but no idea in what conditions, i remember the 909 had something like that, flam or so, but i'm not sure if this is the same thing
707 has this thing called "flam", but that's not the "roll" function. Roll is simply repeatedly hitting the drum (it makes most sense to me for snares) in regular intervals. For example, on my QS-606 you can individually activate the roll function (you enable roll to act on SD and BD for example), then you press one of the switches for quarter hits, eights, sixteenth and so on... I don't know if I've been clear enough - I could eventually make a video or you check on YouTube for the official Social Entropy videos.

So, now... what are the next steps and who'll be doing them?

BR,
F.

Re: Is still someting going on here? Any dev-activity?

Posted: Sep 16th, '16, 15:50
by FlavioB
Hi again...
You can get an idea of what's annoying me from following posts:

viewtopic.php?f=17&t=604

"I'm slaving my Yocto from a ZAQuencer and with DinSync the pattern simply continues, doesn't restart at beat 1.
Is this the default behavior on the Yocto?
Can this be modified (hard- or software)?"

viewtopic.php?f=17&t=924

viewtopic.php?f=17&t=175

F.

Re: Is still someting going on here? Any dev-activity?

Posted: Sep 20th, '16, 14:13
by Ele
It would be great if the Yocto could be midi sync'ed/start in PT Edit Mode also and not just PT Midi. It's a bit annoying to always switch back to PT Midi when sync to a daw.

Re: Is still someting going on here? Any dev-activity?

Posted: Sep 20th, '16, 16:58
by FlavioB
Ele wrote:It would be great if the Yocto could be midi sync'ed/start in PT Edit Mode also and not just PT Midi. It's a bit annoying to always switch back to PT Midi when sync to a daw.
I think this is somehow going into the same direction antto is suggesting to mod the Yocto: having a separate selector for the sync method (MIDI, internal, Din Sync) and another one for the mode would be nice...

Let's see what he's gonna do/suggest!
F.

Re: Is still someting going on here? Any dev-activity?

Posted: Sep 24th, '16, 16:21
by Linn808
Cool to read this thread, I was wondering how we can support some geeks to program new softwares versions ? At least to reach the original behavior 808 would be great (as for example "tap programming" :D
Cheers to all,