Jump to content

McSeem

Established Member
  • Posts

    71
  • Joined

  • Last visited

Everything posted by McSeem

  1. BTW, the hex endless sustain driver is still alive! I'm working on it. This what I played right now with a couple of simple chords and a hex sustain pedal. http://antigrain.com/hexatune/crap/sample01_driver_delays_01.mp3 Don't shoot me please, I'm not a player, it's just a sample of sound with a hex sustain driver and effects.
  2. Well, I couldn't spend a lot of time on it, I was really busy at my primary job. But it's quite rewarding, now we are acquired by Autodesk, and I've got a pretty big bonus. As for the sustain, it's really not that simple, as I expected, it takes time to make it perfect. Robert didn't use it, because he would need some time to handle it. And I have another crazy idea how to drive the strings mechanically with a hexaphonic device on the bridge. The idea is to have a suspension on the bridge for each string, instead of a support. Then I can design drivers that work in a similar way that armature earphones work. Am I totally crazy?
  3. Yeah, the problem is I'm on East Coast, you are in San Diego. But anyways, anybody is very welcome to visit my place and test it.
  4. Hi, I had hard time at my main job, so, I didn't participate here. But still I kept working on my favorite hexaphonic project. A couple of days ago I invited a real guitar player, Robert. I have a micro-studio with 6 cheap Behringer active monitors, one for each string. I also can record a stereo-version of that sound. But in the beginning a player gets very confused, it sounds so unusual. The main thing is no inter-modulation. The sound can be heavily distorted, but still, a big chord remains clean. Next there are some samples with different distortions, octavers, reverbs, and delays. And, yes, the sustain driver is not used here. I can't post more than 2 media files, so, I just put direct links for your convenience. If it's strongly against the rules, feel free to ban me, I won't complain. http://antigrain.com/hexatune/robert/sample08robert_reverb01.mp3 http://antigrain.com/hexatune/robert/sample09_robert_delays01.mp3 - this one I like a lot. http://antigrain.com/hexatune/robert/sample10_robert_delays02.mp3 http://antigrain.com/hexatune/robert/sample11_robert_delays03.mp3 http://antigrain.com/hexatune/robert/sample13_robert_delays04.mp3 http://antigrain.com/hexatune/robert/sample14_robert_delays05.mp3 http://antigrain.com/hexatune/robert/sample16_robert_schoeder_reverb_slow_attack01.mp3 So, please, tell me if it all makes any sense? PS. I see big changes in the web design. It's nice to see that the projectguitar.com is alive and very active.
  5. Absolutely. AFAIU, fuzz is just a matter of a proper transfer characteristic plus filtering. I can simulate any transfer with fancy math or just by interpolating a manually designed chart. For example, this function: double gloubi_boulga_sharper(double input) { double x = input * 0.686306; double a = 1 + exp (sqrt (fabs (x)) * -0.75); return (exp (x) - exp (-x * a)) / (exp (x) + exp (-x)); } It's VERY computationally expensive (takes about 5% of the time I can afford in the process call-back), but it sounds nice, especially combined with a Bezier-based transfer chart. http://antigrain.com/hex_project/sample_transfer01.png http://antigrain.com/hex_project/sample_transfer01.mp3 Well, I realize it's still not "kosher", but I'm in the very-very beginning of my way. Besides, big chords with fuzz sound very differently because there's no intermod. So, with hexaphonic processing (no matter, analog or digital) you won't achieve this authentic dirty grunge sound. It's not bad, it's not good, it's just different.
  6. First, there's no way to use time multiplexing with a mono pickup/sensor; this part has to be polyphonic. Second, there's just straight physics: I tried to use pickup coils as the driver, it didn't work. The coils I use now for hex mag pickup have about 300 ohms DC resistance and produce up to 10 millivolts RMS, which is pretty low. They can theoretically work as drivers, but you need a lot of voltage. The driver coils have about 12 ohms and they are fine with about 0.5-1 volt of the signal. However, if you try to use these coils as sensors, they will barely provide you 10s of microvolts. Much lower than tape recorder pickups, which I remember was always a problem - to amplify it with low noise. So, my opinion is everything must be designed in a reasonable manner. The easiest way is to use a true hexaphonic loopback. If not possible -- at least a hexaphonic sensor with time multiplexing for the mono driver. And, of course, a separate signal pickup.
  7. Just reporting... So far there's no much progress with fancy "totally-in-control" sustain, but my project is not only about the sustainers, it's mostly about hexaphonic in general. Next step will be a fast reliable pitch detection, synchronization and controllable phase shift. It's still a long way to go. However, I'm gradually handling sound processing and having a lot of fun when I have spare time. Recently I have implemented formant filters used for vocoders, and applied them to the guitar sound. The result is interesting. The formant filters take spectral rich signal, such as saw or square and produce more or less realistically sounding vowels, o,i,a,u,e. But applied to the pickup signal it sounds very differently. I also implemented an oscillating filter that interpolates the parameters between different vowels at low frequency. It sounds like a Leslie speaker, which I didn't expect. Well, it actually sounds like 6 Leslie speakers connected to the respective strings. So, this is a sample of pure formant signal: http://antigrain.com/hex_project/sample_os...ant_filters.mp3 But it sounds too fat, so, I decided to mix the result with the undistorted input: http://antigrain.com/hex_project/sample_os...mant_mixed1.mp3 Yes, there's a hex sustain too, I feed the coils with the filtered formant signal. The next is taken from piezo saddles, with NO SUSTAN, but with huge formant input gain and distortion. The bridge saddles are so sensitive that with these parameters you can hear some noise at the end. The noise is produced by my heartbeat. Really! It's not a joke. http://antigrain.com/hex_project/sample_os...mant_mixed2.mp3 Different parameters, with mostly magnetic hex, and with a bit of piezo mix (also no sustain at all): http://antigrain.com/hex_project/sample_os...mant_mixed3.mp3 With a simple slight noise gate and a lot of sustain: http://antigrain.com/hex_project/sample_os...mant_mixed4.mp3 Some single notes with heavier noise gate and also a lot of uncontrolled sustain: http://antigrain.com/hex_project/sample_os...mant_mixed5.mp3 Sorry for non-artistic playing. But note all is processed in REAL TIME, with very low latency, less than 10 milliseconds. So, my point is. After some initial efforts I can easily implement a lot of fancy effects in software and it's going to be all hexaphonic. The effects are so simple to implement and there's a plenty of algorithms, thousands of them.
  8. Hmm, it doesnt look simple either. You probably will use analog switches to connect different filters. Besides, what happens in case there's a signal from two or more strings? Just connect two filters in parallel? In my opinion it's not that hard to build a true hex system. You can order pickup coils from Paul Rubinstein, for example, and use 3 minimal-circuit stereo power amps, such as LM4952, which has a DC gain control. Not sure about namely this one, but I'm sure there's a simple and compact IC solution. No analog switches, just different filters for different channels and a single-pole sustain pot. Well, plus maybe 6 single FET preamps. But anyways, it's nothing compared to that monster circuity Moog guitar. I was truly impressed by that.
  9. I only found this one, it's still in the "experimental" status: http://www.ffado.org/?q=node/862 So far I use Win7. It's OK for experiments, but it's not a real-time system and can't be used for any live performance or even recording. So, in future I'll probably switch to Linux. Hideki, thanks for the info. It looks like they use something like Pulse-width modulation, at least, at the first sight. Anyways, the processing is very complex there and the circuit board looks like a monster. I'm trying to experiment with different software approaches, which is much simpler and takes much less time for prototyping.
  10. It's hard to tell, mostly because of very different spectrums. But I noticed, for best fundamental frequency sustain there must be different phase shift between mag and piezo. So, when I adjust the phase for piezo and then switch to mag, I have to adjust the phase differently. I haven't yet done enough experiments, but the mix definitely affects sustain. I can't estimate it in terms of versatility or balance, but the sustain spectrum definitely differs. In my design hex and piezo channels are mixed in the Graphtech preamps with two 6-pole volume pots. So, in the guitar I have only 6 channels. To experiment with different sustain source and inputs I would have to use 12 channels, which would be a total overkill. I simply don't have so many inputs in my audio interface. The signal goes through the in-interface, software, out-interface, power amps, and back to the sustainer. I already use a 24-pin dual link DVI cable. There only 14 wires that can be used for the audio signal (it has 7 separately shielded pairs). I use 7 for the pickups signal and 6 for the driver (the 7th is the neck HB). So, plus one wire for the preamp power, and I only have 4 wires left for the future on-body controls. 5 pins are used for shielding. BTW, the new interface, Saffire Pro 40 seems to be absolutely stable. It's cheaper, better, and has more ins and outs than this shitty MOTU 8pre. And their preams sound is very good. So, just a note: MOTU 8pre is totally incompatible with PC and Windows (I suspect it's only because of absolutely buggy software drivers). It can simply damage your power amp, speakers and even your ears. Sometimes it produces a huge wild burst of noise: http://antigrain.com/hex_project/motu_noise.mp3 (I recorded it with a USB mic from headphones). Other people also complain about it: http://forum.recordingreview.com/f93/motu-...te-noise-22921/ Although, with the OSX there were no any complains, so MOTU must be fine with Mac DAWs.
  11. So, I added a simple software dynamic range compressor and there's some non-distorted acoustic sound with hex sustain. First is just a plain feedback. http://antigrain.com/hex_project/sample_su...pahse_shift.mp3 The second is with a phase shifting at random speed for different strings. You will hear some digital noise there. It's normal and expectable. It's just because I do the phase shifting without care, that is, without any interpolation between frames. The cure for that is plain simple, it's just not done yet. http://antigrain.com/hex_project/sample_sus_pahse_shift.mp3
  12. Absolutely. I'm in the very beginning, and I said that before: That is, the first step is ONLY reproduce a simplest solution and prepare the ground for further experiments.
  13. I have already provided a "clean" sample: http://antigrain.com/hex_project/sample_sus_linear.mp3 In the auto-excitation mode, with a significant gain it's very unstable and tends to tear off the strings. As I expected.. So, at least a heavy DR compression is a must. So far the distortion plays role of a "dirty compression". al s., yes, it sounds nice when playing chords, but single notes don't sound that nice. To be nice it requires a noise gate, compression, and automatic phase adjustment. As for the progress... I also have to fight with Win7, task and IO priorities, and so on. With the normal, regular settings and with small buffers, it clicks and pops as soon as you move any window. So, Win7 by default is very unfriendly to pro audio streams. I spent some time with the Win7 multimedia API, but made it perfectly, solid-rock stable, even with other tasks running that load all CPUs 100%.
  14. Psw, you will hear it. All in good time :-) The reason is, in my initial experiments I just want to hear what I put to the driver coils. Then. The non-linear voltage tranfer characteristic is the simplest thing that provides some degree of low coil power plus stability at the same time. In my previous experiments, the direct signal, combined with a high-Q resonance system (which guitar strings are) just goes wild. That's OK, just as planned. I have a suspition that in mono systems, there's just a natural power restrictrion - the 9v battery simply cannot provide so much power, and that's why a simple battery-powered sustain is getting stable. Works like a "natural dynamic range compressor". In my case I have no power restrictions, I can easily melt the coils and break the strings. And, BTW, the sound is not completely saturated. It's not like square, it has almost perfectly round peaks. However, the fronts and backs of the waves are almost vertical, which also sounds harsh and saturated. Anyways, I am a "nut scientist", I'm just trying to experiment with different crazy ideas. But I'm not totally nut, if I fail, I'll admit it. Also, there's a big frustration about MOTU 8pre audio interface. It's total crap, I'm totally disappoined with it. I ordered another device, Saffire PRO 40, which is inexpensive and has very good responses. It's time to look at the "traditional quality from England" :-) Well, the best one seems to be "the Germans" RME Fireface 800 (nom-nom-nom), but it's sooo overpriced.
  15. Well, I'm not quite sure what am I shooting for. Basically, so far, just experiments, new sounds, new expressions. Tonight I tried a random phase shift in dynamics. It's not actually random, but just the rotation speed is random for each string. There's nothing very interesting, but now I'm sure with the dynamic phase shifting you can do a lot. Here's an example with a couple of chords, in the self-excitation sustain mode: http://antigrain.com/hex_project/sample_ra...phase_shift.mp3 So, when I achieve some results with the "best phase conditions" by default for each string and each fret, I can add a pedal that shifts the phase. Or, as I mentioned before, you can control it even with dedicated strings. I admit musicions, in particular, are looking for some fancy things that are tricky to handle, like ebow. Well, I'm thinking about it too. Not ebow, of course, but something else - strings plus pedals puls other controls. We will see. Maybe it's all about nothing, but I feel a lot of potentials in this area of engineering. So far it's pretty exciting.
  16. Yes, I'm going to do namely that. And as I said, I expect tricky time and a lot of experiments with heuristics. For high harmonics the phase shift can be close to 180. I understand. "Totally predictable" doesn't mean it's only with fundamental. For example, you can setup the sustain to keep 2nd, 4th and so on harmonics. So that, you pluck the string, after which it "falls into higher harmonics". But it happens for sure. You can also make the odd harmonics sounding, or, control it with a pedal and switches. I like the idea in Moog Guitar to control the harmonics with a pedal. I'm talking about the unpredictability from the musical point of view. You must know in advance what note you will eventually hear. It may be 3rd or even 5th harmonic, but it must be predictable, depending on the settings. Another potential possibility with hexaphonic is to control the harmonics, or something else with certain strings. Say, you assign the low E string as a control, it isn't mixed in the output (or, may be mixed as well). And its signal level can control certain parameters.
  17. I'd say it's bad for mono, namely because of intermod. With 6 separate channels it's OK. Yes, I see what you mean. Basically, it's better in some way, because you can get an absolute minimal total delay in both, analog and digital implementations. The only problem is exact matching between two filters. The first filter may be very complex and fancy, and the all pass filter must match it exactly. In my approach there's automatic matching, for the price of extra delay. Yes, I understand that. In my latest experiments I took the signal from the guitar output (the high E string) and the coil and wrote a simple 2-channel software oscilloscope that uses two extra audio interface ins. I also wrote a manual phase shifter, basically adjustable delay with a slider. So, I figured out that the best conditions to sustain the fundamental is NOT exactly cophasal signal. I suspect it's because of the phase shift in the coil itself (since it has significant inductance). Also, the pickups and the amp circuits add some frequency-dependent phase shift. Initially I thought that the digital delay is a total evil, but it's not that bad. Besides, I tried just a direct feedback with a preamp - there's no much difference from the full system with a digital delay. That is, you cannot predict in advance what harmonic will be sounding -- it depends on many different conditions. Even in Moog Guitar it remains a problem -- I see it in youtube demos. I realize that the task to control the phase-shift depending on the strings and frets is very tricky, but IMO, it's the only way to obtain a full control on harmonics. I'm not sure I can succeed, though. I also got rid of the 60Hz hum -- it was just because of dirty power supply for the coil amps. I replaced it with my old laptop adapter, which produces very clean DC. I plan my next steps to experiment with a compression and/or automatic power control. As you mentioned earlier, any tiny noise initiate the sustain, basically it's self-excitation. To have a full control it's a good idea to have some kid of an expander-compressor, that would work as a smooth noise gate at low level signals and a compressor in the mid-range. Although, I'm not sure what is better to measure the level -- peak or RMS. I'll need to try both. Basically, so far I just collect the knowledge and experience. I hope eventually I can combine it all and come up with something significant.
  18. Yeah, you are right, I've just checked a simplest RC filter. A 330pf capacitor and 10m resistor doesn't have any noticeable effect. I even tried 150, 68, and 10pf. In the last case it works somehow, but I also get a huge signal drop. There definitely must be some high order filter, which too much hassle in my case. But after more careful experiments - it's not that bad, and my assumption was wrong. The crystals do not overload the input. My overload was in software mixing, where I get clipping. This is how it sounds: http://antigrain.com/hex_project/sample_piezo_noise.mp3 - I just damp the open strings with my hand. Don't worry about the white noise, because there're just extreme conditions, with about 45db of extra gain before mixing. So, I'm sure I can filter it out in software, with a steep IIR filter before further processing.
  19. The signal level is rather big with piezo, so, I checked, when I heavily tap the strings, the low freq signal can overload the buffer. I want to filter it out before any buffers. Can you give me some links to JohnH's works?
  20. Graphtech saddle pickups produce great, very detailed sound. However, the major disadvantage is a huge low frequency noise, when you just slightly touch strings. With the standard connection and Graphtech preamps it may even overload the input. So, it would be great to filter it out. The problem is that the piezo crystals have very high Z, about 10 mega ohms or so, basically they require FET based input. What I want to do is a high pass filter at the input. I want to cut off everything lower than 40-60 Hz. When I connect about 1 MOhm resistor in parallel, it significantly damps high frequencies, which works as a low-pass filter and spoils the whole idea of saddle pickups, so, it may be tricky to have a high pass filter. What kind of circuity could it be? Of course, I'll try a simple RC, I just want to hear about your opinions.
  21. Thanks! http://en.wikipedia.org/wiki/Is_There_Anybody_Out_There There's only a smooth distortion with a lot of gain plus a low pass filter. That's it. The filter is a simplest one-pole: class one_pole_lpf { public: one_pole_lpf() { a = 0.9; b = 1.0 - a; z = 0; }; one_pole_lpf(double a_) { a = a_; b = 1.0 - a; z = 0; }; void set(double a_) { if (a != a_) { a = a_; b = 1.0 - a; z = 0; } } double process(double in) { z = (in * b) + (z * a); return z; } private: double a, b, z; }; So, function "process" recursively simulates just the simplest RC low pass filter. You just call it for each sample. But I apply it in both directions. Basically I take one extra frame of 256 samples to allow the filter to stabilize and apply the very same filter in the opposite direction. To simulate it you can take Audacity, which is free and open source and do the following steps. 1. Generate a tone, square of say, 110 Hz and 2 seconds length. 2. Apply a low pass filter with the cut-off frequency of 220 Hz (in the Effects menu). This is exactly how a single pole RC filter works. 3. Then you reverse the resulting signal and apply the very same filter once again. Watch for the shape of the sound, how it changes. It becomes almost a sine wave, at least, perfectly symmetric in time. In the real life you have to reverse the signal once again, but in this experiment it doesn't matter. So, I just do that for each frame. I was also surprised that a very basic single-core laptop can easily handle 6 input and 8 output channels. I didn't make any efforts to optimize my code (I use just memmove to simulate the ring buffer for all 14 channels), still, it works perfectly. And of course, there's about 20 milliseconds delay, which is undesirable but inevitable with DSP. Perhaps I can employ it for effects, but not sure. So far I don't do anything with the phase, but I feel it's the very thing to work on -- automatic phase adjustment depending on the frequency. We will see.
  22. Some new demos with the magnetic hex pickup and double filtering with "time counter-motion". It's not that bad to use the mag pickup with non-shielded driver coils. I thought it must be terrible, however, it works well enough. Of course, I can't feed the coils with a lot of power, as I can do with piezo saddles, but still, it works, and I can produce some fancy reverb using a digital delay and string feedback. In the first demo you hear some unwanted reverb sounds, but I can also use this for the effects. Not sure I can come up with something nice, though, but I'll try. Once again, I'm a shitty guitar player, so, I apologize for that in advance. Also, there's some noticeable hum, I suspect it's because of poor filtering in my power adapters and power amps. Anyways, I'm sure I can get rid of the hum. http://antigrain.com/hex_project/sample_hex_mag01.mp3 http://antigrain.com/hex_project/sample_hex_mag02.mp3 By the way, there's a very nice King Crimson live performance. http://www.youtube.com/watch?v=7y6uL_sEelw So, I'm sure Andrew Belew, and probably, Robert Fripp too, use some string drivers in their guitars. I do want to make this kind of sound. It's so great.
  23. Thanks for your comments! I also want to share my latest discover. I have some preliminary success with my "counter-motion" experiment. In sound processing there are two major types of filters. IIR - infinite impulse response and FIR - finite impulse response. The FIR filters are the best ones. They are absolutely stable, they keep perfect phase-frequency characteristic, but they are computationally expensive. For every sample you have to multiply and sum, say, 1000 samples. Even with modern general purpose processors it's too much. IIR filters are very interesting. They are recursive, computationally cheap, and basically they simulate RLC circuits. But they shift the phase, depending on the frequency. In my graphic project, antigrain geometry, I used IIR not knowing about it. It's recursive Gaussian Blur, which is essentially, a low pass filter. But in Antigrain, I use it in both directions - forward and backward. And I used the very same thing to filter sound. Since I get the signal with frames, I have the right to apply the filter both ways - directly and backward. So, I get a local "time counter-motion". Of course, for the price of extra latency, because the filters take time to stabilize in the backward direction. But it perfectly symmetrize the signal in time domain, and most of all - returns the phase exactly back! So, it looks like two filters connected in series, but in both directions, which is absolutely impossible to do with analog circuits.
  24. Thnaks RM2488, I'm trying to be a fair researcher and report about my fails too, as my favorite scientist, Richard Feynman, said. One of my faults is that: I was sure it's better to mix the signal as late as possible, because, as an example, if you have a mixed record, you can never separate clearly David Gilmour's guitar from Roger Waters's voice. So, similarly, it would be great to mix the strings late as possible. But it's not so for leading solos, because of the random noise from other strings. The pre-mix in the pickup with strong distortion in the amp and its intermod has the very necessary side effect - it naturally suppresses weak signals from other strings. In hexaphonic, with a huge gain you have a lot of noise from other strings. So, I'm also trying to find a good solution for that. I have one in my mind, but not sure if it works. We will see.
  25. This is my experiment with overdrive, simplest software low pass filter (adjusted for each string) and very subtle sustain power. Just two very basic chords: http://antigrain.com/hex_project/sample_2chords_lp.mp3 Still, you clearly hear wrong dominating frequencies. Now (without strong control) it depends on the best "sustain-driving" conditions. As I suspected, with the direct feedback, a single harmonic wins out. And it's not obligatory the fundamental one. If it's 2nd or 4th - it's OK, but 3rd or 5th will excite the wrong note! It's still harmonic, as PSW noticed, but the note itself is wrong, not the one you wanted to play. So, it's very important to have a strong control on the sustain signal. I'm trying to work it out...
×
×
  • Create New...