KoDream Improv

Post Reply
User avatar
IXix
Posts: 1150
Joined: Wed Nov 23, 2011 3:24 pm

KoDream Improv

Post by IXix »

Who uses/used KoDream Improv? Could someone who is familiar with the machine and how it works tell me if it's behaving as it should. How long is an Improv 1.1 note supposed to be? On my machine each note seems to be one tick long but has it always been like that?

I'm updating the machine but the code I got from KoDream was a bit unfinished as he seems to have been working towards a new version. I'm trying to get my rebuild to behave the same as Improv 1.1 but I'm wondering if perhaps that has changed with newer Buzz builds.

The new code lets you specify the length for each note but to keep it compatible with the original 1.1 version, I need to work out how long 1.1 notes are supposed to last so I can use that as the default value.
User avatar
tinga
Posts: 535
Joined: Tue Nov 22, 2011 5:25 pm

Re: KoDream Improv

Post by tinga »

An old template, based on the folia pattern. (not an autoplay)
I think it works differently since some recent version, but i don't know, i just return now to this machine, i have many more recent templates using Kodream, but my bmx archive is a little bit fat :?
Attachments
folia_tng1bmix.zip
(18.5 KiB) Downloaded 407 times
User avatar
IXix
Posts: 1150
Joined: Wed Nov 23, 2011 3:24 pm

Re: KoDream Improv

Post by IXix »

Thanks tinga. I think it's different too but I never used it much so I'm not certain. I'll have to install the old Buzz and see how it behaves.

The new version is coming along nicely. I was thinking about releasing an updated Improv 1.1 but I think I'll just jump straight in with 1.2 to keep things simple. Not long now. :)
User avatar
tinga
Posts: 535
Joined: Tue Nov 22, 2011 5:25 pm

Re: KoDream Improv

Post by tinga »

Actually, KoDream Improv can't control another peer machine, but it works fine with gen and fx, there is a way with Split velocity, but it generates some clicks.
KoDream is something unique, it's great that you update it. 8-)
User avatar
IXix
Posts: 1150
Joined: Wed Nov 23, 2011 3:24 pm

Re: KoDream Improv

Post by IXix »

tinga wrote:KoDream Improv can't control another peer machine
Yes, that's why I wanted to update it. The new version will work just fine and adds a few useful features. I would have done it sooner but it turned out to be a more complex job than I had imagined and I don't have much time. I thought it would be a simple conversion to PeerLib 2 but there was much more that needed doing.

If you have any requests, now would be a good time to speak up. I don't want to spend too much time doing this but I'll consider anything that seems useful/easy enough.
User avatar
szaszhareen
Posts: 527
Joined: Wed Nov 23, 2011 1:15 am
Location: deep beneath the earths crust

Re: KoDream Improv

Post by szaszhareen »

laser cannons would be a great feature. :lol:

I've actually never tried this machine. thanks for working on it, I'm looking forward to seeing the updated version! :D
User avatar
IXix
Posts: 1150
Joined: Wed Nov 23, 2011 3:24 pm

Re: KoDream Improv

Post by IXix »

Improv 1.1 only has one track. For Improv 1.2, should I...

a. Allow multiple tracks using the same grammar but with their own machine settings ie. apply the same values to multiple machines?
b. Allow multiple tracks with their own settings for both grammar and target machine ie. apply different values to multiple machines?
c. Don't allow multiple tracks. Keep it like version 1.1, just one track and one grammar.
User avatar
tinga
Posts: 535
Joined: Tue Nov 22, 2011 5:25 pm

Re: KoDream Improv

Post by tinga »

IX wrote:Improv 1.1 only has one track. For Improv 1.2, should I...

a. Allow multiple tracks using the same grammar but with their own machine settings ie. apply the same values to multiple machines?
b. Allow multiple tracks with their own settings for both grammar and target machine ie. apply different values to multiple machines?
c. Don't allow multiple tracks. Keep it like version 1.1, just one track and one grammar.
b. seems to be the best, but no problem if you choose the c. (anyway, if it can command IX Split, it becomes multi track ;) )

You said that there are some change about tick resolution, in what way?
User avatar
IXix
Posts: 1150
Joined: Wed Nov 23, 2011 3:24 pm

Re: KoDream Improv

Post by IXix »

tinga wrote:You said that there are some change about tick resolution, in what way?
I'm not so sure now but I need to install the old Buzz to test it. Might do that now. :)
User avatar
IXix
Posts: 1150
Joined: Wed Nov 23, 2011 3:24 pm

Re: KoDream Improv

Post by IXix »

IXix wrote:I'm not so sure now but I need to install the old Buzz to test it. Might do that now. :)
No, it seems to be the same.
User avatar
IXix
Posts: 1150
Joined: Wed Nov 23, 2011 3:24 pm

Re: KoDream Improv

Post by IXix »

Well, it's been over a year and progress has been somewhat slow but here's KoDream Improv 1.1a. It should be compatible with the version 1.1 but keep a copy of the old dll just in case.

