Author |
Message |
Scott Stites
Janitor


Joined: Dec 23, 2005 Posts: 4127 Location: Mount Hope, KS USA
Audio files: 96
|
Posted: Sun Dec 07, 2008 9:16 am Post subject:
Multi-Touch Proto 2 Subject description: Jaw-Droppingly Cool!!!! |
 |
|
Hope this hasn't been posted elsewhere, but I caught this on MatrixSynth a couple of days ago. This thing (IMO) is sheer frikkin' genius!!
Watch the vid and go to his site and download the PDF of this guy's Masters Thesis - good reading (I know, because I only understand half of it ):
http://matrixsynth.blogspot.com/2008/12/multitouch-prototype-2.html _________________ My Site |
|
Back to top
|
|
 |
neandrewthal

Joined: May 11, 2007 Posts: 672 Location: Canada
|
Posted: Sun Dec 07, 2008 11:54 am Post subject:
|
 |
|
OMG. Did he really just do the old tighten the skin of the drum while you bang on it trick....on a CONTROLLER? That's amazing! _________________ " I went through quite a few trannies til I found one I liked" - Wild Zebra |
|
Back to top
|
|
 |
Scott Stites
Janitor


Joined: Dec 23, 2005 Posts: 4127 Location: Mount Hope, KS USA
Audio files: 96
|
Posted: Sun Dec 07, 2008 12:48 pm Post subject:
|
 |
|
Yeah - that was the part that really got my attention! _________________ My Site |
|
Back to top
|
|
 |
wetterberg
Joined: Jun 27, 2008 Posts: 48 Location: denmark
|
Posted: Mon Dec 08, 2008 6:10 am Post subject:
|
 |
|
neandrewthal wrote: | OMG. Did he really just do the old tighten the skin of the drum while you bang on it trick....on a CONTROLLER? That's amazing! | the Roland HandSonic devices have this too.
But an amazing diy job, nonetheless - it's a shame it basically uses up a full, very expensive audio interface! |
|
Back to top
|
|
 |
slabman
Joined: Sep 01, 2005 Posts: 102 Location: UK
|
Posted: Mon Dec 08, 2008 10:39 am Post subject:
Output interface |
 |
|
It's a brilliant piece of lateral thinking. As I understand it, there are 16 'pickup' outputs. Each output contains a signal made up of any or all of 16 'carrier' sinewaves. The interface pipes the pickup signals to Max MSP which decodes the amplitude envelopes of the carriers and deduces the position and force of the percussive impacts.
This provokes two trains of thought for me:
1. Is the interface and decoding achievable with a DSP chip of some sort?
2. Could the matrix of sensors be physically rearranged (eg a 'marimba' layout)? |
|
Back to top
|
|
 |
wetterberg
Joined: Jun 27, 2008 Posts: 48 Location: denmark
|
Posted: Mon Dec 08, 2008 1:26 pm Post subject:
Re: Output interface |
 |
|
slabman wrote: | This provokes two trains of thought for me:
1. Is the interface and decoding achievable with a DSP chip of some sort? | yes it is - look at products such as the (drool-worthy) Haaken Continuum fingerboard
http://www.cerlsoundgroup.org/Continuum/html/overview/HowItWorks.html
-so it's definitely possible.
slabman wrote: | 2. Could the matrix of sensors be physically rearranged (eg a 'marimba' layout)? | yes, although a 4x4 scanning matrix is more efficient than, say, a 2x8, since that would require 2 more scan rows/columns. |
|
Back to top
|
|
 |
Tasmanian Alkaloid

Joined: Jun 29, 2008 Posts: 116 Location: Isle De Mort
|
Posted: Tue Dec 09, 2008 12:29 am Post subject:
|
 |
|
That's incredible! I'd like something like this for a modular synth. |
|
Back to top
|
|
 |
slabman
Joined: Sep 01, 2005 Posts: 102 Location: UK
|
Posted: Tue Dec 09, 2008 2:23 am Post subject:
Touch operated filter bank? |
 |
|
Not sure if this is of any value whatsoever but I'll float it anyway.
It's a slight diversion from the concept of the prototype. Imagine n carrier strips under one pickup strip. Multi-touch pressure on that pickup strip is going to give you an output signal composed of a mix of the carrier signals at various amplitudes. Choose the carrier frequencies to match the filter frequencies of an n-channel vocoder. Feed the pickup signal into the modulator input of the vocoder. Voila - touch-controlled filter bank.
Maybe... |
|
Back to top
|
|
 |
