openpanel to open
@Liquidyzer This contains all of the patches below and a sample..... open sample.zip
The first example...... open_sample.pd
Basically "open" is just dropped..... you could put "list" instead, or "woof"....... or any symbol (try it if you don't believe me).
The "open" or "woof" says to Pd "this is a list" The message then sends a list of one atom....... "track1.wav" which replaces $1.
Without the "list" tag the next message box complains..... the $1 expects an atom from a list.
Yes, it's not obvious, but it is documented in many help files in the Pd installation.
A series of symbols and floats that starts with a float is automatically a "list".
So [1 woof 3( is a list and all the atoms are passed onwards and can be translated by $1 $2 and $3.
But [track1.wav( is a symbol........ not a list. By putting more than one symbol it becomes a list as with [open track1.wav(........ but "open" is translated as a "tag" that says...... this is a list....... and so is not passed onwards. "track1.wav" is passed onwards as the list.
You can do the same thing with [pack s]...... packing the symbol "track1.wav" into a list.
open_sample2.pd
You don't need to include $1 (track1.wav) in the array name, but it helps if you want to write many samples to many arrays, and know which one is which....... or using [pack s $0] you can get $0 into the array name as you wished...... open_sample3.pd
David.
how to get current block size?
thanks
but I use vanilla
and I also need to have it working on linux
mediasettings/audiosettings
... couldn't create
lbang
... couldn't create
mediasettings/audiosettings
... couldn't create
lbang
... couldn't create
pp add2
... couldn't create
mediasettings/audiosettings
... couldn't create
lbang
... couldn't create
pp add2
... couldn't create```
how does [list drip] actually work?
Hey, rjp9!
Beware that you're 'normal' version of [list-drip] ist not linear, but rather exponential in computation time! This is because Pd will make a lot of copies of the list and you may end up with a stack overflow. Try, for example, sending a long list with a few hundred alements - Pd will most likely crash!
The main reason why list-abs' [list-drip] abstraction makes use of this special algorithm is to keep the computation time linear.
Coincidently, this has been discussed on the Pd mailing list just a couple of days ago, so you may want to have a look: http://lists.puredata.info/pipermail/pd-list/2015-10/111681.html
(Matt speaks about an abstraction that works basically the same way as your 'normal' one)
Cheers
PS: A good (and faster) alternative to list-abs' [list-split] is zexy's [drip].
how does [list drip] actually work?
Hi folks,
This is going to be a weird and long post, because I am walking through my thinking as much as I am asking questions. Sorry for the length in advance.
I've recently become fascinated with the many possibilities afforded by the list-abs library, and what strikes me at is that [list-drip] seems to be at the heart of most of them. For those of you who don't know, [list-drip] works by separating (aka "dripping") an incoming list into its individual elements (atoms?). This allows you to do a bunch of operations on these elements before repacking them into a new list. For example, [list-compare] functions like [==] but for lists by checking each list's elements against each other to give out a binary yes or no answer. And of course, [list-drip] is at the core here.
I would like to really figure out the logic behind [list-drip], but the help file (well, really the abstraction itself) is deceptively simple. This is because [list-drip] itself is but an abstraction based on the clever use of [list-split] (which is not an abstraction but an external) and some strange binary math and triggering mechanisms that I don't understand.
Here's the [list-drip] extraction itself:
I'll just talk about this abstraction and ask questions along the way.
Here's the first part. Pretty simple. [trigger] is passing the entire list on, and then sending a bang. This seems weird but I've heard that pd will take care of all the operations starting at the right outlet of trigger first, so the bang is guaranteed to come after the list has been "dripped."
Here's the second part, where we have [list split] doing a binary "less than" operation on the list. "If the list is less than 2 elements long, it gets sent to the outlet and the [spigot] closes, else, open the spigot." This [trigger] then passes a copy of the list onto [spigot] which is either open or closed based on the above result.
Ok now here is where things start to get crazy. The list is now fed into two identical [list split] mechanisms with some weird math going on, which are also feeding back into the top of the second [trigger].
Let's break this down really quick:
First, we get the length of the list, then we feed it into [>> 1]. With some research in pd and the on the web, I come to the conclusion that we are basically dividing (integer division) by 2. This is setting the point for where [list split] outputs a list with only a certain number (but always half) of elements (using the first outlet). As I said before, this result is being fed back into the second [trigger].
So I think basically what's happening is this:
...where the rest of the list is either exactly half the total list length (if it's an even number) or half + 1 (if the total length is an odd number of elements).
So we have two "loops" going on here, where on operates on the first half of the list (will call this the "red" loop, and the other operates on the second "green loop".
Now in terms of trigger ordering, what is happening here? Are we constantly triggering the red loop until there are no more operations, and then moving on the green loop? And what does this mean in the context of the patch? I'm confused about how [trigger] acts in these situations with many nested loops.
To troubleshoot, I attached a print the outlets of both the red and green **[list split]**s, and sent the list [a b c d 1 2 3 4( to [list drip]. Here's the output from the console:
first half: symbol a
second half: symbol b
first half: list a b
first half: symbol c
second half: symbol d
second half: list c d
first half: list a b c d
first half: 1
second half: 2
first half: 1 2
first half: 3
second half: 4
second half: 3 4
second half: 1 2 3 4
To me this output looks like it was printed backwards. Is there some weird interaction between [trigger] and [print] going on?
Furthermore, how is the output of [list drip] organized so that each element is output in it's sequential order? How does the green loop know to wait for the red loop to finish?
[muse] -- float array that acts like a musical scale
Creates music scales using simple lists or by sending new pitches to individual notes. The more creation arguments there are, the more inlets there will be. It sends a frequency value through the 1st outlet and the unaltered midi value through the 2nd outlet.
- [muse 40 4 7]
- Sending 0, 1, 2 returns 40, 44, 47 respectively.
- The scale cycles through higher and lower octaves
- 3, 4, 5 returns 52, 56, 59
- -1, -2, -3 returns 35, 32, 28
functions:
- [list | l | d | x | i ..(
- Takes a list of numbers and maps the values to the array.
- Any non-numeric values are skipped over.
- They're basically all the same function, with the differences being in their offsets and/or whether it should change the size of the scale implicitly based on list size.
-- i is an implicit list, which changes the size of the scale based on the number of arguments specified.
-- x is an explicit list, which means that it doesn't change the scale size because it's leaving that up to the user to change explicitly. This message is also good for changing the root note.
-- list or l is the default list, and whether it interprets lists implicitly or explicitly is based on whether the toggle "exp" is set to 1 or 0. By default, lists are interpreted implicitly.
-- d has an offset of 1. It's basically a short form of [list d ...( or, a list that skips the root note. Like a normal list, it also adheres to the "exp" toggle to determine whether it is implicit or explicit.
- [exp 1|0(
- sets a boolean to determine whether or not scale size is implied in the size of lists sent.
- if exp equals 1, scale size will not change, unless the list is preceded by i.
- if exp equals 0, scale size will change, unless the list is preceded by x.
- [n $1(
- sets the size of the scale.
- the scale by default, with no creation arguments, is only 2 float values. This amount grows based on how many arguments are specified. but the array also resizes itself automatically to twice its original size whenever a size requested goes over the current maximum range.
- the same doubling effect applies to lists with more arguments than the maximum scale size.
-- [muse 40 2 4 5 7 9 11] has 7 floats worth of bytes reserved for the scale.
-- upon receiving [n 16(, since 16 is greater than (7 x 2), scale is resized to hold 16 floats.
-- upon receiving [n 17(, scale is resized to hold 32 floats. This doesn't mean the scale uses all 32 notes, but the space is now reserved if you ever decide to increase the scale size later.
- sets the size of the scale.
- [set $2 $1(
- scale is assigned the value $1 at index $2.
-- [set 6 11( set the 6th interval to 11.
- scale is assigned the value $1 at index $2.
- [ref $1(
- sets the reference pitch of middle A.
-- default value is 440.
- sets the reference pitch of middle A.
- [tet $1(
- assign the number of tones in an octave.
-- tones refer to how large a semi-tone needs to be in order to evenly disperse an octave into a specific amount of distinct pitches.
- assign the number of tones in an octave.
- [oct $1(
- assign the number of notes in an octave.
-- notes refer to the number of semi-tones that the scale should jump when going to the next or previous octave.
- assign the number of notes in an octave.
- [octet $1( / [ot $1(
- assigns # of notes and # of tones simultaneously
- [peek label(
- prints the current scale.
- a label is optional.
- [ptr label(
- prints the current size of the float pointer that your scale uses. It isn't necessarily the same size as the scale itself.
JKP - Bangboum
Sorry I'm getting errors, can you help me?
I've installed the montreal mtl library, but still I have too many objects missing
mtl/qompander~ /id compander
... couldn't create
mtl/clkMaster 120
... couldn't create
setting pattern to default: /home/leopard/Documenti/Music/_sperimentazioni/_PURE DATA/Bangboum/./moteur/*
[msgfile] part of zexy-2.2.3 (compiled: Sep 22 2010)
Copyright (l) 1999-2008 IOhannes m zmölnig, forum::für::umläute & IEM
mtl/player~
... couldn't create
mtl/clkSlave 4 16
... couldn't create
mtl/kick808~
... couldn't create
mtl/clkSlave 1 4
... couldn't create
setting pattern to default: /home/leopard/Documenti/Music/_sperimentazioni/_PURE DATA/Bangboum/./moteur/*
mtl/player~
... couldn't create
setting pattern to default: /home/leopard/Documenti/Music/_sperimentazioni/_PURE DATA/Bangboum/./moteur/*
mtl/player~
... couldn't create
setting pattern to default: /home/leopard/Documenti/Music/_sperimentazioni/_PURE DATA/Bangboum/./moteur/*
mtl/player~
... couldn't create
setting pattern to default: /home/leopard/Documenti/Music/_sperimentazioni/_PURE DATA/Bangboum/./moteur/*
mtl/player~
... couldn't create
setting pattern to default: /home/leopard/Documenti/Music/_sperimentazioni/_PURE DATA/Bangboum/./moteur/*
mtl/player~
... couldn't create
setting pattern to default: /home/leopard/Documenti/Music/_sperimentazioni/_PURE DATA/Bangboum/./moteur/*
mtl/player~
... couldn't create
setting pattern to default: /home/leopard/Documenti/Music/_sperimentazioni/_PURE DATA/Bangboum/./moteur/*
mtl/player~
... couldn't create
PD vanilla ... mrpeach problem
I want to try VANILLA version because of the MIDI LOOP massages on some faders that I got, Ive read that on vanilla it will not happened.
When I load my PD in VANILLA I get this:
... couldn't create
udpreceive 8000
... couldn't create
import mrpeach
... couldn't create
routeOSC /MIXER /SEEK /FX /LOOPCUE /BROWSEPITCH /7 /9
... couldn't create
routeOSC /fader14 /fader15 /fader16 /fader17 /toggle13 /toggle14 /push12 /push11 /rotary21 /fader13 /rotary16 /fader5 /fader6 /fader10 /fader11 /fader12 /toggle12 /toggle11 /push9 /push10
... couldn't create
packOSC
... couldn't create
udpsend
... couldn't create
etc
when I import path to mrpeach that I copied from PD-EXTENDED I get:
consistency check failed: sys_decodedialog: \{+C:UsersmekonDesktoptouchoscprogramipd-0.42-5.mswpdextramrpeach\}
So how to import path properly?
How do you guys use PD with other audio programs?
didnt know jack also worked for windows xp?
EDIT:just downloaded jack from the website,but i get all kinds of errors when i try to unzip?
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Cannot open Versions\Current\Headers (jack-1.9.2\bin\osx_32bits\Jackmp.framework\Headers --> Versions\Current\Headers)
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Symbolic link points to missing file
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Cannot open Versions\Current\Jackmp (jack-1.9.2\bin\osx_32bits\Jackmp.framework\Jackmp --> Versions\Current\Jackmp)
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Symbolic link points to missing file
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Cannot open Versions\Current\Resources (jack-1.9.2\bin\osx_32bits\Jackmp.framework\Resources --> Versions\Current\Resources)
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Symbolic link points to missing file
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Cannot create ersions\Current\Headers
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Cannot create Versions\Current\Jackservermp
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Cannot create Versions\Current\Resources
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Cannot open jack-1.9.2\bin\osx_32bits\Jackservermp.framework\Resources (A --> jack-1.9.2\bin\osx_32bits\Jackservermp.framework\Resources)
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Symbolic link points to missing file
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Cannot create Versions\Current\Panda
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Cannot create Versions\Current\Resources
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Cannot open jack-1.9.2\bin\osx_32bits\Panda.framework\Resources (A --> jack-1.9.2\bin\osx_32bits\Panda.framework\Resources)
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Symbolic link points to missing file
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Cannot create Versions\Current\Headers
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Cannot create Versions\Current\Jackmp
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Cannot create Versions\Current\Resources
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Cannot open jack-1.9.2\bin\osx_64bits\Jackmp.framework\Resources (A --> jack-1.9.2\bin\osx_64bits\Jackmp.framework\Resources)
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Symbolic link points to missing file
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Cannot create Versions\Current\Headers
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Cannot create Versions\Current\Jackservermp
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Cannot create Versions\Current\Resources
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Cannot open jack-1.9.2\bin\osx_64bits\Jackservermp.framework\Resources (A --> jack-1.9.2\bin\osx_64bits\Jackservermp.framework\Resources)
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Symbolic link points to missing file
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Cannot create Versions\Current\Panda
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Cannot create Versions\Current\Resources
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Cannot open jack-1.9.2\bin\osx_64bits\Panda.framework\Resources (A --> jack-1.9.2\bin\osx_64bits\Panda.framework\Resources)
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Symbolic link points to missing file
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Cannot create
"Morphine" - fx-morphing engine
this is the errors i get.really love the GUI though:)
any2string 128 -1
... couldn't create
string2any
... couldn't create
[demultiplex] part of zexy-2.2.3 (compiled: Jun 4 2009)
Copyright (l) 1999-2008 IOhannes m zmölnig, forum::für::umläute & IEM
[length] part of zexy-2.2.3 (compiled: Jun 4 2009)
Copyright (l) 1999-2008 IOhannes m zmölnig, forum::für::umläute & IEM
[makesymbol] part of zexy-2.2.3 (compiled: Jun 4 2009)
Copyright (l) 1999-2008 IOhannes m zmölnig, forum::für::umläute & IEM
any2string 128 -1
... couldn't create
string2any
... couldn't create
getdollarzero 10
... couldn't create
wahwah~: an audio wahwah, version 0.1 (ydegoyon@free.fr)
expr, expr~, fexpr~ version 0.4 under GNU General Public License
any2string 128 -1
... couldn't create
string2any
... couldn't create
any2string 128 -1
... couldn't create
string2any
... couldn't create
getdollarzero 10
... couldn't create
any2string 128 -1
... couldn't create
string2any
... couldn't create
any2string 128 -1
... couldn't create
string2any
... couldn't create
getdollarzero 10
... couldn't create
any2string 128 -1
... couldn't create
string2any
... couldn't create
any2string 128 -1
... couldn't create
string2any
... couldn't create
getdollarzero 10
... couldn't create
"Morphine" - fx-morphing engine
for some reason, the list of error messages became even longer......
mix.switch.nice 101
... couldn't create
init.post.dollarg
... couldn't create
flow.receive
... couldn't create
flow.send
... couldn't create
list.split 1
... couldn't create
flow.send
... couldn't create
flow.send
... couldn't create
flow.receive
... couldn't create
[makesymbol] part of zexy-2.2.3 (compiled: Feb 25 2009)
Copyright (l) 1999-2008 IOhannes m zmölnig, forum::für::umläute & IEM
flow.@parse
... couldn't create
flow.receive
... couldn't create
init.dollar.zero.top
... couldn't create
flow.receive
... couldn't create
flow.receive
... couldn't create
list.build
... couldn't create
[demultiplex] part of zexy-2.2.3 (compiled: Feb 25 2009)
Copyright (l) 1999-2008 IOhannes m zmölnig, forum::für::umläute & IEM
init.make.unique
... couldn't create
flow.receive
... couldn't create
flow.receive
... couldn't create
flow.send
... couldn't create
list.split 1
... couldn't create
list.split 1
... couldn't create
list.length
... couldn't create
flow.send
... couldn't create
flow.send
... couldn't create
wahwah~: an audio wahwah, version 0.1 (ydegoyon@free.fr)
expr, expr~, fexpr~ version 0.4 under GNU General Public License
mix.switch.nice 101
... couldn't create
init.post.dollarg
... couldn't create
flow.receive
... couldn't create
flow.send
... couldn't create
list.split 1
... couldn't create
flow.send
... couldn't create
flow.send
... couldn't create
flow.receive
... couldn't create
flow.@parse
... couldn't create
flow.receive
... couldn't create
init.dollar.zero.top
... couldn't create
flow.receive
... couldn't create
flow.receive
... couldn't create
list.build
... couldn't create
init.make.unique
... couldn't create
flow.receive
... couldn't create
flow.receive
... couldn't create
flow.send
... couldn't create
list.split 1
... couldn't create
list.split 1
... couldn't create
list.length
... couldn't create
flow.send
... couldn't create
flow.send
... couldn't create
mix.switch.nice 101
... couldn't create
init.post.dollarg
... couldn't create
flow.receive
... couldn't create
flow.send
... couldn't create
list.split 1
... couldn't create
flow.send
... couldn't create
flow.send
... couldn't create
flow.receive
... couldn't create
flow.@parse
... couldn't create
flow.receive
... couldn't create
init.dollar.zero.top
... couldn't create
flow.receive
... couldn't create
flow.receive
... couldn't create
list.build
... couldn't create
init.make.unique
... couldn't create
flow.receive
... couldn't create
flow.receive
... couldn't create
flow.send
... couldn't create
list.split 1
... couldn't create
list.split 1
... couldn't create
list.length
... couldn't create
flow.send
... couldn't create
flow.send
... couldn't create
mix.switch.nice 101
... couldn't create
init.post.dollarg
... couldn't create
flow.receive
... couldn't create
flow.send
... couldn't create
list.split 1
... couldn't create
flow.send
... couldn't create
flow.send
... couldn't create
flow.receive
... couldn't create
flow.@parse
... couldn't create
flow.receive
... couldn't create
init.dollar.zero.top
... couldn't create
flow.receive
... couldn't create
flow.receive
... couldn't create
list.build
... couldn't create
init.make.unique
... couldn't create
flow.receive
... couldn't create
flow.receive
... couldn't create
flow.send
... couldn't create
list.split 1
... couldn't create
list.split 1
... couldn't create
list.length
... couldn't create
flow.send
... couldn't create
flow.send
... couldn't create
error: inlet: expected '' but got 'symbol'
... you might be able to track this down from the Find menu.
error: inlet: expected '' but got 'symbol'
error: inlet: expected '' but got 'symbol'
error: inlet: expected '' but got 'list'
error: inlet: expected '' but got 'symbol'
error: inlet: expected '' but got 'symbol'
error: inlet: expected '' but got 'list'
error: inlet: expected '' but got 'symbol'
error: inlet: expected '' but got 'symbol'
error: inlet: expected '' but got 'symbol'
error: inlet: expected '' but got 'list'
error: inlet: expected '' but got 'symbol'
error: inlet: expected '' but got 'symbol'
error: inlet: expected '' but got 'list'
error: inlet: expected '' but got 'symbol'
error: inlet: expected '' but got 'symbol'
error: inlet: expected '' but got 'symbol'
error: inlet: expected '' but got 'list'
error: inlet: expected '' but got 'symbol'
error: inlet: expected '' but got 'symbol'
error: inlet: expected '' but got 'list'
error: inlet: expected '' but got 'symbol'
error: inlet: expected '' but got 'symbol'
error: inlet: expected '' but got 'symbol'
error: inlet: expected '' but got 'list'
error: inlet: expected '' but got 'symbol'
error: inlet: expected '' but got 'symbol'
error: inlet: expected '' but got 'list'
i'd really love to check out, what you have build there!