Open303 - open source 303 emulation project - collaborators wanted

DSP, Plugin and Host development discussion.
Post Reply New Topic
RELATED
PRODUCTS
JC-303

Post

sunhome wrote:
Robin from www.rs-met.com wrote:aaaha. here's my take on that sequencer-UI thing:

...no-frills and factual - as always.
The great form/function debate :) and
yeah - a reoccurring theme of mine. being no graphical artist, i just try to use this as excuse, i guess. kinda trying to make a virtue out of necessity. :hihi:

but seriously - good look is of course a benefit as long as it does not get into the way of usability
we can talk about form/function once I get you some artwork
perhaps it's best to focus on the interface for the synthesis engine first and postpone the sequencer stuff until we have cleared the technical issues how to interface that via mGUI
My website: rs-met.com, My presences on: YouTube, GitHub, Facebook

Post

Robin from www.rs-met.com wrote: ...weirdo pattern copy tricks :scared: puuh ... don't even know about them.
yeah when you clear a pattern, and visit another pattern, and then go back to the cleared one, all notes in pitch mode (besides the first) will be copied over from that other pattern. time mode remains blank though

I like this 'feature' as it sometimes gives me cool variations on existing patterns without having to think about tight coupling with time mode, moving notes around, etc.. nicest stuff i made is a mix of knowing what i'm doing and accidentally mixing up programmed stuff with stuff thats copied over from adjacent patterns

I really love the concept of decoupling pitch and time instead of working with pairs but it seems I'm also really outnumbered
:lol:
but it doesnt matter to me, i'll code it myself one day and than i'll have this nice open source engine i can attach it to.. I'm quite sure I'll never be able to program any decent DSP myself :lol: but a sequencer i can pull off.

Post

rv0 wrote:
Robin from www.rs-met.com wrote: ...weirdo pattern copy tricks :scared: puuh ... don't even know about them.
yeah when you clear a pattern, and visit another pattern, and then go back to the cleared one, all notes in pitch mode (besides the first) will be copied over from that other pattern. time mode remains blank though

I like this 'feature' as it sometimes gives me cool variations on existing patterns without having to think about tight coupling with time mode, moving notes around, etc.. nicest stuff i made is a mix of knowing what i'm doing and accidentally mixing up programmed stuff with stuff thats copied over from adjacent patterns
although i'm not particularly interested in exactly mimicking that behavior, i find it also interesting to be able to quickly create random variations of existing patterns. i think, that idea could be worked out some more and codified into some kind of 'intelligent pattern randomizer' ...or something. that would - for me - look like a more interesting direction to pursue. in fact, i already have included some (still commented out) function prototypes for selectively randomizing certain aspects of a pattern in class AcidPattern ...like randomizeSlides(), randomizeAccents(), randomizeGates() ...and then having buttons on the GUI to trigger these functions, maybe?
My website: rs-met.com, My presences on: YouTube, GitHub, Facebook

Post

of course, stuff like that is mandatory ;)


what would also be cool, but maybe a bit over your head right now, is track mode functionality - sort of..
so you can chain short patterns, with transposes and maybe even goto-points (triggered by midi), arrange them along a drag and drop grid..
its a lot faster to work that way than to manually take copies of patterns and transpose them and to put different trigger notes in the daw at the right step positions (its like doing double the work that way and really annoying as i can say from working with ABL demo in the past, i never managed to get my track the same as in the 303)..
// sorry if this doesnt make any sense, i'm about to go to sleep.

also, and this shouldn't be too hard probably, transpose a pattern in real time with a midi keyboard. 2 modes: one that transposes immediately (next note) and one that does it on pattern start (like real 303)..

With the 303, you get an extra octave (up) by transposing.. as your seq has the full range, transposing will a bit confusing maybe.

Post

sunhome wrote:The second image is what knobs the devs said they needed so I am not sure where/how those map to the top image?
Hi James,

I have done some work on the skin, re-organized the .SKIN file into groups, and created a new working skinned "plugin", download open303-skin-dsgn-1.7z and open303.7z.
I have no method of opening the .PDN files, so it was not possible to insert the .PDN background graphics. If you want you may upload the converted .PDN files, then I can place them in the .SKIN file ...

Image
Robin from www.rs-met.com wrote:before it makes sense to consider how a sequencer could look like, we need to have a means how the sequencer-GUI communicates with the actual plugin dll. i guess the mGUI communicates with the dll solely through the getParameter/setParameter functions from the VST-SDK
Yes, the best way is to communicate via those 2 functions, (mGUI gives the option to hide some parameters from the real host, see open303.7z)
mGUI also communicates with the child-plugin via MIDI input and output messages ...

Post

asseca wrote: If you want you may upload the converted .PDN files, then I can place them in the .SKIN file ...
mztk used paint.net on these so the pdn files look like