slabman
Joined: Sep 01, 2005 Posts: 102 Location: UK
|
Posted: Wed Dec 10, 2008 10:25 am Post subject:
More bunkum |
 |
|
I guess you could also use this technique to implement a touch sensitive waveform mixer as seen on the Electronic Sackbut |
|
Back to top
|
|
 |
urbanscallywag

Joined: Nov 30, 2007 Posts: 317 Location: sometimes
|
Posted: Sun Dec 14, 2008 9:42 am Post subject:
|
 |
|
Wow!
I am surprised at the size of the copper strips. I would have imagined that you would need finer granularity for usable results, but apparently not.  |
|
Back to top
|
|
 |
ian-s

Joined: Apr 01, 2004 Posts: 2672 Location: Auckland, New Zealand
Audio files: 42
G2 patch files: 626
|
Posted: Sun Dec 14, 2008 1:37 pm Post subject:
|
 |
|
urbanscallywag wrote: | Wow!
I am surprised at the size of the copper strips. I would have imagined that you would need finer granularity for usable results, but apparently not.  |
The software would probably use relative levels from adjacent strips to give an accurate position. On the down side, the multitouch would probably get confused if two fingers got too close together.
Nice project. |
|
Back to top
|
|
 |
Randy Jones
Joined: Dec 15, 2008 Posts: 12 Location: Seattle
|
Posted: Mon Dec 15, 2008 8:07 pm Post subject:
|
 |
|
Hi there. I'm glad people enjoy my project! If anyone is crazy enough to make one of these, I'd be happy to offer advice and software. I'd be interested to hear if other audio interfaces work OK. One could start with a single-point touch sensor very easily...
I am also looking into refining this into a product and seeing if people will buy some. Encouragement and ideas are welcome.
Quote: |
The software would probably use relative levels from adjacent strips to give an accurate position. On the down side, the multitouch would probably get confused if two fingers got too close together.
|
Exactly. You can see in the demo that I avoid playing two simultaneous notes too near to each other. The interpolated location of one touch is fairly accurate though, as evidenced by the vibrato in the video. Strictly speaking, it is more precise than accurate, because it's very repeatable but my handmade antennas are far from perfectly square. |
|
Back to top
|
|
 |
urbanscallywag

Joined: Nov 30, 2007 Posts: 317 Location: sometimes
|
Posted: Mon Dec 15, 2008 10:29 pm Post subject:
|
 |
|
Nice work Randy.
Would you make more and narrower strips in a future version? Was the number of audio I/O the limiting factor in the original design? |
|
Back to top
|
|
 |
Randy Jones
Joined: Dec 15, 2008 Posts: 12 Location: Seattle
|
Posted: Tue Dec 16, 2008 6:36 pm Post subject:
|
 |
|
Quote: | Would you make more and narrower strips in a future version? Was the number of audio I/O the limiting factor in the original design?
|
Yes and yes. Luckily the RME has a DAC dedicated to its headphone amp, so I can use that for actual sound output! |
|
Back to top
|
|
 |
blue hell
Site Admin

Joined: Apr 03, 2004 Posts: 24446 Location: The Netherlands, Enschede
Audio files: 297
G2 patch files: 320
|
Posted: Tue Dec 16, 2008 7:40 pm Post subject:
|
 |
|
Randy Jones wrote: | Luckily the RME has a DAC dedicated to its headphone amp, so I can use that for actual sound output! |
and , looks good, as in fun! _________________ Jan
also .. could someone please turn down the thermostat a bit.
 |
|
Back to top
|
|
 |
urbanscallywag

Joined: Nov 30, 2007 Posts: 317 Location: sometimes
|
Posted: Tue Dec 16, 2008 9:05 pm Post subject:
|
 |
|
Randy Jones wrote: | Quote: | Would you make more and narrower strips in a future version? Was the number of audio I/O the limiting factor in the original design?
|
Yes and yes. Luckily the RME has a DAC dedicated to its headphone amp, so I can use that for actual sound output! | Saved by the headphone DAC!
Getting (high speed) data into the PC is really easiest with a multi-channel soundcard like you've done. That way the drivers are there for you. Doing custom hardware would make things a lot cheaper (an 8 channel CODEC is less than $20) but then how do you get data into the computer? Or even to CV/MIDI outputs (thinking of multi-touch type problems here)?
Now that I think about it your computer software is much more mind boggling than the hardware!  |
|
Back to top
|
|
 |
