hello.
first, i'd like to introduce myself to the list, my name is christopher charles, 22, germany, i've been lurking here for some months, and this is my first post. as a welcome present for you all, i "wrote" (patched together out of existing externals) a gui external called vbitmap, which is able to display and modify integers as some sort of 1-d binary map, but you'll have to see the screenshot or try it out to see what i mean:
https://www.puredata.info/Members/syntax_the_nerd/
very useful for step sequencers that would otherwise be built out of vradios, which are only able to trigger 1 note at a time. get the tar, edit the makefile for the proper source locations, put it in your externals dir and try the example patch. for i only have really basic knowledge of programming, even less of portable programming, i'd be thankful if someone could try to compile it on windows, too, and tell me what i did wrong.
thanks in advance, and have fun (that is, when you get it to run)
charlie
Hallo, Christopher Charles hat gesagt: // Christopher Charles wrote:
first, i'd like to introduce myself to the list, my name is christopher charles, 22, germany, i've been lurking here for some months, and this is my first post. as a welcome present for you all, i "wrote" (patched together out of existing externals) a gui external called vbitmap, which is able to display and modify integers as some sort of 1-d binary map, but you'll have to see the screenshot or try it out to see what i mean:
Wow, I think, this is really cool, I'm about to try it. From looking at the screenshot, one thing occured to me: It's not that good, that it looks exactly the same as the radio-buttons. So I'd suggest you maybe make the active buttons round?
Frank Barknecht _ ______footils.org__
Hallo, Frank Barknecht hat gesagt: // Frank Barknecht wrote:
Wow, I think, this is really cool, I'm about to try it. From looking at the screenshot, one thing occured to me: It's not that good, that it looks exactly the same as the radio-buttons. So I'd suggest you maybe make the active buttons round?
... which turned out to be possible by just changing one word: In line 110 replace "rectangle" with "oval".
Actually it's also very funny to replace all occurences of "rectangle" with "oval". ;)
Frank Barknecht _ ______footils.org__
On Mon, 6 Dec 2004, Frank Barknecht wrote:
Christopher Charles hat gesagt: // Christopher Charles wrote:
first, i'd like to introduce myself to the list, my name is christopher charles, 22, germany, i've been lurking here for some months, and this is my first post. as a welcome present for you all, i "wrote" (patched together out of existing externals) a gui external called vbitmap, which is able to display and modify integers as some sort of 1-d binary map, but you'll have to see the screenshot or try it out to see what i mean: https://www.puredata.info/Members/syntax_the_nerd/
Wow, I think, this is really cool, I'm about to try it. From looking at the screenshot, one thing occured to me: It's not that good, that it looks exactly the same as the radio-buttons. So I'd suggest you maybe make the active buttons round?
I don't think that's a good idea, because round buttons look more like a bang button; square buttons as in h/vradio are closer in concept already; but my proposal is to make them look like toggles. Think of it, if you were making that thing as an abstraction, you might be using toggle to construct it, and then shift bits in the resulting values so that together the toggles form a bitmap.
Mathieu Bouchard -=- Montréal QC Canada -=- http://artengine.ca/matju
I don't think that's a good idea, because round buttons look more like a bang button; square buttons as in h/vradio are closer in concept already; but my proposal is to make them look like toggles. Think of it, if you were making that thing as an abstraction, you might be using toggle to construct it, and then shift bits in the resulting values so that together the toggles form a bitmap.
ok. so now there is vradio-square look, banglike circles within a square and toggle-like look. any other proposals? i changed it to frank's oval variant, and for now i'm rather content with it, doesn't remind me too much of bangs. now for the functionality. are there any other ideas about this except of expanding this to a 2-d bitmatrix (like blinkenlights). i thought about implementing the option of having more states than just on and off. for example i could give each element 2 bits, so clicking on them would cycle through the 4 states (maybe represented by showing numbers or by in-between colours of back- and foreground). useful for different note velocities or probability maps in step sequencers. what do you think about this? the other thing i was thinking about is the inlet behaviour: for now, it doesn't clip nor mod the value it sends to it's outlet(that's crap, for when you send a bigger value to the inlet, there is no graphical way to affect the bits which are out of range). i could either let it clip to 2^number-1, so in case a bigger number is sent, all bits would stay on. the other option (the one i'd prefer) is performing a modulo 2^number on the inlet. any other options?
thanks for the feedback so far charlie
the ovals look good in that screenshot... has anyone built this for windows? i'd really like to try it out but i have never been able to build externals in MSVC
Christopher Charles wrote:
I don't think that's a good idea, because round buttons look more like a bang button; square buttons as in h/vradio are closer in concept already; but my proposal is to make them look like toggles. Think of it, if you were making that thing as an abstraction, you might be using toggle to construct it, and then shift bits in the resulting values so that together the toggles form a bitmap.
ok. so now there is vradio-square look, banglike circles within a square and toggle-like look. any other proposals? i changed it to frank's oval variant, and for now i'm rather content with it, doesn't remind me too much of bangs. now for the functionality. are there any other ideas about this except of expanding this to a 2-d bitmatrix (like blinkenlights). i thought about implementing the option of having more states than just on and off. for example i could give each element 2 bits, so clicking on them would cycle through the 4 states (maybe represented by showing numbers or by in-between colours of back- and foreground). useful for different note velocities or probability maps in step sequencers. what do you think about this? the other thing i was thinking about is the inlet behaviour: for now, it doesn't clip nor mod the value it sends to it's outlet(that's crap, for when you send a bigger value to the inlet, there is no graphical way to affect the bits which are out of range). i could either let it clip to 2^number-1, so in case a bigger number is sent, all bits would stay on. the other option (the one i'd prefer) is performing a modulo 2^number on the inlet. any other options?
thanks for the feedback so far charlie
PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://iem.at/cgi-bin/mailman/listinfo/pd-list
does anyone have any pointer on what i need to do to get this to build on windows? i've never really been able to get pd externals to compile on windows, so i must doing sometihng obviouisly wrong ;)
here is the output of running nmake:
C:\Documents and Settings\Josh\Desktop\New\pd-0.37-4\extra\vbitmap>nmake pd_nt
Microsoft (R) Program Maintenance Utility Version 7.10.3077 Copyright (C) Microsoft Corporation. All rights reserved.
cl /W3 /WX /DNT /DPD /nologo /I. /I..\..\src /I"C:\Program
Files\Microsoft Visual Studio\Vc98"\include /c vbitm p.c vbitmap.c link /dll /export:vbitmap_setup vbitmap.obj "C:\Program Files\Microsoft Visual Studio\Vc98"\lib\libc.lib "C:\P ogram Files\Microsoft Visual Studio\Vc98"\lib\oldnames.lib "C:\Program Files\Microsoft Visual Studio\Vc98"\lib\kernel3 .lib ....\bin\pd.lib Microsoft (R) Incremental Linker Version 7.10.3077 Copyright (C) Microsoft Corporation. All rights reserved.
Creating library vbitmap.lib and object vbitmap.exp vbitmap.obj : error LNK2019: unresolved external symbol __ftol2 referenced in function _vbitmap_draw_update vbitmap.obj : error LNK2019: unresolved external symbol _sys_noloadbang referenced in function _vbitmap_loadbang vbitmap.dll : fatal error LNK1120: 2 unresolved externals NMAKE : fatal error U1077: 'link' : return code '0x460' Stop.
C:\Documents and Settings\Josh\Desktop\New\pd-0.37-4\extra\vbitmap>
Josh Steiner wrote:
the ovals look good in that screenshot... has anyone built this for windows? i'd really like to try it out but i have never been able to build externals in MSVC
Christopher Charles wrote:
I don't think that's a good idea, because round buttons look more like a bang button; square buttons as in h/vradio are closer in concept already; but my proposal is to make them look like toggles. Think of it, if you were making that thing as an abstraction, you might be using toggle to construct it, and then shift bits in the resulting values so that together the toggles form a bitmap.
ok. so now there is vradio-square look, banglike circles within a square and toggle-like look. any other proposals? i changed it to frank's oval variant, and for now i'm rather content with it, doesn't remind me too much of bangs. now for the functionality. are there any other ideas about this except of expanding this to a 2-d bitmatrix (like blinkenlights). i thought about implementing the option of having more states than just on and off. for example i could give each element 2 bits, so clicking on them would cycle through the 4 states (maybe represented by showing numbers or by in-between colours of back- and foreground). useful for different note velocities or probability maps in step sequencers. what do you think about this? the other thing i was thinking about is the inlet behaviour: for now, it doesn't clip nor mod the value it sends to it's outlet(that's crap, for when you send a bigger value to the inlet, there is no graphical way to affect the bits which are out of range). i could either let it clip to 2^number-1, so in case a bigger number is sent, all bits would stay on. the other option (the one i'd prefer) is performing a modulo 2^number on the inlet. any other options?
thanks for the feedback so far charlie
PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://iem.at/cgi-bin/mailman/listinfo/pd-list
On Fri, Dec 10, 2004 at 02:22:15PM -0800, Josh Steiner wrote:
does anyone have any pointer on what i need to do to get this to build on windows? i've never really been able to get pd externals to compile on windows, so i must doing sometihng obviouisly wrong ;)
it's probably that youre using nmake rather than GCC, but i cant be certain as nmake wont install here and the installer service keeps failing with some error about the .NET framework... with GCC:
99% of externals (including vbitmap): s/pd_linux/dll in makefile & add /path/to/pd.dll on the line w/ 'gcc -shared'
1% of externals: a few #defines and/or changes to dlopen() to load other libs like SDL, ruby etc...
Creating library vbitmap.lib and object vbitmap.exp vbitmap.obj : error LNK2019: unresolved external symbol __ftol2 referenced in function _vbitmap_draw_update vbitmap.obj : error LNK2019: unresolved external symbol _sys_noloadbang
looks like MSVC is broken (first error) and your pd.lib is old (second error)
referenced in function _vbitmap_loadbang vbitmap.dll : fatal error LNK1120: 2 unresolved externals NMAKE : fatal error U1077: 'link' : return code '0x460' Stop.
ix@replic.net wrote:
On Fri, Dec 10, 2004 at 02:22:15PM -0800, Josh Steiner wrote:
does anyone have any pointer on what i need to do to get this to build on windows? i've never really been able to get pd externals to compile on windows, so i must doing sometihng obviouisly wrong ;)
it's probably that youre using nmake rather than GCC, but i cant be certain as nmake wont install here and the installer service keeps failing with some error about the .NET framework... with GCC:
actually, this is something i've been wondering, will gcc compiled .dll's work within millers (vc?) compiled distribution?
99% of externals (including vbitmap): s/pd_linux/dll in makefile & add /path/to/pd.dll on the line w/ 'gcc -shared'
1% of externals: a few #defines and/or changes to dlopen() to load other libs like SDL, ruby etc...
good to know.
Creating library vbitmap.lib and object vbitmap.exp vbitmap.obj : error LNK2019: unresolved external symbol __ftol2 referenced in function _vbitmap_draw_update vbitmap.obj : error LNK2019: unresolved external symbol _sys_noloadbang
looks like MSVC is broken (first error) and your pd.lib is old (second error)
referenced in function _vbitmap_loadbang vbitmap.dll : fatal error LNK1120: 2 unresolved externals NMAKE : fatal error U1077: 'link' : return code '0x460' Stop.
awsome, thanks. when i try to run it from either pd .37-3 or .38test10 (both miller's binary releases) i get a dialog when it trys to load the lib:
"The procedure point sys_noloadbang could not be located in the dynamic link lubrary pd.dll"
Hallo, Christopher Charles hat gesagt: // Christopher Charles wrote:
ok. so now there is vradio-square look, banglike circles within a square and toggle-like look. any other proposals? i changed it to frank's oval variant, and for now i'm rather content with it, doesn't remind me too much of bangs.
Me neither. I can follwo Mathieu's view that vbitmap is conceptually similar to toggle, but I still like to ovals better for two reasons: the toggle crosses are too hard to read anyways, and I would prefer to have a really new graphical object - which vbitmap-oval only is to me, because it doesn't look like bng to me.
now for the functionality. are there any other ideas about this except of expanding this to a 2-d bitmatrix (like blinkenlights).
hbitmap ;)
bitmap's direction should be reversible. [vh]radio should be
reversible, too, actually. By reversible I mean a setable range similar to the range of sliders, which can have the bigger value on top or on the bottom (left or right with hsliders).
(Actually both might be possible to do Once And Only Once with having a 2d bitmatrix only.)
well.) This would imply letting the square boxes become non-squares.
i thought about implementing the option of having more states than just on and off. for example i could give each element 2 bits, so clicking on them would cycle through the 4 states (maybe represented by showing numbers or by in-between colours of back- and foreground). useful for different note velocities or probability maps in step sequencers. what do you think about this?
Like this: http://footils.org/cms/show/28 ? These were done using data structures in front of a row of bng objects or in front of a vradio. Clicking the squares cycles them through 5 sizes. It's a bit like vbitmap actually, although with fixed dimensions and with indexed access (send index, get current value at index pos.)
the other thing i was thinking about is the inlet behaviour: for now, it doesn't clip nor mod the value it sends to it's outlet(that's crap, for when you send a bigger value to the inlet, there is no graphical way to affect the bits which are out of range). i could either let it clip to 2^number-1, so in case a bigger number is sent, all bits would stay on. the other option (the one i'd prefer) is performing a modulo 2^number on the inlet. any other options?
I'd vote for clipping, as that is consistent with the IEMgui objects, and if someone wants modulo, it's still possible to add a [mod] in front.
Frank Barknecht _ ______footils.org__
On Tue, 7 Dec 2004, Frank Barknecht wrote:
Christopher Charles hat gesagt: // Christopher Charles wrote:
the other thing i was thinking about is the inlet behaviour: for now, it doesn't clip nor mod the value it sends to it's outlet(that's crap, for when you send a bigger value to the inlet, there is no graphical way to affect the bits which are out of range). i could either let it clip to 2^number-1, so in case a bigger number is sent, all bits would stay on. the other option (the one i'd prefer) is performing a modulo 2^number on the inlet. any other options?
I'd vote for clipping, as that is consistent with the IEMgui objects, and if someone wants modulo, it's still possible to add a [mod] in front.
the other iemgui objects don't work with bitfields. Float may be the _type_ in use, but the _interpretation_ of the numbers is different. With bitfields you are expected to use ^ and & in place of + and *, for example, according to Ring Theory ;-)
a slider clipping does min(b,max(a,x)) to keep x within [a,b].
the most used definitions of min and max for bitfields are:
x<y means x&y==x x>y means x&y==y
(side note: but it's not guaranteed that you have either less than, greater than, or equal. (see Partial Order Theory). then you don't have true min/max's, instead you have their cousins inf/sup, but let's still write it min/max)
usual bit definitions of min/max:
min(x,y) = x&y max(x,y) = x|y
the notion of bitfield intervals is pretty weird, so I will explain it only if really wanted, but let's just say we use [0,(1<<n)-1] as you say, but with the definition of min/max I have given. Then the clipping to that interval is (x|0)&((1<<n)-1), or just x&((1<<n)-1), which behaves exactly like x mod 1<<n.
So I think Chris is right (as in, his solution is more consistent).
Mathieu Bouchard -=- Montréal QC Canada -=- http://artengine.ca/matju
very useful for step sequencers that would otherwise be built out of vradios, which are only able to trigger 1 note at a time.
cooool! :-D this one really helps me it is also useful to do bitmasks and pack midi data for sysex messages.
programming, i'd be thankful if someone could try to compile it on windows, too, and tell me what i did wrong.
tried on linux and compiles ok.
a great improvement may be to transform it to an array, but with a different visualization style (binary mode, ha ha!). or even implement a tabread-like behavior (read: add a second inlet to read x-position)
this one would really help in creating sequencer-like things... :)
On Tue, Dec 07, 2004 at 02:25:28AM +0100, Federico wrote:
very useful for step sequencers that would otherwise be built out of vradios, which are only able to trigger 1 note at a time.
cooool! :-D this one really helps me it is also useful to do bitmasks and pack midi data for sysex messages.
programming, i'd be thankful if someone could try to compile it on windows, too, and tell me what i did wrong.
tried on linux and compiles ok.
a great improvement may be to transform it to an array, but with a different visualization style (binary mode, ha ha!).
what is the 'binary mode' can you describe? or perhaps give a mock-up illustration?
or even implement a tabread-like behavior (read: add a second inlet to read x-position)
this one would really help in creating sequencer-like things... :)
im not sure what vradiobitmap is supposed to do..but have you looked at \doc\7.stuff\data-structures . if your goal is to place ticks/lines/squares/whatever on a canvas and use them for sequence data, it may do the trick for you.. i think theres more detail in a paper from MSP from 2002 or so, explaining how you can use an advancing pointer to grab the delay time before the next step, etc. personally i use BLT/TkZinc via toxy for sequence data..and 'pipe' as the event scheduler..
-- Federico
PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://iem.at/cgi-bin/mailman/listinfo/pd-list
On Tue, 7 Dec 2004 15:28:10 +0000 ix ix@replic.net wrote:
a great improvement may be to transform it to an array, but with a different visualization style (binary mode, ha ha!).
what is the 'binary mode' can you describe? or perhaps give a mock-up illustration?
ok, follow me (:
looking from *data* viewpoint: vbitmap = integer
looking from *interface* viewpoint: vbitmap is a one-value controller (like number, slider, radio), that shows you bits of a number, and also lets you typein number's bits instead of whole numbers.
now think to the array object. it's nothing than an integer-array, with a convenient interface to enter data, and most of all, a simple method to read data (you use the [tabread] object, that has 1 inlet, 1 outlet... isn't this simple?)
so, makinkg an array of vbitmaps it's just like presenting the array data in another format: binary (and also another way to enter these numbers). this is just an idea.
the point is that: when you want sequence some data you almost do the same thing, you create array of objects & numbers. i tried to make a patch that aims to be a sequencer (intended for notes, but this it's just one application of sequencing)... first of all it is a big frustration connecting many and many wires to make a so simple thing :9 i realized that it is few reusable because of the complexity in adding more objects(vradios) to "the array"... :| you can't change the "array" length dinamically, so more are the controls, more is the need of something that automates this work.
what do you think about?
im not sure what vradiobitmap is supposed to do..but have you looked at \doc\7.stuff\data-structures .
i still didn't get into this stuff, but it looks interesting. i'm going to learn this aspect of puredata when i'll be less busy :)