Midi controller ctlout problem
Hello.
I am having issues getting my patch to do what I want it to.
I'll do my best to describe what I'm trying to do and I've attached my patch.
I have a Korg padKonrol that I want use to visually represent time for an audio loop.
There are sixteen pads that have leds--to start off I was trying to make each of the sixteen pads light up in sequence (light will advance every 1 second in my patch).
The pads have control numbers from 50 to 65. A control value of 127 lights the pad, and a control value of 0 turns the pad off.
In my patch I have the bang first set the number object to 49--the metro then bangs that object, 1 is added (to get 50). I then have the 50 stored back into the number object for counting. The current number (50 at start) and the previous number (49 at start) are packaged and sent to a ctlout where the current number led is turned on (value 127) and the previous one is turned off (value 0).
This just continues to count up.
There is most likely a more elegant way to do this, but my main concern is that my padKontrol will sometimes keep two pads lit as it goes through the counting (ex, 50 turns on correctly -> 50 turns off correctly, 51 turns on correctly -> 51 stays on (incorrect), 52 turns on correctly -> 52 turns off correctly (as well as 51), 53 turns on correctly) -- it will occasionally do this and throw in two that stay lit, when I only want one lit at a time.
I was thinking it may have to do with how I'm sending the messages to the ctlout (order they are being sent, or they are getting confused because they are being sent too close together, etc)
Hopefully this makes sense. I tried to explain with as much detail as possible.
Thanks.
Effects processor/instrument/sampler looper thing
ok well
to get everything going i usually am wearing headphones just to test it out
press 1 and 5 to turn on the dsp and get the effects line going
press L to load a wav sample
k to analyze the sample
turn up the volume on the sample looper boombox
now depending on wether or not the the enable reaction box or enable BPM box is connected to the box directly to the left will connect it to a specific bpm or it will react to incoming or playing sound
after switching from box to box i find it makes me turn the boombox on and off so just press 5 and 1 twice
so now turn the filter bank on by pressing F
start talking or making some noise
press the space bar
until you hear whatever sound being frozen then make some sort or loop
press F again when you are done and wait until you see
the loop appear in the odisto array
then press A to analyze that loop turn up the volume in the glitch section
the choice of reaction and BPM has to be the same as the boombox for it to work
correctly
if you use the bpm the green vslider next to the volume will set it
but its not really bpm as much as it is just a way of timing
pressing loop (H) will just make the sections of the loop keep playing over and over
the delay can be used by plugging the bng into the hslider or plugging the ranom box into the hslider if you just plug the bng into it though you would have to manually set the delay amount
in order for the panning to really get interesting you can connect the top bng in the panningreact box to the metro 250 then connect that metro 250 to the bng right below it you can set the speed with the panning speed hslider
the panning yellow box with the car mod index sliders changes the different panning you can turn on by pressing (3)
on both the wah and pitch vslider the inside slider is for the actual amount of wah or pitch change and the outside vslider is for the speed at which it changes if it is turned on (6,7,8,9)
the random pitch (i) random wah is pretty fun for messing round with or you could just manually set the amount of change
the distortion doesn't have to be turned on in oder for it to work only for the slider to give it some power
the shaper gives you amount, depth, limit, and gain controls
and the ASD/size/global
attack/sustain/decay size and global amplitude
the ASD can be used for shaping the sound and the global can be used for a volume control
at this point i would hope this is making a little more sense if not just ask i really just wanted to see if anybody else would use something like this
im also going to post a 6 channel simple looper that i have been messing with that i am starting to like
any input would be awesome
paul
How to load libraries in PD
I finally did, how to load libraries in pd, but now there is another problem started
tried D:\\pd\\bin\\cyclone.dll and succeeded
this is cyclone 0.1, 54th alpha build
tried hammer.dll and succeeded
hammer.dll\\hammer.dll: couldn't load (problem)
tried sickle.dll and succeeded
sickle.dll\\sickle.dll: couldn't load (problem)
error (miXed): version mismatch
use a more recent Pd release (or recompile the cyclone).
I am using, pd version 039-2, where as this cyclone library requires 037-038 or higher. that i quite have.
how I can recompile the cyclone? there is a makefile? but dont know how to compile at windows XP.
PROBLEM: I want to load cyclone library to use atan~, sin~ etc objects.
Problem compiling external on Windows
Alberto,
I figured it out. I made a few changes to your makefile, though:
1. added a path to m_pd.h
2. changed "rm -f $*.o ../$*.dll" to "rm -f $*.o $*.dll"
(the .dll file wasn't being removed from the working directory)
3. forced DEST to the pd/extra directory
4. removed CSYM since it's not being used
5. removed "current: pd_win"; changed "pd_win: $(NAME).dll" to "all: $(NAME).dll"
6. removed non-win stuff
7. removed the clean and install targets for right now
Hopefully these changes make it easier for the complete newbie. Anyway, with enormous thanks to AlbertoZ, here's a mini-tutorial for using my makefile.
1. if you're using pd-extended, save this as "m_pd.h" (into the same directory with
helloworld.c). If you're using pd-vanilla, you can skip this step.
2. save this code as "mk.mk" (into the same directory with helloworld.c):
# mk.mk -- invoke with "make -f mk.mk"
NAME = helloworld
PDPATH = "c:/Progra~1/pd"
LDFLAGS = --export-dynamic -shared
WININCLUDE = -I $(PDPATH)/src
WINCFLAGS = -DPD -DNT -W3 -WX -Werror -Wno-unused \
-mms-bitfields -Wno-parentheses -Wno-switch \
-O6 -funroll-loops -fomit-frame-pointer
all: $(NAME).dll
.SUFFIXES: .dll
.c.dll:
gcc $(WINCFLAGS) $(WININCLUDE) -c -o $*.o $*.c
gcc $(LDFLAGS) -o $*.dll $*.o $(PDPATH)/bin/pd.dll
strip --strip-unneeded $*.dll
cp $*.dll $(PDPATH)/extra
rm -f $*.o $*.dll
2. modify the PDPATH variable if needed to reflect the actual location of pd on your
system (MSYS will interpret c:/Program Files/pd as C:/Program, so use
c:/Progra~1/pd instead)
3. if you're using pd-extended, remove line 6 (WININCLUDE = -I $(PDPATH)/src) and
remove $(WININCLUDE) from line 14.
4. close all pd windows if any are open
5. in MSYS, navigate to the directory with helloworld.c and type: make -f mk.mk
(type make -s -f mk.mk if you want to hide the lengthy shell response)
6. the shell should respond with something like:
gcc -DPD -DNT -W3 -WX -Werror -Wno-unused -mms-bitfields -Wno-parentheses
-Wno-switch -O6 -funroll-loops -fomit-frame-pointer -I "c:/Progra~1/pd"/src -c -o
helloworld.o helloworld.c
gcc --export-dynamic -shared -o helloworld.dll helloworld.o
"c:/Progra~1/pd"/bin/pd.dll
strip --strip-unneeded helloworld.dll
cp helloworld.dll "c:/Progra~1/pd"/extra
rm -f helloworld.o helloworld.dll
7. a new helloworld.dll file should be saved into the pd/extra folder, and you should be
able to create the "helloworld" object in a new pd window.
Good luck!
middlepedal
Renaming delays
hi friends,
i have a problem about delwrite~ and delread~ objects,
i want to create an object(patch) with a signal input and signal output, that output will be delayed, and i want to be able to use that object in other patches,
i created a patch 'delayobject' using objects like:
|delwrite~ delay 3000( |delread~ delay 400(
but when i want to use more than one of these 'delayobject' s in an other patch, i get the error
warning: delay: multiply defined
so, for every 'delayobject' that i create i have to give 'delay' a different name automatically,
i try to use something like $1-delay but i can't figure out how, cause there is no inlet for 'name' on delread~,delwrite~ objects,
is there a way that i can rename these objects with a message?
or any other ideas, suggestions?
thanx
The History about a little video launcher patch...
hi, this is my beginning: i need a "thing" who launches two videos and two audios (pre-recorded, aleatory selected) of a list, in the moment that i make a noise (enoug noise) in a microphone, for that i make this simple patch:
----cut from here----
#N canvas 92 55 825 609 12;
#X obj 85 5 gemhead;
#X obj 345 161 pix_film;
#X msg 488 98 auto \$1;
#X obj 488 78 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
1;
#X obj 825 212 gemwin;
#X msg 805 105 create;
#X msg 892 182 destroy;
#X msg 848 149 1;
#X msg 853 178 0;
#X msg 753 81 border 0;
#X msg 710 155 dimen 2048 768;
#X obj 85 161 pix_film;
#X obj 85 218 pix_texture;
#X msg 192 92 auto \$1;
#X obj 192 71 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
1;
#X msg 192 126 colorspace RGBA;
#X msg 488 120 colorspace RGBA;
#X obj 345 435 rectangle 0 0;
#X floatatom 419 328 5 0 0 0 - - -;
#X obj 394 405 /;
#X floatatom 465 328 5 0 0 0 - - -;
#X obj 444 405 /;
#X obj 374 290 unpack 0 0 0;
#X obj 85 260 translateXYZ;
#X obj 85 431 rectangle 0 0;
#X floatatom 159 327 5 0 0 0 - - -;
#X obj 134 401 /;
#X floatatom 205 326 5 0 0 0 - - -;
#X obj 184 400 /;
#X obj 114 284 unpack 0 0 0;
#X msg 153 372 60;
#X msg 203 373 50;
#X obj 345 216 pix_texture;
#X obj 345 262 translateXYZ;
#X msg 413 376 60;
#X msg 463 377 50;
#X msg 192 223 -5.5;
#X msg 318 100 open lib/video\$1.mov;
#X msg 8 102 open lib/video\$1.mov;
#X msg 488 225 10.8;
#X obj 1146 4 loadbang;
#X msg 488 45 1;
#X msg 192 46 1;
#X msg 488 167 0;
#X msg 192 174 0;
#X msg 682 447 open lib/audio\$1n.wav;
#X obj 993 124 adc~ 2;
#X obj 995 279 s sincro;
#X obj 957 61 s aleatorio_1;
#X obj 1047 91 s aleatorio_2;
#X obj 144 195 s fin_video;
#X obj 404 190 s fin_video;
#X obj 682 331 r aleatorio_1;
#X obj 957 5 r sincro;
#X obj 1047 4 r sincro;
#X obj 1146 39 s inicio;
#X obj 1024 192 r inicio;
#X obj 753 7 r inicio;
#X obj 805 34 delay 5;
#X obj 848 74 delay 5;
#X msg 936 441 open lib/audio\$1n.wav;
#X obj 853 356 r sincro;
#X obj 681 527 dac~ 3;
#X obj 997 527 dac~ 4;
#X obj 936 335 r aleatorio_2;
#X obj 682 483 readsf~ 2 221000;
#X obj 936 476 readsf~ 2 221000;
#X obj 318 14 r aleatorio_2;
#X obj 192 12 r inicio;
#X obj 134 348 r inicio;
#X obj 488 10 r inicio;
#X obj 401 349 r inicio;
#X obj 717 390 delay 5;
#X obj 971 389 delay 5;
#X obj 599 345 r sincro;
#X msg 599 403 1;
#X obj 624 16 r inicio;
#X msg 624 46 \; pd dsp 1;
#X obj 501 142 r fin_video;
#X obj 221 148 r fin_video;
#X obj 927 266 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X msg 853 417 1;
#X obj 8 51 r aleatorio_1;
#X obj 994 156 hip~ 5;
#X obj 995 246 threshold~;
#X obj 957 32 random 4;
#X obj 1047 31 random 4;
#X msg 1024 220 set 0.6 1000 0 100;
#X obj 717 361 r fin_video;
#X obj 971 360 r fin_video;
#X obj 599 373 delay 6;
#X obj 853 390 delay 6;
#X obj 682 416 float;
#X obj 936 415 float;
#X msg 732 117 cursor 0;
#X connect 0 0 11 0;
#X connect 0 0 1 0;
#X connect 1 0 32 0;
#X connect 1 1 22 0;
#X connect 1 2 51 0;
#X connect 2 0 1 0;
#X connect 3 0 2 0;
#X connect 5 0 4 0;
#X connect 6 0 4 0;
#X connect 7 0 4 0;
#X connect 8 0 4 0;
#X connect 9 0 4 0;
#X connect 10 0 4 0;
#X connect 11 0 12 0;
#X connect 11 1 29 0;
#X connect 11 2 50 0;
#X connect 12 0 23 0;
#X connect 13 0 11 0;
#X connect 14 0 13 0;
#X connect 15 0 11 0;
#X connect 16 0 1 0;
#X connect 18 0 19 0;
#X connect 19 0 17 1;
#X connect 20 0 21 0;
#X connect 21 0 17 2;
#X connect 22 1 18 0;
#X connect 22 2 20 0;
#X connect 23 0 24 0;
#X connect 25 0 26 0;
#X connect 26 0 24 1;
#X connect 27 0 28 0;
#X connect 28 0 24 2;
#X connect 29 1 25 0;
#X connect 29 2 27 0;
#X connect 30 0 26 1;
#X connect 31 0 28 1;
#X connect 32 0 33 0;
#X connect 33 0 17 0;
#X connect 34 0 19 1;
#X connect 35 0 21 1;
#X connect 36 0 23 1;
#X connect 37 0 1 0;
#X connect 38 0 11 0;
#X connect 39 0 33 1;
#X connect 40 0 55 0;
#X connect 41 0 3 0;
#X connect 42 0 14 0;
#X connect 43 0 1 1;
#X connect 44 0 11 1;
#X connect 45 0 65 0;
#X connect 46 0 83 0;
#X connect 52 0 92 0;
#X connect 53 0 85 0;
#X connect 54 0 86 0;
#X connect 56 0 87 0;
#X connect 57 0 9 0;
#X connect 57 0 10 0;
#X connect 57 0 58 0;
#X connect 57 0 94 0;
#X connect 58 0 5 0;
#X connect 58 0 59 0;
#X connect 59 0 7 0;
#X connect 60 0 66 0;
#X connect 61 0 91 0;
#X connect 64 0 93 0;
#X connect 65 0 62 0;
#X connect 66 1 63 0;
#X connect 67 0 37 0;
#X connect 68 0 42 0;
#X connect 68 0 15 0;
#X connect 68 0 44 0;
#X connect 68 0 36 0;
#X connect 69 0 26 0;
#X connect 69 0 30 0;
#X connect 69 0 28 0;
#X connect 69 0 31 0;
#X connect 70 0 41 0;
#X connect 70 0 16 0;
#X connect 70 0 43 0;
#X connect 70 0 39 0;
#X connect 71 0 34 0;
#X connect 71 0 35 0;
#X connect 71 0 19 0;
#X connect 71 0 21 0;
#X connect 72 0 92 0;
#X connect 73 0 93 0;
#X connect 74 0 90 0;
#X connect 75 0 65 0;
#X connect 76 0 77 0;
#X connect 78 0 43 0;
#X connect 79 0 44 0;
#X connect 81 0 66 0;
#X connect 82 0 38 0;
#X connect 83 0 84 0;
#X connect 84 0 47 0;
#X connect 84 0 80 0;
#X connect 85 0 48 0;
#X connect 86 0 49 0;
#X connect 87 0 84 0;
#X connect 88 0 72 0;
#X connect 88 0 90 0;
#X connect 89 0 73 0;
#X connect 89 0 91 0;
#X connect 90 0 75 0;
#X connect 91 0 81 0;
#X connect 92 0 45 0;
#X connect 93 0 60 0;
#X connect 94 0 4 0;
----cut to here---
i'm sorry for space wasted, but is the 4:02 (...of course!),
the "thing" works, i have the video and audio libs in the apropiate site (they are 5 .mov files and 5 .wav, not very heavy content), but at the third clap in front of the mic it hangs, allways on the third, and a bit later a beatiful death blue screen (yes, i'm windozed, linux don't have drivers for my presonus firestation), i test it in two partitions (same machine), any ideas? Thanks for reading, interest, and.. for all, best regards.
jano
Using messages to set properties of other things
ayeee
I've got a metronome triggering slices of a breakbeat and I've set up a way to shift every second metronome bang using a delay object and spigot objects. By altering the delay you can create more or less of a swing to the metronome bangs. However obviously you can only delay the bang so much before it appears in sync with the next bang and this is based the tempo that your working at.
so...
I'd like to use the tempo to calculate a range for the delay.
i.e
If the tempo was 120BPM then the metronome will be 'BANG'ing every 500 ms
so the rage for the delay would be from 0 ms to something less than 500 ms (lets say 450)
If the tempo was 240BPM the metronome will be 'BANG'ing every 250ms
so the range of the delay would be from 0 ms to say 250 ms ( so.... like ..... 225)
so yeah
I'd like to generate the minium and maximum for a vertical slider based on the tempo at run time
hmmmmmm.....
I hope that's kiind of clearer but looking back it's quite long winded
I'm sorry.
let me know if it still doesn't make any sense.
Thank youuuuu
Iain
Clearing delay lines
you might need to use a set up that involves using two (or more) separate delay lines and swapping back and forth between them at the moment you want to 'clean' the delay. here's how it would work:
assume two delwrite~ obects with delay lines named a and b. matching these two delwrite~s are two delread~s. each of these four objects can be 'turned on' or 'muted' (using the method supplied above by giair). muting a delwrite~ object technically means muting the audio going into to the object.
the initial state of the patch would [delwrite~ a] and [delread~ a] turned on and [delwrite~ b] and [delread~ b] muted. when you want to clear the delay line, you would mute [delwrite~ a] and [delread~ a]. at that point you can turn on the 'b' delay line objects. you can switch back and forth between your two delay lines cleanly if you wait an amount of time greater than the length of the delay.
in the case that your delay time is longer than the time you want to wait, you would have to use another delay line. the downside of this is that the control gets a little bit more complicated. if this is something you might apply, check miller puckette's book (pdf available on his website i think) and look at the chapter on polyphonic synthesizers. polyphonic synths require some form of voice allocation and you might be able to use some of pd's voice allocation support to help manage your delay lines, because it is a fairly similar process.
i hope this made sense. i don't think it's as confusing as it sounds, but it is hard to put into words. if you understand what i mean, but aren't sure how to implement it, i could probably post an example; just let me know.
--zac
Startup file in Linux
Files starting with a "." are usually hidden on Linux. The "-a" flag for "ls" forces display of these. For example:
$ cd /home/claude
$ ls
bin bwusage.txt crapart2.wav IMG_0379.JPG incoming ls.txt private public public_html raw.txt Screenshot.png tail.pd tail.pd.png tail.png tmp
These are the files you normally see.
Now I try:
$ cd /home/claude
$ ls -a
. .bashrc .fullcircle .grip-l3enc .lyx .phoenix .Skype .wine
.. .bcast .gaim .grip-lame .macromedia private .soundtracker .Xauthority
.alsaplayer bin .gamix .grip-other .mailcap public .ssh .xawtv
.amsn bwusage.txt .gconf .gstreamer .mcop public_html .sversionrc .xawtv~
.aspell.english.prepl .canna .gconfd .gtkrc .metacity .qt tail.pd .xchat
.aspell.english.pws .cddb .gftp .gtkrc-1.2-gnome2 .mikmodrc raw.txt tail.pd.png .xchm
.aspell.en.prepl .cddbslave .gimp-1.2 .ICEauthority .mime.types .RealNetworks_RealCookies_60 tail.png .xemacs
.aspell.en.pws .cheesetracker_QT .gnome .icons .mozilla .RealNetworks_RealMediaSDK_60 .terminatorXrc .xmms
.audacity crapart2.wav .gnome2 IMG_0379.JPG .mplayer .RealNetworks_RealPlayer_60 .thumbnails .xnviewrc
.autosave .cvspass .gnome2_private incoming .nautilus .RealNetworks_RealShared_00 .thunderbird .xscreensaver
.autothumb .dvdcss .gnome-desktop .jackdrc .netscape .realplayerrc tmp .xvpics
.avidemuxrc .emacs .gnome_private .java .netscape6 .recently-used .Trash .ymessenger
.Azureus .emacs.d .gphoto .kde .nicotine .rezound .user60.rdb
.bash_history .esd_auth .gprename .libquicktime_codecs .openoffice .rhn-applet.conf .viminfo
.bash_logout .fonts .grip .lives .pdrc .sane .wgetrc
.bash_profile .fonts.cache-1 .grip-flac ls.txt .pdrc~ Screenshot.png .wgetrc~
A whole load more files suddenly appear!
Obviously replace the "claude" in /home/claude with your username, too.