skrasms
Joined: Feb 21, 2008 Posts: 121 Location: Portland, OR
|
Posted: Mon Dec 22, 2008 1:58 pm Post subject:
|
 |
|
That's clever, multiplexing in the frequency domain to get 64 pieces of data over 8 transmission lines. Most of the commercial capacitive sensor chips use a single excitation plane (only one frequency) and then put a grid of sensors on top of that. They would take 16 channels to do the same thing.
Have you looked into higher frequencies (though you wouldn't be able to use a regular sound card anymore) and the dissipation factors of different types of rubber or polymers? Are you doing any compensation for environmental factors?
What is the overall system latency?
I'm really curious about this. You could take it much further with a dedicated DSP. _________________ Software and Hardware Design |
|
Back to top
|
|
 |
urbanscallywag

Joined: Nov 30, 2007 Posts: 317 Location: sometimes
|
Posted: Sun Dec 28, 2008 12:14 pm Post subject:
|
 |
|
Hello Randy,
Congratulations on your master's thesis! I just made it all the way through. I really appreciate application oriented thesis work rather than purely academic/theoretical research.
How long would you say it would take to build the sensor box? I am interested in giving a hardware-only version a try. Do you have any ideas on what dielectric might be better than rubber? Would something less dense like foam give a "faster" response time?
I think I may be able to help with the DSP algorithms as well as bring everything into a cheaper self contained unit. Are you actively working on your project at all?
Nicholas |
|
Back to top
|
|
 |
Randy Jones
Joined: Dec 15, 2008 Posts: 12 Location: Seattle
|
Posted: Sun Dec 28, 2008 3:05 pm Post subject:
|
 |
|
Thanks Nicholas.
It's hard for me to answer how long it might take you to make a device. You have read what goes into it. It could really be a one-day project, but making it work well is likely to take longer. I have thought of making a how-to guide that would be more practically oriented than the thesis, with antenna layouts, and step-by-step construction details. On the other hand, I think everyone weird enough to make this thing in something like its present form will want to customize the design, probably a lot, so the general use of such a guide might be small. So I'm here to answer questions in the meantime, and happy to share software.
You want a very resilient material if the dielectric is providing the restoring force for the surface. The problem with less dense foams is that they take a second or so to recover. There would be no problem with using air for the dielectric and using some other kind of spring, though.
I think of the DSP as more or less done, but would be interested to hear what ideas you have. I am working on making a self-contained version of the device to sell. I think that openness about the design and helping people make their own will be an important part of this work. Monome has been inspirational in this regard.
-Randy |
|
Back to top
|
|
 |
urbanscallywag

Joined: Nov 30, 2007 Posts: 317 Location: sometimes
|
Posted: Sun Dec 28, 2008 3:23 pm Post subject:
|
 |
|
OK I should have clarified how long to build the actual device. Making it work (well) is a whole 'nother project.
I think the DSP could be done much more efficiently as well as bandwidth used more effectively (allowing use of cheaper ADC/DAC and processor). I am also interested in using your design without a computer.
For example you are sampling at 44.1 ksps but your lowest frequency of interest is 6 kHz, more than a quarter of the bandwidth isn't used. I also suspect the FFT is not the best way to do what you're trying to do. Individual filters may offer significant computational savings as well as better responsiveness. Your signals have effectively 0 bandwidth which lets you play some neat tricks in filter design.
Like I said I just finished reading your paper today and I found it quite inspiring. I have not studied physical modeling at all so that was an eye opener, and I think your processing of the actual multi-touch data is very nice. I think that some improvements could be made into acquiring and processing the signals to create that data.
I will try and do some simulations on the filters I was thinking of using instead of the FFT and get back to you. Knowing whether that will work will help me decide on what kind of converters to use. |
|
Back to top
|
|
 |
Randy Jones
Joined: Dec 15, 2008 Posts: 12 Location: Seattle
|
Posted: Sun Dec 28, 2008 7:55 pm Post subject:
|
 |
|
Making the antennas is probably the hardest part of the project. It can probably be completed in a day though. I'll add a few details that are not in the thesis:
My antennas are 1/2" 3M copper tape with approx. 1/16" spacing in between. laid down on 3 mil polyethylene film they are removable for experiments, yet do not seem to creep across the surface even after weeks of playing.
I arrange them like
Code: |
XXXXXXXXXXXXXXXX
XAAAAAAAAAAAAAAX
XXXXXXXXXXXXXXXX
XBBBBBBBBBBBBBBX
XXXXXXXXXXXXXXXX
...
|
where A and B are different row carriers, and X is ground. The antenna geometry is a tradeoff between capacitive area, which you want to increase, and leakage between carriers, which you want to decrease.
Copper tape to copper tape joints, using the conductive glue of the tape, are not sufficiently conductive to make reliable connections in this application. To connect two pieces of the tape electrically, make a soldered wire bridge.
The capacitive coupling will dictate a low frequency cutoff for usable carriers. With my dimensions this was about 6kHz.
I don't know what you mean about effectively 0 bandwidth. The gesture signals are sampled at around 1300Hz. Choosing the carrier frequencies to be integer divisors of the FFT size lets the FFT act as a perfect demodulator, in the sense that stopband rejection is complete. This is described in the thesis. I don't think bandpass filters can be either as efficient or as effective. On the other hand there are always more tricks I haven't thought of, so happy exploring-- I await your results with interest. |
|
Back to top
|
|
 |
urbanscallywag

Joined: Nov 30, 2007 Posts: 317 Location: sometimes
|
Posted: Sun Dec 28, 2008 10:05 pm Post subject:
|
 |
|
Thanks for the construction tips. I don't think I'm mechanically fit enough to take this on. I wonder if the flexi-PCB stuff would be durable enough for this project.
Bandwidth is the highest frequency of interest minus the lowest, fH - fL. If you are looking for a single tone, fH - fL = 0, there is no bandwidth. When you have less bandwidth you can lower your sample rate, when you lower your sample rate you save computations and so on.
1/2 of your FFT bins are empty, right? But you're computing them still, so those computations are basically wasted.
I already did some groundwork on the FIR filters I had in mind, I think they meet or exceed the performance of a 32 point FFT per operation. I am not really into computer science but general purpose CPU/DSP aren't particularly great at FFT, right? Broken pipelines wasting clock cycles and such? While a FIR filter lends itself to pipelining very well? So what I'm thinking is for a given number of operations, say 100, an FFT will put a greater load on the CPU than a FIR. Or am I way off? Perhaps the increase in efficiency will mean more when the target is a hardware processor rather than a computer CPU.
I could be wrong about all this, its just my initial impression that an FFT might not be the best way to do this, or certainly not the only. Either way its something interesting for me to think about.
So to test my filters I can generate 8 samples at 16 bit and 44.1 kHz. Each sample will have a random amplitude of a sinusoid at [5 6 7 8 9 10 11 12]/32*44100 Hz. Anything else to note?
Also there are ways to recover that bandwidth between DC and 6 kHz.
I am much too interested in your project over doing my own stuff.  |
|
Back to top
|
|
 |
urbanscallywag

Joined: Nov 30, 2007 Posts: 317 Location: sometimes
|
Posted: Sun Dec 28, 2008 10:18 pm Post subject:
|
 |
|
This link has what I was getting into about the FFT inefficiency:
http://cnx.org/content/m12021/latest/
Quote: | fact: On general-purpose machines, computation is only part of the total run time. Address generation, indexing, data shuffling, and memory access take up much or most of the cycles. |
That's why I'd go FPGA* in a hardware version.
*I am biased.  |
|
Back to top
|
|
 |
Randy Jones
Joined: Dec 15, 2008 Posts: 12 Location: Seattle
|
Posted: Mon Dec 29, 2008 10:00 am Post subject:
|
 |
|
The test signal you want to look at is a sum of eight sine waves of the frequencies you mention. The amplitudes of the sines can vary smoothly, but if you make them random, you have to lowpass filter the randomness. If one carrier varies too fast, its frequency will spread into adjacent bands. So I would probably use another sine as a test signal to start.
This would indeed be a great application for FPGA. |
|
Back to top
|
|
 |
urbanscallywag

Joined: Nov 30, 2007 Posts: 317 Location: sometimes
|
Posted: Mon Dec 29, 2008 11:55 am Post subject:
|
 |
|
OK got it, not random amplitudes per sample. I actually just left each tone at maximum amplitude for my test.
I believe I have a neat solution. I will verify it and write something up tonight or tomorrow.  |
|
Back to top
|
|
 |
|