small ... artwork by mztk Image

full size ... artwork by mztk
Image

Regards, James

Post

asseca wrote:
sunhome wrote:The second image is what knobs the devs said they needed so I am not sure where/how those map to the top image?
Hi James,

I have done some work on the skin, re-organized the .SKIN file into groups, and created a new working skinned "plugin", download open303-skin-dsgn-1.7z and open303.7z.

Image
Thanks asseca; :clap: I can now open these in the latest skinman (skinman .99d) and :clap: look how nicely organized that skinman file is!

Regards, James

Post

sunhome wrote:mztk used paint.net on these so the pdn files look like small ... artwork by mztk
Unfortunately I have no .NET on my winXP machine, and I would like to keep it that way ...

Anyhow, I have experimented with implementing a sequencer-grid based on neotec's graphics, I hope you don't mind, but I just want to see if it was possible in mGUI ... apparently it is by implementing a notes/steps grid consisting of 13 notes x 16 steps, resulting in the use of 208 parameters. Each grid "point" allows for "off","on","Transpose 1+","Transpose 1-","Glide","Accent". By using 16 values for each parameter all combinations are possible ...
Download: open303-g.rar
Image
Last edited by asseca on Thu Feb 18, 2010 7:25 am, edited 1 time in total.

Post

hey guys, nice to see this thread alive again ;]

rv0: great! i am interested to know a bit in detail what kinds of "quirks" does the 303 sequencer have, i wouldn't want to use a 1:1 emulation of the 303 sequencer for my synth, for a number of reasons.. but i am interested for sure

i have quite a good randomization functions in my own sequencer, and i have a lot more on the "TODO" list too, since i know that this is one of the most important things for a 303 sequencer..

i have created about ~300 patterns which i've saved externaly, because i like them, and the number is growing every time i open the synth
more than 50% of these patterns are made by manipulation, rather than pressing the pitch buttons
altering the order of the steps, generating new random Gate/Slide/Accent values independantly, generating new random Pitches/Keys/Octaves too
shifting only _some_ of the steps, while keeping the others in their same places

these are the things i've used so far, but i have even more ideas about flexible manipulation techniques for a 303-like pattern sequencer

altho, all of this is not quite possible if my sequencer was based on the _real_ 303 sequencer, and the way it stores pitch/time information
you know.. as most other "emulations" my pattern is just an "array" of 16 (Gate/Accent/Slide/Pitch(number)) "steps"

Robin: i encourage you to invest in pattern randomization functions too, it's a very powerful tool once you get used to it ;]

rv0: since you're here, i wanted to ask about some stuff again
i could probably use samples again, but if you happen to know if:

Code: Select all

G      G      G      G     
c(s..) C(sA.) c(s..) C(sA.)
in that kind of a long note, how does the accent circuit react to the last two "steps" ?

oh damn, btw, can you record a few new samples for me? ;] pretty simple, i want to tune my filter envelopes, since i've rewritten them to use only RC decays (how i believe the real thing works too)

and IIRC you have 2 303s, are they a lot different from one another? i'd like to have a sample of the other one, to look at the output (osc shapes, filter resonance (any internal clipping?) envelopes.. etc..)
i suspect that the envelope times vary too much between units too, and i'm not sure how to deal with this.. i mean too much to neglect it

btw, yesterday i tryied to construct the filter circuit in falstad's simulator from Tim's schematic, i'm not exactly sure if i did it 100% correct, and it is damn slow to process ;] shout if you want to look at it ;]
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

Post

antto wrote: rv0: since you're here, i wanted to ask about some stuff again
i could probably use samples again, but if you happen to know if:
in that kind of a long note, how does the accent circuit react to the last two "steps" ?

Code: Select all

G      G      G      G     
c(s..) C(sA.) c(s..) C(sA.)
i don't know how to explain that, the accent is audible,but seeing you have slides on all notes, the pattern will fade out gradually after a few loops depending on the decay and env setting.
Are you sure I didn't send you anything already that looks like it?
antto wrote: oh damn, btw, can you record a few new samples for me? ;] pretty simple, i want to tune my filter envelopes, since i've rewritten them to use only RC decays (how i believe the real thing works too)
no, not now, i'm living in another city at the moment for career reasons ;)
the studio is in my hometown..
antto wrote: and IIRC you have 2 303s, are they a lot different from one another? i'd like to have a sample of the other one, to look at the output (osc shapes, filter resonance (any internal clipping?) envelopes.. etc..)
i suspect that the envelope times vary too much between units too, and i'm not sure how to deal with this.. i mean too much to neglect it
they can differ in many ways..
the env might be slightly different, the pitch & pitch scaling also..

Sound also depends a lot on power supply ( and also internal power supply: failing components causing more noise and muffling the sound)

