SDK - compiling the delivered sln file Visual Studio
Hi @ all,
we run into big issues while trying to compile the vsbuilt which was located in the the GEM/build directory
we couldn't get the built to run, maybe someone out there had the same problems. Surfing the internet didn't give any results. One more thing to mention, within the readme file i find following:
this is the project-file to build Gem using Microsoft's VisualStudio 7
DEPRECATION WARNING
this MSVC-Project is deprecated and has not been used for a long time.
do not expect it to work out of the box.
these files have been moved here in an attempt to cleanup the project
originally these files have been located in <Gem>/src/ instead of
<Gem>/build/win-vs7, so all the paths in the project-file might be wrong
either fix the project-files or copy them over to the src/ directory
i don't do it, as i don't have a VC7 anymore (it is outdated anyhow)
It would be great if someone could give any information about that.
thank you.
Guard points for tabosc4~
here's a bit of the [tabosc0~} source code, if that help?:
#if 1
while (n--)
{
t_sample frac, a, b, c, d, cminusb;
tf.tf_d = dphase;
dphase += *in++ * conv;
addr = tab + (tf.tf_i[HIOFFSET] & mask);
tf.tf_i[HIOFFSET] = normhipart;
frac = tf.tf_d - UNITBIT32;
a = addr[0].w_float;
b = addr[1].w_float;
c = addr[2].w_float;
d = addr[3].w_float;
cminusb = c-b;
*out++ = b + frac * (
cminusb - 0.1666667f * (1.-frac) * (
(d - a - 3.0f * cminusb) * frac + (d + 2.0f*a - 3.0f*b)
)
);
}
#endif
Generat v0.1 liveperformance 3d synth
not sure whether to put this into patches or pixeles, but since everybody is always so nice to share patches, i feel like pointing to a project i made back in 2004.
it is sort of a live tool for 3d mixing called generat. i am working on it again for the first time since then, since i got a few gigs doing visuals again.
anyhow, the old pack i put together back then, is here:
http://0io.org/projects.htm there's a link to a extensive online manual as well
http://0io.org/media/hybrid/generat/generat_essentials_v01.zip
interface screenshot:
http://0io.org/media/generat/gen00.jpg
maybe someone can make use of it.
have fun
edit: updated broken links.
Call for projects - make art 2009 - what the fork?!
_
_ _ ____ _ _ ||
| | | | ||_ | | || | |
| || | | || | | ||| | |_____
| | || | | | ____ | | | | |
| | | | | | | | | | || | |_
|| || || || || || ||
|| ____ _______ _________
|| || | | | | _
| || | | ||| | | || ||
from | __ | | _ | | |
7 to 13 | | | | | | ||__ ||
DECEMBER 09 || || || |_| ||
MAKE ART 2009 - What The Fork?!
distributed and open practices in FLOSS art
--
CALL FOR PROJECTS
--
make art is an international festival dedicated to the integration of
Free/Libre/Open Source Software (FLOSS) in digital art.
The fourth edition of make art -- What The Fork?! distributed and open
practices in FLOSS art - will take place in Poitiers (FR), from the 7th
to the 13th of December 2009.
make art offers performances, presentations, workshops and an
exhibition, focused on the encounter between digital art and free
software.
We're currently seeking new, innovative FLOSS works and projects: music
and audiovisual performances, presentations, software demos, and
installations.
This year make art focuses on distributed and open practices in FLOSS
art. 'What the fork?!' is about decentralisation. Forking is the new
black. Forking, copying the source code of a project and continuing
work on the copy instead of the original, used to have a bad reputation.
It would split a project and its developer community in pieces, leading
to different, often incompatible, projects. Wasted effort, rivalry and
developer fights were all associated concepts. This is history. Forking
a project with the intention to compete with it is another story, but
the freedom to fork enables quick implementation of features and
customization, bypassing acquiring committer status, bugfix or feature
request protocol, working in a distributed way, together with others but
not necessarily towards one goal, working from one source,
cross-fertilising, inspiring, copying, patching, improving,
experimenting, changing direction, and merging. This practice is boosted
by decentralised software development tools, such as Darcs, Mercurial
and Git. It's not about quick hacks, but about creating room to
experiment, letting go of the one working copy and creating a
multiplicity of ideas.
Deadline : 15th of July 2009.
For more details, please visit http://makeart.goto10.org/call
--
:*
Random numbers, timers, projections
Hey everyone.
You'll have to excuse me 'cause I don't have a clue about PD, but need to use it for one of my current projects.
Basically, I want to project some text from my computer onto a blank canvas. I want to use a pressure sensor to detect when a user is sitting down. Once it knows someone is sitting down, I want the text to change.
From here on, I want the text to change after a given amount of time... say... 30 seconds for now?
When it gets to the last slide of text, I want it to do nothing other than display this line of text, until the user places their hand over an LDR. When the user's hand is placed over the LDR, the light will be reduced to a certain level. Once this level is reached, I want PD to time for 15 seconds, and at the end of the 15 seconds, illuminate any random combination of light bulbs and set off a rumble pack beneath where they have put their hand. If the user removes their hand before the 15 seconds is up, I do not want any of the light bulbs to illuminate, and I do not want the rumble pack to go off.
[When certain bulbs are illuminated, I want certain lines of text to be projected.
Say bulbs 1 and 2 are illuminated, but 3, 4 and 5 are not. I would like text to be projected that says "Bulbs 1 and 2 are illuminated. Bulbs 3, 4 and 5 are not". Or say Bulbs 1, 3 and 5 are illuminated, I want text to be projected that says "Bulbs 1, 3 and 5 are illuminated. Bulbs 2 and 4 are not."]
If the user stands up at any point in time, removing pressure from the pressure sensor, I want the initial line of text to be displayed on screen again, and everything to start over.
Sorry if this sounds very complex, please let me know if you can help out at all.
Edit ::
If it makes it any easier, you could ignore the bit that I've put in the square brackets. Instead of this, I would just like one more screen of text to be projected when any combination of the bulbs are illuminated.
Fatosc~
aying to myself... as soon as I tried to use that oscillator in something like a synth, I realized that it is a real CPU hog. a single instance seems to take ~ 10% of my 1.83GHz dual core T2400
I suspect this has something to do with the 4 pow~ objects. so I banged my head on it for almost a whole weekend and I came up with a totally different approach, more puredata-friendly, which uses a single pow~.
basically, I use 3 phasors (freq, freq*2 and freq*4), get a square ware from the first two, then do some math to coerce them to various -1/0/+1 combinations, then use the results to do some other math on the main phase.
the code in C now would look something like this:
// sq1_zm: square at base freq (0>-1)
// sq1_pz: square at base freq (1>0)
// sq1_pm: square at base freq (1>-1)
// sq2_pz: square at freq*2 (1>0)
// sq2_pm: square at freq*2 (1>-1)
// phase4: phase at freq*4
output = sq1_zm+(sq1_pz-pow((sq2_pz-phase4)*sq2_pm, fatness))*sq1_pm;
pretty nasty stuff (I don't expect you to say "ahhh, yes, it's clear as light" , but it was a very challenging exercise. also very rewarding.
I was able to build a very basic 8-notes polyphonic 2-oscillator synth with it, that does frequency AND fatness modulation. the sound is interesting, but I still need to explore parameters tweaking and stuff.
please find attached the revised fatosc~ patch. feedback is really welcome.
I will post the synth as soon as I've cleared up the wiring mess and built a decent UI for it. (and if there's some interest in it, of which I don't see much... please show hands .
cheers,
Aldo
How to organize hard disk space for older projects compatibility
Thanks you guys for reply.
For sure the advice from Obiwannabe is important because at least for the early period of its life, an abstraction or a self made external can be deeply modified.
But, actually I like to make better and better my abstractions, for example in a dsp or synth by adding some new switch, slider, parameter....
Abstractions may contain obscure errors.
Therefore, sometimes I have to change the library folder, and this increases the performance of new projects. On the contrary the old ones are broken.
If you use relative paths referring to your abstractions/externals, then by make copies of used files in a separated project folder, you fix all the compatibility problems because you don't change more those files unless you want.
Of course you have not to copy the audio files that can be stored in a well defined folder out of the project folder.
When you want upgrade an old project with new abstractions/externals you can copy them from the pd-development-folder and easier fix the compatibility problems.
This method helps you also when you want share a project like this with someone else because it gathers all the dependences.
Think for example of a recording project, a live performance, a course lesson where you have to show something that perfect works...then after some months you have to do the same thing but now your develop-environment is changed.
How to organize hard disk space for older projects compatibility
Good question and ideas Enrico.
I started by realising quickly that abstractions were a potential problem after getting burned early. For the first year I used Pd I never used an abstraction, always sub-patches.
I think this is good advice for beginners, to spend at least 3 or 4 months only using sub-patches. It keeps everything in one file and makes projects easy to manage.
Later I developed discipline to manage projects with abstractions. By prefixing abstractions with a simple 2 or 3 character to show where it belongs. So most of the abstractions in the drum synth folder were called [drm-snare32~] etc.
Later I learned that certain ones were finished, familiar and ready to move into a globally visible folder. At that time I remove the prefix so [drm-snare32~] would become the definitive [snare32~]
and then I did search and replace in most the files.
I know I can never change the abstractions in my library folder so all the permissions might as well be set to read-only.
Aside from that, I follow normal project folder discipline and have a separate folder for every project with all the resources in there. Rarely ever do I refer to objects in another project, always copy them to make a fresh start (and add prefixes to show where they belong).
Still get broken projects from time to time, but they're easier to fix now.
How to organize hard disk space for older projects compatibility
Hello to everybody,
I would discuss with you about some good philosophy for organize PD patches in order to have the most number of projects ready to work in a given time.
I have an intensive work on PD for digital music creation and development. For me is usual spend a lot of time when I re-open an old working project and find it doesn't work now, because in the meanwhile I have optimized some self made abstraction or external.
If you use the same abstractions/externals in more than a patch (I hope;-), often is necessary and useful make them better to improve your current projects, but the old project architectures now are probably out of order... THIS IS A BIG PROBLEM FOR ME.
yesterday I found out a trick, perhaps many of you know it or have a better method.
Is possible to refer to your patches from any part of your hard disk by writing a path on the actual object you create inside PD e.g.:
C:/pd/synth/myabstraction [example of absolute path]
../synth/myabstraction [example of relative path]
So if you want to use the object delay you have in your computer, then make a new object and write on it [C:/pd/dsp/delay] if this is the path.
MY METHOD is this:
I have a folder named "pd" and subfolders named synth, dsp, external etc... I refer from every new project I do.
---> this is my environment for development
Every time I start a new project I save it inside this folder and I refer to the abstraction/externals I use by writing RELATIVE paths on the new objects.
When the project is finishes (ok, works is enough I simply save a pd folder CLONE in another part of my hard disk and I name it with the project name.
In this way I continue to develop the "pd" folder, make new projects, BUT the old ones are well separated and... EVERY TIME WORKING for me.
what do you think about?
Have good pd projects !
Enrico
Wishlist - Homemade MIDI turntable for PD
First of all, let me real "thank you" for all your words! I appreciate.
@obiwannabe said:
> What protocol should be used to communicate with PC??
> MIDI isn't slow?MIDI is not just a protocol, it is an entire communication system from the physical layer right up to the data layer including baud rate and connector specs. MIDI as a protocol could be run much faster over USB2 or ethernet, but a sensible modern extension to MIDI would encapsulate it inside OSC or something like that and send it over a session aware layer. MIDI has had 20 years and now it's probably best to just bypass it and go straight for OSC over ethernet. That would also bypass all those "driver" issues for Windows users too.
Okok, I understand. I will look at OSC
However, I am looking for a cheap and simple way to communicate with Pure Data, without the need to write any special driver for Pure Data and OS.
@obiwannabe said:
> I plain to use Linux!!
An excellent choice if I may say so sir! Perhaps it's time to look at Linux SBCs with built in network and USB. You can get tiny ones that are no bigger than a matchbox and single chip FPGAs that you can write your software into. Check out http://linuxdevices.com/
Eheh - I plain to use Linux on PC, with Pure Data, so the communications protocol should at least work very well on Linux.
About hardware, I am already using a microcontroler(not an FPGA, I have no knowledge for that but I would like) with C programing but with a RTOS, Real Time Operation System, in this case, the FreeRTOS, with a license alike GPL
I must say that for now, this microcontroler with C and with FreeRTOS is more than enough
@obiwannabe said:
> I am having problems in getting an turntable to electrify with this
> electronics hardwareYou will not drive a turntable motor from USB. The current demands will kill the source. You need an external PSU. 12v at about 1 amp is probably plenty.
No, I didn't explained myself well
The problem is to get a cheap turn table!! For cheap and simple project, It will not have any motor... Its more just a circle that we can turn right or left, more quick or not...
@obiwannabe said:
> Should this project be commercial?? I would pay to someone that made for myself
> the turntable in wood, plastic or metal. Where can I find such shop?In your garage. ...demonstrates ingenuity in using the optical sensor, but you need to very clearly define the exact function and software it is designed to work with and why.
... Choose the biggest group like Reaktor users and build it for them.
I want to build especially this project for Pure Data, because Pure Data is Free Software and I think is great, fair and the way I think.
I would like that this project grow with Pure Data community help, for Pure Data people, so, I would like that It be simple and cheap.
The optical sensor was chosen because is really cheap, easy find on local shops and have good detection of movement.
I just talked about commercial project, because It would be simple, more accessible to Pure Data community If anyone could buy already assembled or at least the parts to assembly.
What I have difficult now is to get an kind of turntable in wood, just a simple base in wood with a circle that turns left and right...
Thank you for your wisdow