Voice (and Video)

Evan Schoenberg, M.D. evan at adium.im
Wed Jan 26 01:25:02 UTC 2011


This received no response on-list for far too long.  I'm sorry for my part in that.  Some other folks who've received emails from me tonight can attest that I really am catching up to November in my poor inbox...

First off: George, you're a rockstar for actually producing your ideas and pushing forward advancement for Adium. Thank you.

I think one thing we need to address is whether we intend for voice/video to be a part of the text chat window or whether it's always an independent thing.  The black HUD appearance George showed here could be really cool as a separate floating window, but I don't know if it would fit in with a standard messaging window (at least as it currently appears).

I think the overall appearance is fresh, sharp, concise.  I like it a lot.
> 
> Volume Controls & Displays: Sliders that control both input and output volumes; the slider grips also act as mute buttons. The current decibel level of the stream is displayed on the sliders themselves; both streams are shown at maximum intensity above in the docked mockup, while the floating window shows the off states.

Could you explain what you mean by the slider grip acting as mute button?

The decibel level within the slider itself is an inspired dual-purposing of the control.  Out of curiosity, have you seen that done somewhere else, or is that a new UI paradigm?

> Floating Window Mode: I had this idea where the bar could be undocked from its parent window to become a standalone, floating window, not unlike QuickTime X. It features the same controls as the docked bar, with the addition of standard close, minimize, and zoom buttons on the left, and a resizing grip on the right. I thought that when the close button here is clicked, it should make the bar reappear in its former parent window; if you think redocking should be handled some other way, don't hesitate to tell me. The Undock button is all the way on the left in the docked toolbar's mockup.


I would expect close to end the call, I think... I'd handle redocking via drag-and-drop, just as we can redock tabs that have been pulled into other windows or new windows.

> 
> P.S. I'm currently working on a couple other ideas (in mockup form) for potential improvements to Adium's UI that I'd really like to show you guys for your consideration in future versions of Adium; if I were to post them, would it be more appropriate to do so here or on the feedback list?

I'd love to see them, and here is definitely the most appropriate place.

Note: We'll try to get a voice/video progress thread going separately.  Here, we're focusing on UI concepts.


Cheers,
Evan


On Nov 8, 2010, at 8:13 PM, George Lambrou wrote:

> I might be able to help with the interface for voice chat; I know it hasn't been asked for, but I've been working on this for a little while, and I thought you guys might be able to find it useful:
> 
> 
> 
> 
> Proposed Feature Breakdown
> HUD: Displays the recipient's display picture (if present), rounding the corners and adding a white inner stroke and engraving shadow to help it stand out. Also displays the recipient's name as well as the status of the chat (Connecting…, Chatting since/for [time], Chat paused, etc.) below it; clicking this should allow the user to see different stats. (this should be displayed in Lucida Grande, but Inkscape doesn't support truetype collection fonts OR dfonts).
> End Call Button
> Pause/Hold & Record Buttons: Pause mutes both sides of the chat, while record saves the chat to file in a location predefined by the user.
> Volume Controls & Displays: Sliders that control both input and output volumes; the slider grips also act as mute buttons. The current decibel level of the stream is displayed on the sliders themselves; both streams are shown at maximum intensity above in the docked mockup, while the floating window shows the off states.
> Floating Window Mode: I had this idea where the bar could be undocked from its parent window to become a standalone, floating window, not unlike QuickTime X. It features the same controls as the docked bar, with the addition of standard close, minimize, and zoom buttons on the left, and a resizing grip on the right. I thought that when the close button here is clicked, it should make the bar reappear in its former parent window; if you think redocking should be handled some other way, don't hesitate to tell me. The Undock button is all the way on the left in the docked toolbar's mockup.
> Resolution Independence: I've built the entire mockup here using vectors, so scaling it up for future displays shouldn't be too big of an issue, provided I can find a decent way to export the images to PDF (Inkscape's implementation is a bit shaky, and the results it produced when I tried it plain weren't good enough).
> 
> This is just an idea I thought I would offer you guys; if you like it, I can post the individual image components here (probably PNG to start, until I get the chance to make some decent PDFs at school using Illustrator) as well as the dimensions of the controls, etc. I have no coding experience yet, so I don't know if what I've proposed can be implemented easily or not, etc., and I can't help much in its development if you guys choose to use it. I don't want to end up dropping a basket baby on your doorstep, though; if there's anything that I might be able to help with, I'd be more than happy to take care of it. I hope this helps!
> 
> George Lambrou
> 
> P.S. I'm currently working on a couple other ideas (in mockup form) for potential improvements to Adium's UI that I'd really like to show you guys for your consideration in future versions of Adium; if I were to post them, would it be more appropriate to do so here or on the feedback list?
> 
> On Nov 1, 10, at 7.13 pm, Jonathan Lyons wrote:
> 
>> I believe I sent Zachary West my RSA pub key. I can just make my own fork on  BitBucket, though, if that's better for you guys.
>> 
>> My next step is build frameworks for LibOgg and Speex, and also to work on the interface some more.
>> 
>> Jonathan Lyons
>> 
>> On Nov 1, 2010, at 6:53 PM, Evan Schoenberg, M.D. wrote:
>> 
>>> We had discussed setting Jonathan up with access to the Adium repository to have a branch there.  I'm not opposed to doing so, but should we consider making better use of bitbucket and just asking him to fork us there?
>>> 
>>> In any case, Jonathan, I'd like to make sure you have the resources and visibility you need to continue working on this.  What's your next step at this point?
>>> 
> 
>>> Cheers,
>>> Evan
>>> 
>>> On Aug 19, 2010, at 1:28 AM, Jonathan Lyons wrote:
>>> 
>>>> Err.....I'm trying to post this to the whole Adium devel list! Sorry for the duplicates!
>>>> 
>>>> Gatlin, Evan, and Robert,
>>>> 
>>>> 1. To Evan & Robert: 
>>>> 
>>>> Yes, I was able to compile the dependencies.
>>>> 
>>>> I'm sorry for the couple of months of being totally MIA. I am a physics student (undergrad) completing work in the summertime, and that's been taking a lot of my time.
>>>> 
>>>> 2. To Gatlin: 
>>>> 
>>>> I haven't contributed my code back into Adium in the form of a plug-in, yet, but I have written a mini-client with a barely-functional voice chat feature using PurpleMedia + gstreamer osxaudio sink/src elements.  It works in the sense that you can initiate a voice chat with another GTalk client. I've tried it with Pidgin  and on the Mac with Google's GChat plug-in which loads when you log into Gmail.
>>>> 
>>>> There are a few issues. To list a few off the top of my head,
>>>> 
>>>> 1)  Negotiating a voice chat takes forever for some reason. It takes about 10 seconds after clicking the "Voice chat..." button for libpurple to spit out the  XMPP stanzas. It eventually happens, but it's quite a wait. Looking at Pidgin's debug window, it doesn't appear to take nearly as long.
>>>> 
>>>> 2) There may or may not be a race condition when the Gstreamer generates synchronous bus messages on one of its many spawned threads, these get passed across threads by way of a CFMessagePort, which fires an async event on the main thread. The fact that I use pthread mutex to lock & pass the actual message may be a huge part of this. It may also be responsible for every other problem I'm listing here.
>>>> 
>>>> 3) I cannot use the  Gstreamer Speex codec, and possibly a couple of other codecs, on my machine. They sound like tin cans, and I'm not sure why.
>>>> 
>>>> 4) There is a lot of latency and blips even on codecs that do work.
>>>> 
>>>> 
>>>> In any case, this code is ready to be made into an Adium plugin - or rather a built-in "component" - which I have also started. On that front, I've gotten about as far as installing the "Voice chat..." item into the contextual menus, which triggers an empty voice chat window.
>>>> 
>>>> I have just put my mini-client code up on GitHub. You might need to hack it a little to get it to work.  It's called VoiceVideoPorts2 (don't ask) - the source is (I think you should be able to access it)
>>>> http://github.com/Aqueous/VoiceVideoPorts2
>>>> 
>>>> it links against the gstreamer, and libpurple binaries in an /opt/local/lib directory created by DarwinPorts.
>>>> 
>>>> The heavylifting goes on on "VVPurpleInitRun.m", "AIMediaSession.m", and "AIVoiceController.m" - it's ugly. Don't stare directly at it. I had absolutely no clue about how libpurple, gstreamer, farsight, or Adium's code  worked when I started working on it.
>>>> 
>>>> As far as a briefing goes, which probably will be best done by me walking you through what I've done, perhaps I can meet you on IRC as my schedule allows. I am going to be a bit busy with schoolwork still. I will come on IRC into #adium-devel anytime I can. I will also try to work on this myself again soon. 
>>>> 
>>>> Again, I apologize for getting sidetracked.
>>>> 
>>>> Jonathan Lyons
>>>> 
>>>> 
>>>> On Tue, Aug 17, 2010 at 9:30 PM, Robert Vehse <robert.vehse at gmx.de> wrote:
>>>> Adding to what Evan said:
>>>> another guy, gatlinjohnson in #adium-devl, expressed interest in working on A/V. Maybe you'd like to work together with him.
>>>> 
>>>> Regards,
>>>> Robbie
>>>> 
>>>> 
>>> 
>> 
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://adium.im/pipermail/devel_adium.im/attachments/20110125/ecb296e5/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Audio Bar (Docked).png
Type: image/png
Size: 11486 bytes
Desc: not available
URL: <http://adium.im/pipermail/devel_adium.im/attachments/20110125/ecb296e5/attachment-0002.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Audio Bar (Floating).png
Type: image/png
Size: 15626 bytes
Desc: not available
URL: <http://adium.im/pipermail/devel_adium.im/attachments/20110125/ecb296e5/attachment-0003.png>


More information about the devel mailing list