Jump to content

jed

Limited Member
  • Posts

    2,189
  • Joined

  • Last visited

  • Days Won

    66

Everything posted by jed

  1. Here's a fun project I've been working on - still WIP. It's a prototype for a tubular bells instrument. Eventually it will have a proper diatonic 'keyboard', but this first attempt just has 5 tones to mimic London's Big Ben aka the Westminster chimes (often found on granny's favorite clock). The chimes were recorded using Audacity and a freeware virtual piano from ChordPulse. I used Nitro4D's SoundFX to trigger the notes by collision (easier than adding the sound in post !). The striker is Python driven, using a list of notes and durations. The center plunger is dynamic, and on a slider connector with a spring. A hidden cube hits it to make it strike the dynamic tubes, which are on hinges. Might amuse someone.
  2. I'll have to pass on this one - I still don't understand what the problem is. If lag is the problem, this is usually fixed by arranging the order of calculations. This can be adjusted by either changing the priority value for the XP tags - lowest is calculated first, or putting the XP tags on separate nulls in the object manager. The OM is calculated top down, so using method #2 you can visually see the order of calculation (and take into account other objects whose values may be required before an XP calculation can proceed correctly). If you leave the XP tags on the one null, I think they are calculated R > L. I've sometimes had to split an XP tag into 2 windows, so I could better control precedence using the order in the OM.
  3. TBH I don't understand the problem - maybe SolarPH could explain his objective ?
  4. jed

    Xpresso Nodes

    There are also some XPresso presets on LHS of the editor, that often get overlooked. I find the string manipulation nodes (left string etc) useful.
  5. This does a ripple type delay without mograph - I just multiplied the cube index to drive a memory node. ripple.c4d when you rewind to F0 you have to clear the memory node - hold down shift F
  6. TBH I'm not sure what the 'On' port does with objects (or any node) in XPresso. By trial and error, the only thing I've managed to turn on/off using this port is a Python script node. Maybe someone with more XP knowledge could throw some light on this.
  7. Whithers - 'On' seems to do something else, at least on my pc - works better with 'enabled'. switcheroo_2.c4d
  8. I think this does it fractions.c4d
  9. If you make the object rotate by adding a small amount say to B rotation every frame, this can easily be turned on or off (or even speed up/down). spin.c4d
  10. Can also introduce unnecessary zero eg 3 / 2.0 which forces the result to be float. XPresso is very forgiving re mix n match data types - strings, integers, floats will all connect - but Python is a bit more strict. Guess I got into bad habits with XP.
  11. Would help a bit if C4D Python was the latest version. I once spent a couple of hours puzzling why 3 / 2 = 1. Turned out that in v2.7 integer division gives integer result - gives float result in v3.5.
  12. jed

    Why isn't text moving...?

    If the function of the cloners is just hide/reveal columns, you could use visible in editor etc. In this file I used an iteration list to keep the XPresso clutter down. I labelled items for show/hide with a 2 digit suffix and if > number of columns, hide. graph2.c4d
  13. jed

    Why isn't text moving...?

    I wondered about that - I think he's planning on using 'count' to control the number of columns.
  14. I've made a video tutorial for total Python noobs. Shows how to write a custom Python XPresso node to generate random lottery numbers. Outputting random integers in a certain range (1 - 59 for UK lottery) isn't difficult in XPresso, but 6 unique numbers sorted lo > hi would be quite hard - it is, however, fairly easy in Python. I develop and debug the code in Pycharm, then copy and paste the script into C4D to make a simple display that creates a random lottery selection every 10F. Just hit F8 to start and stop when you're feeling lucky. Links in video for Python and Pycharm download, and Digital Readout Upright font for the display. Have fun ! scenefile https://www.dropbox.com/s/40zn2onyb8qt5yl/lottery.zip?dl=0
  15. jed

    Why isn't text moving...?

    By unchecking fix clone, I got the text to follow the cube.
  16. I've never used the sound node with sample, bands etc, but I've had some success with sound effector - splitting music into bands eg here. For that video I had the sound effector filter checked and had one effector per band driving a sample node to give strength (level). The main problem with the sound effector is that it treats the audio spectrum as linear, whereas engineers (and the human ear) hear tones on a logarithmic scale. If you play a succession of C notes on a piano, each octave is a doubling in frequency. Similarly a studio (or hi-fi) graphic equaliser has sliders at 32Hz, 64Hz, 128Hz etc. Music + equalisers are split into octaves because that's how we perceive music. The linear analysis graphic in sound effector is wrong IMHO - most of the music is in the 1st 10% of the display. The help file for the band/sample node mentions splitting the source into equal bands. Also the sound effector band frequencies are way off. I had to calibrate the sound effector using test tones to make the laptop analyser linked above. The freqs were out by approx a factor of 2, and the bands were not 'clean' - a pure sine wave tone would spill over into several bands. The standard clones + sound effector pseudo equaliser thing that you see in tutorials etc is basically rubbish - all the music is crammed into the 1st clone because the effector divides the freqs linear-wise. The clones just somehow move in time to the music. If the sample sound node works in a similar fashion to the sound effector, I'd recommend doing some test-tone calibrations. > my $0.02 edit - freq plot WIP that might amuse you https://www.dropbox.com/s/x8j7o25tfxry2rp/freq.zip?dl=0
  17. If I'm reading you right, you want to clock through the object list making each object visible in turn every frame ? Object index will give the index of each object in hierarchy, then compare this to frame number for visible in editor. visibility2.c4d
  18. One way to speed up/slow down rotation is to generate the rotation by adding a small amount per frame to the rotation angle. Changing this value changes the rotation speed (and does not go backwards). In this file I've rangemapped 720 deg to speed so it drops at 360 deg - there's a spline in RM to tailor the response. Some ideas for you - speed.c4d
  19. This is basically a truth table problem, for which COFFEE or Python is ideal. Anyhow here's an XP version of the circles/box scene. expresso test 3.c4d I think it's right - you got my head going in circles . . .
  20. bezo - I wasn't sure if 'box move' was one of the options, hence my simple solution above.
  21. negate multiplies by -1, you're thinking of a boole NOT
  22. I think this does it expresso test 2.c4d
  23. I'm not sure what's going on in your scene, but you have rangemappers driving enables. Enable is a bool ie 0 or 1, and is best driven by a node that outputs a bool (rangemappers output a real ie decimal). I'd suggest driving the constraint enable with (say) a compare. If A > B enable, if not disable etc. If you hover the mouse over a node input or output it shows the data type ie string, real, vector etc. Although in XPresso you can mix n match data types to some degree eg connect an integer to a string (say for a text readout), things like enable deal in 0 or 1, whereas rangemappers convert one varying range of values to another.
  24. I think grain is correct about the special character - prints ok for me in C4D if text = "HELLO". I use Pycharm for learning Python - community version is free (needs Python installed on pc). Special character is fine on Pycharm. https://www.jetbrains.com/pycharm/
×
×
  • Create New...