What changed? Well, not much really. 1.1a uses BTD's PeerLib 2 so it should be able to control other peer machines and it should behave better with Buzz's undo/redo. The dialog box has changed a bit as when I got the code from KoDream it was in an unfinished state and I had to finish it off myself. Hopefully it's a bit easier to use than the old version. Even with the improvements I've made I find the dialog quite awkward but I can't get sucked into a full redesign. This machine would really benefit from a shiny .NET GUI but I just can't spare the time.

Feedback and suggestions welcome. I have to admit I only have a very rough understanding of how this thing works so don't expect much but if anything seems broken I'll try to fix it.

There's a 1.2 in the works which should be available sometime in 2025. :mrgreen:
User avatar
tinga
Posts: 535
Joined: Tue Nov 22, 2011 5:25 pm

Re: KoDream Improv

Post by tinga »

Oh! thanks, I try it today, this machine is based on a very simple but strong idea, I'm very happy it can again control another peer machine.
:dance:
User avatar
tinga
Posts: 535
Joined: Tue Nov 22, 2011 5:25 pm

Re: KoDream Improv

Post by tinga »

I can play now some old bmx I thought lost forever, so nothing seems to be broken, :lol: , KoDream Improv is one of the jewels we have in Buzz, this machine is perfect with BTDSys SampleGrid 2 to build effective drum machines.
User avatar
IXix
Posts: 1150
Joined: Wed Nov 23, 2011 3:24 pm

Re: KoDream Improv

Post by IXix »

tinga wrote:I can play now some old bmx I thought lost forever, so nothing seems to be broken, :lol:
Great! If you double-click an item in one of the lists and the item corresponds to a single rule, it will select that rule in the rule combo. I also made it easier to edit the numeric values. Let me know what you think of working in the dialog and if there are any simple things I can do to improve it. I suspect you're the person who knows Improv the best.
User avatar
tinga
Posts: 535
Joined: Tue Nov 22, 2011 5:25 pm

Re: KoDream Improv

Post by tinga »

New dialog is quite nice, and double click is useful 8-)
Is it possible to have a tick "do nothing" ? In fact, in many case it's easy, but it depends of machines and params.
Maybe an horizontal scrollbar for productions and semantics will be cool, for long sentences :oops:
User avatar
IXix
Posts: 1150
Joined: Wed Nov 23, 2011 3:24 pm

Re: KoDream Improv

Post by IXix »

tinga wrote:Is it possible to have a tick "do nothing" ?
Hmmm, maybe. I'll have a think...
tinga wrote:Maybe an horizontal scrollbar for productions and semantics will be cool, for long sentences :oops:
Ha, I bet you're the only person ever to wish for such a thing! :lol: I'll see what can be done.
User avatar
IXix
Posts: 1150
Joined: Wed Nov 23, 2011 3:24 pm

Re: KoDream Improv

Post by IXix »

Okay, here's a new build.

Added horizontal scrolling for the listboxes
Ideally it would automatically detect how much scrolling is needed based on the longest item but doing that is a PITA if you're working in raw Win32 API so I've just set fixed values based on the listbox widths (x5 for productions, x7 for semantics). Sorry, best I can do for now.

Negative values optionally do nothing
Although negative values are technically invalid (Buzz param values are either 0-255 or 0-65535), neither Buzz or Improv make any checks. I think that what happened when a negative value was sent depended on what machine/parameter was targetted, so you could use negative values but they generally wouldn't make much sense. Having said that, we Buzzers are a resourceful bunch and I wouldn't bet that nobody had resorted to such parameter abuse in the name of art. It's also possible that some peer machines might send negatives too, so I added an attribute "Allow negative values" to control the behaviour.

The attribute is set to allow negative values by default so the machine should remain fully compatible with any old tracks which use negative values. If you set the attribute to 0 then negative values will not be sent out, so you can use them for "do nothing". If you want a different default then you can just set it in gear.xml.
User avatar
tinga
Posts: 535
Joined: Tue Nov 22, 2011 5:25 pm

Re: KoDream Improv

Post by tinga »

It's great many thanks, it works fine, peerscale and peerstate feel better now, and me too.
Improv returns to my gear, and it's good for all other peer machines, new things to try 8-)
User avatar
tinga
Posts: 535
Joined: Tue Nov 22, 2011 5:25 pm

Re: KoDream Improv

Post by tinga »

:oops: There one thing, I don't know if it possible (easily) , a track assignment, we can select only track 1 :(
Maybe it's for the 2025 version :lol:
User avatar
IXix
Posts: 1150
Joined: Wed Nov 23, 2011 3:24 pm

Re: KoDream Improv

Post by IXix »

tinga wrote:Maybe it's for the 2025 version :lol:
Yes, it is but I can't remember how far I've progressed with it. I'll try to assess the current state when I get a little time.

The next version will allow multiple tracks with independent settings and will change the triggering behaviour so that you can specify how long a value (what do call them? words?) will be played for. That's where KoDream was headed when he stopped development. The system for specifying lengths is in place but I haven't exposed it for the current build. When I have something that's more or less working I'll let you know so you can give some feedback. :)
Post Reply