Hi fellow Pd users! I am right now in a process of compiling the NT version of ggee, but since I am a complete troll when it comes to compiling anything on win32 platform, I would greatly appreciate if I could get some help from ya! I am using Visual Studio 6, and have registered nmake and all that stuff so that I can use it on the command-line. Once I did that, I had to change makefiles so that they reflect the right path to the libs folder and then had to manually copy files from the ./ggee/include folder into every folder with sources, since for some reason the Windoze could not figure out the path to that include dir (and I did not feel like editing the makefiles once more). With all this being done, I ran the build.bat file in the ggee directory and that compiled some of the dll's but there are still many that report strange errors (i.e. Slider has a reference to a unresolved external symbol hslider_setup). Obviously, there are other errors as well. So my question(s) are as follows:
Am I supposed to use Microsoft's nmake (my assumption is that I am since the makefile reflects that)? What do I need to do in order to fix these errors?
Is there anyone else out there using ggee on NT platform and if so, is there any way I can obtain either detailed install instructions or possibly already compiled dll's?
Is it possible to use only some of the objects from this release or is the whole release inter-depndent (so for instance if I decide to use only objects that have successfully compiled)? If so what do I need to do?
Sorry for such extensive list of questions :-(. I am pretty NT illiterate when it comes to compiling (this is my first attempt at it :-). Any help would be greatly appreciated! Sincerely,
Ivica Bukvic, composer http://meowing.ccm.uc.edu/~ico/ Http://bukvicrh.dyndns.org/ico/ Ico@fuse.net
Dea All,
Is it possible to connect -netsend- to a -netreceive- situated outside a LAN?
How can I use an IP, lets say 198.137.231.1, instead of a local hostname to send TCP/UDP messages?
Many thanks
Ricardo
Hello
Have placed the Pd interface to PostgreSQL up on my site http://soundart.tripod.com (follow Pd link). The file to download is called 'sqlsingle.tar.gz'. There's a bit to do before you can use the sqlsingle external - so please read the README reprinted below before you decide to proceed.
Cheers, Iain
'sqlsingle' allows you to send SQL messages to a PostgreSQL database from Pd and retrieve the results. In order to use the 'sqlsingle' external you will need to install PostgreSQL - available from http://www.postgresql.org. There's a bit of work to do compiling the source, setting up environment variables etc - but the package comes with good documentation. Read the installation guide and do the introductory tutorial before trying 'sqlsingle'. See also 'some tips & notes' below before you decide to use 'sqlsingle'.
As with all applications that connect to a PostgreSQL database, 'sqlsingle' requires the 'postmaster' daemon to be running. 'sqlsingle' may connect to a database on a local host or on a remote machine via TCP/IP (handled by the external).
If no arguments are specified in 'sqlsingle' - messages will be sent to a postmaster via a local UNIX socket and will attempt to connect to the default PostgreSQL 'template1' database. Such a connection may be used to create new database by sending the SQL message: 'CREATE DATABASE databasename'. Before this can be done, you will need to set your username as a PostgreSQL user. This can be done from a PostgreSQL superuser account (not root) generally called 'postgres' which handles database administrative duties including access privileges (all this is covered in the turorial).
Note: all SQL messages sent to the 'sqlsingle' must start with 'sql' and terminate with 'sqlend'. By convention, all PostgreSQL commands (some are non-standard SQL) are written in allcaps. A commer between an 'sqlend' and a 'sql' in a Pd message, will execute a new query or command.
Once you have created a database you can send messages to it with a second 'sqlsingle' object with the argument 'databasename'. See the patch 'sqlsingle.pd' for an example of this.
If you wish to connect with a database on a networked machine - two arguments are needed in 'sqlsingle' in addition to the name of the database. The first is the name of the machine - the second is the port number. To facilitate this, the server machine must run the 'postmaster' with a '-i' flag to enable remote connections. The postmaster command line must also specify the port number ('-p <num>'). See PostgreSQL documentation for details. A startup script is available (in the Linux distribution of PostgreSQL at least) somewhere to enable automated activation of the postmaster (i think this is described in one of the install guides in the distribution tarball?). For security reasons, the postmaster should not be run as root. Rather, it should be run from the 'postgres' account.
Please note - At present I am unable to test the network facility of 'sqlsingle' - but I assume it works(!?)
sqlsingle outputs results of queries as lists. Often there will be more than one instance for a given query (instances are referred to as 'tuples'). eg. the query 'Select * FROM tablename' will return all rows from the specified table in a database. 'sqlsingle' retrieves each row as a seperate message, each preceded by an index starting at zero.
Some tips & notes...
'sqlsingle' is useful in runningle single SQL queries or commands - which can in themselves be quite complex. If multiple queries are executed rapidly however - or if large amounts of new data needs to be inserted into a database in real-time, the system can become bogged down. This in part is due to the fact that each message sent to 'sqlsingle' establishes and closes a new connection to the database. The 'INSERT' command can also be time consuming - as the system re-optimises the database on each insert. To avoid this - it is best to create new externals specialised for the task at hand. Such externals may limit the number of new connections made before 'committi ng' new data to the database. Another useful technique is to first write blocks of data to be inserted to file. This data can then be 'copied' to the database avoiding the time consuming 'INSERT' command (see 'COPY' PostgreSQL command). The entire database can then be re-optimised at some later convenient time (at startup of Pd for example) using the command line program 'vacuumdb' eg. 'vacuumdb --analyze databasename' (this can also be done from Pd using the 'system' external in the motex collection). See also the PostgreSQL specific command (non-standard SQL) 'VACUUM'.
At present 'sqlsingle' handles 6 PostgreSQL data types: PGINT4; PGFLOAT8; PGDOUBLE; PGDATE; PGDATETIME and PGVARCHAR. If a query returns tuples of a different data type, these will be compiled into a list (on output) as Pd 'symbols'. In contrast, PGINT4, PGFLOAT8 and PGDOUBLE are compiled into lists as floats. Like non-specified data types, PGDATE, PGDATETIME and PGVARCHAR are compiled into lists as 'symbols'.
Use the 'psql' command line program to monitor databases - and for manual data updates and manipulations.
The makefile is configured for Linux. To compile type: make pd_linux See example patch sqlsingle.pd.
Iain Mott phone: +61 3 9639 2959 email: iain.mott@bigpond.com http://soundart.tripod.com
Dear pd-list,
sorry for cross-posting issues but I have found no info about how to load pd external objects on windows NT.
I think I tryed somethink like this: D:\pd\bin\pd -noresync -lib D:\pd\gem\Gem -path D:\pd\doc\6.extern
Therefore I moved some externals to that ~\6.* folder. Mark's stuff works fine but external objects like streamin/out~, sfread~ do not.
Any help is welcome. Thanks a million.
Ricardo Climent
I think I tryed somethink like this: D:\pd\bin\pd -noresync -lib D:\pd\gem\Gem -path D:\pd\doc\6.extern
Therefore I moved some externals to that ~\6.* folder. Mark's stuff works fine but external objects like streamin/out~, sfread~ do not. Any help is welcome. Thanks a million.
could you be a bit more precise ? so you did copy "some" externals (like "sfread~.dll" ?) to your d:/pd/doc/6.extern folder, and then tried to create an object like "sfread~" ? what does pd say then ? (maybe try with the "-verbose" flag)
mfg.rew.zea IOhannes
Thanks Johannes, sorry I got some help already and I am still trying to do a few things.
when typing:
pd -lib /pd/extra/fiddle~ to say something, the external works if I just type its name.
If I want to call more than one the by using pd -path /pd/extra/ calls all external libs under the path.
I downloaded patches containing the externals but not its libraries (lib?, dll?)
I rekon that is the problem.
On Mon, 26 Feb 2001 19:13:38 +0100 (CET) Johannes M Zmoelnig zmoelnig@iem.kug.ac.at wrote:
# > # > I think I tryed somethink like this: # > D:\pd\bin\pd -noresync -lib D:\pd\gem\Gem -path D:\pd\doc\6.extern # > # > Therefore I moved some externals to that ~\6.* folder. Mark's stuff # > works fine but external objects like streamin/out~, sfread~ do not. # > Any help is welcome. Thanks a million. # # # could you be a bit more precise ? # so you did copy "some" externals (like "sfread~.dll" ?) to your # d:/pd/doc/6.extern folder, and then tried to create an object like # "sfread~" ? # what does pd say then ? (maybe try with the "-verbose" flag) # # mfg.rew.zea # IOhannes #
Ricardo Climent
when typing:
pd -lib /pd/extra/fiddle~ to say something, the external works if I just type its name.
If I want to call more than one the by using pd -path /pd/extra/ calls all external libs under the path.
I downloaded patches containing the externals but not its libraries (lib?, dll?)
I rekon that is the problem.
yes, seems so pd knows more or less two different types of files that can be loaded (from the default paths and those, provided by the "-path ..." flag)
under linux these are calles "*.pd_linux", under windos they are named "*.dll". these libraries are commonly referred to as "externals"
if you want to make use of an external, of course you must have the compiled (!) library. some of the available externals support windows-precompiled versions, others you have to compile yourself (and of course this is tricky, since most win-users do not own a compiler).
so if you want to use an external (and got the compiled library) you might proceed (for example) as follows: "pd -path d:/pd/extra", and then invoke an object called "fiddle~". pd searches for a file named "fiddle~.dll"/"fiddle~.pd". if it finds a external (fiddle~.dll) it will load this library and look, if it contains an object called "fiddle~". if so (yes), it will create this object. (this sounds more complicated than it actually is)
if you have problems, getting some externals compiled, mail to me
mfg.dfs.lut IOhannes
Ric.
On Mon, 26 Feb 2001 19:13:38 +0100 (CET) Johannes M Zmoelnig zmoelnig@iem.kug.ac.at wrote:
# > # > I think I tryed somethink like this: # > D:\pd\bin\pd -noresync -lib D:\pd\gem\Gem -path D:\pd\doc\6.extern # > # > Therefore I moved some externals to that ~\6.* folder. Mark's stuff # > works fine but external objects like streamin/out~, sfread~ do not. # > Any help is welcome. Thanks a million. # # # could you be a bit more precise ? # so you did copy "some" externals (like "sfread~.dll" ?) to your # d:/pd/doc/6.extern folder, and then tried to create an object like # "sfread~" ? # what does pd say then ? (maybe try with the "-verbose" flag) # # mfg.rew.zea # IOhannes #
Ricardo Climent
On Mon, 26 Feb 2001 19:53:57 +0100 (CET) Johannes M Zmoelnig zmoelnig@iem.kug.ac.at wrote:
# > when typing: # > # > pd -lib /pd/extra/fiddle~ to say something, the external works if I # > just type its name. # > # > If I want to call more than one the by using pd -path /pd/extra/ # > calls all external libs under the path. # > # > I downloaded patches containing the externals but not its libraries # > (lib?, dll?) # > # > I rekon that is the problem. # # yes, seems so # pd knows more or less two different types of files that can be loaded # (from the default paths and those, provided by the "-path ..." flag) # 1. "*.pd"-files, which are abstractions (patches) # 2. dynamic libraries which are loaded at runtime # under linux these are calles "*.pd_linux", under windos they are named # "*.dll". these libraries are commonly referred to as "externals" # # if you want to make use of an external, of course you must have the # compiled (!) library. some of the available externals support # windows-precompiled versions, others you have to compile yourself (and of # course this is tricky, since most win-users do not own a compiler). # # so if you want to use an external (and got the compiled library) you might # proceed (for example) as follows: # "pd -path d:/pd/extra", and then invoke an object called "fiddle~". pd # searches for a file named "fiddle~.dll"/"fiddle~.pd". if it finds a # external (fiddle~.dll) it will load this library and look, if it contains # an object called "fiddle~". if so (yes), it will create this object. # (this sounds more complicated than it actually is) # # if you have problems, getting some externals compiled, mail to me # # mfg.dfs.lut # IOhannes #
Thanks a lot. Now it is more clear to me. I got Visual C++. I remember I used nmake etc to compile some simple externals a few weeks (months?) ago with VC6.0. I might try that if I can find the c files.
ric.
On Fri, 23 Feb 2001, Ivica Bukvic wrote:
Am I supposed to use Microsoft's nmake (my assumption is that I am since the makefile reflects that)? What do I need to do in order to fix these errors?
Some of the externals really don't compile under Windows, ..
Is there anyone else out there using ggee on NT platform and if so, is there any way I can obtain either detailed install instructions or possibly already compiled dll's?
I do it once a while, but not for every release. I think 0.17 has dll's included.
Is it possible to use only some of the objects from this release or is the whole release inter-depndent (so for instance if I decide to use only objects that have successfully compiled)? If so what do I need to do?
You can use single externals by putting the dll's in the same directory where your patches are.
Sorry for such extensive list of questions :-(. I am pretty NT illiterate when it comes to compiling (this is my first attempt at it :-). Any help would be greatly appreciated! Sincerely,
I promise to do a compilation on NT for version 0.20
Guenter