I'm not sure if I can tell them apart with A/B tests, I think so. Though, 1 303 is better in (muffled) bass sounds and groans, while I use the other mostly for higher pitched and brighter stuff. That one also has a semi-broken resonance pot so that 303 always makes a kinda modulated sound on a certain resonance setting (I have a replacement pot but I like the way it sounds now so I don't wanna ruin it, its like a crying 303)

Friend of mine just bought a devilfish recenlty :D
he now has 5 303 and 1 devilfish lol
So if you can put together a quick test, I might do that on all 303's I can get my hands on here (which is quite a lot in this town I'm living now, lol)
But that will take a while, as I'm very occupied with all sorts of stuff.

Post

about the long note, i know it'll fade away if the pattern had only one such long note, i meant if the pattern had this note and a rest after it (for example)
i know what happens in the first two steps:

step 1. envelopes are triggered, the cutoff envelope uses the variable decay time (decay knob) .. the VCA is held because of the slide
step 2. accent! the "gimmick" circuit is activated, it depends on how much of the envelope has decayed
if the decay time was longish, and the tempo was fastish - the "gimmick" effect would be stronger
also, the decay itself is switched to the shorter time..
and the pitch is filtered by a RC circuit

now what i am not sure of is
step 3: does the gimmick circuit get deactivated? (if so, i want to see it on the sonogram)
is the VCA instantly switched to the normal volume? this might give a clue wether there is some dedicated RC decay in there too, or just some nasty switch..
step 4: now if on step3 the gimmick circuit was deactivated, will it get activated here again, exactly like on step2?

i know all my samples, i am sure i don't have a case where there is such a long note

5 303s and a devilfish? :nutter: :shock: :clap:
aahhh.. ;]
I'm not sure if I can tell them apart with A/B tests
i sure can ;P~ :roll:

resonance sounds "modulated"? ooh! i think this is exactly what i was talking about, the internal clipping of tEh filter!
EDIT: like these?: (link listen closely, at 00:18 i start increasing the clipppers till 00:28 )

it's okay, i'm too busy myself too, i understand.. ;]
Last edited by antto on Wed Feb 17, 2010 8:49 pm, edited 2 times in total.
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

Post

asseca wrote: apparently it is by implementing a notes/steps grid consisting of 13 notes x 16 steps, resulting in the use of 208 parameters. Each grid "point" allows for "off","on","Transpose 1+","Transpose 1-","Glide","Accent". By using 16 values for each parameter all combinations are possible ...
mmm...so would you suggest to use VST-parameters to encode the sequencer state? mmm - maybe 16 parameters for the pitches of the 16 steps (where the pitch is encoded as 1.f/127.f - perhaps with zero indicating 'off' state)...and another 16 paramters to encode the the 4 possible combinations of glide and accent (as 0.f, 0.25.f, 0.5f, and 1.0f)? that would make fo 32 additional parameters to include in the vst-dll. not really what i would call a clean design but perhaps a workable solution.
Download: Open303-g.7z
link did not work for me
My website: rs-met.com, My presences on: YouTube, GitHub, Facebook

Post

rv0 wrote:he now has 5 303 and 1 devilfish lol
So if you can put together a quick test, I might do that on all 303's I can get my hands on here (which is quite a lot in this town I'm living now, lol)
But that will take a while, as I'm very occupied with all sorts of stuff.
Devilfish! There it is! maybe at some stage we might get samples from its distortion/filter-fm and stuff? not right now, i see - i'm currently occupied otherwise as well but someday, maybe?
My website: rs-met.com, My presences on: YouTube, GitHub, Facebook

Post

antto wrote:Robin: i encourage you to invest in pattern randomization functions too, it's a very powerful tool once you get used to it ;]
i will surely will. maybe not only randomization but also some kinds of weird but deterministic mangling functions. errm...which pseudo-random randomization would be anyway - anyway.
My website: rs-met.com, My presences on: YouTube, GitHub, Facebook

Post

Robin: btw, my sequencer uses a very compact pattern storage, a whole pattern of mine wastes only 33 bytes, and there are additional non-303 stuff (extras) like the step length per step

in other words, the whole memory of the sequencer occupies 3996 bytes
i'm using SynthEdit to talk with the VST host, but i know this memory is stored in the patch as 999 parameters of either float or integer format (it doesn't really matter, since they are marked as hidden/uneditable)
if you don't add the extra bullcrap i added, you can have the same amount of memory at even less that size
i got 120 patterns, + 1 pattern for copy/paste (clipboard) and 4 spare bytes for some other stuff..

the format of my patterns is binary, each on/off value is a single bit, it was a bitwise exercise for me ;P~ quite fun ;]
shout if you need ideas ;]
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

Post Reply

Return to “DSP and Plugin Development”