Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Notification sound while seeking #417

Closed
k1ngf15h3r opened this issue Sep 12, 2011 · 60 comments
Closed

Notification sound while seeking #417

k1ngf15h3r opened this issue Sep 12, 2011 · 60 comments
Assignees
Labels
Feature Request A request for a new feature/function

Comments

@k1ngf15h3r
Copy link

It would be nice to have a notification sound, while seeking a cache and the distance to the cache goes under 50 or 40 meters.
This is also avaiable in garmin devices.

@SammysHP
Copy link
Member

Yes, good idea.

@samueltardieu
Copy link
Member

This sounds like a sensible idea, but how do you envision it? Would a service be launched to monitor the current location in the background, in case another Activity (Maps, Locus, Radar, …) has been launched? Or would it work only with the builtin navigation and builtin compass? Would it trigger for any cache when using live mode?

@rsudev
Copy link
Contributor

rsudev commented Sep 12, 2011

The only real 'Navigation' mode in c:geo, as I see it, is the compass. So it should be a compass view feature (optional) that works even with locked screen.
In all other modes we just fire away some coordinates for others to deal with.

@samueltardieu
Copy link
Member

Is that true even for the internal map mode? I thought we were handling it ourselves, but I haven't checked the code.

@Bananeweizen
Copy link
Member

I'd really like to have the issue reworded and clarified: Do you request to get notified when you approach a certain cache which are currently looking for or if you get that near to any cache which is stored on the device? And if that's for a certain cache, what are the circumstances that you need this for? Driving? I ask mainly because when just walking around, you should always be able to tell that by just looking at the device. So I ask mainly for the problem that you try to solve, not for the possible solution that you already described in the issue.
And the next thing to consider: Would a sound really be the best notification? An alternative might be a vibration.

@rsudev
Copy link
Contributor

rsudev commented Sep 12, 2011

@samueltardieu In a sense this is true even for internal map mode. There is no notion of 'target'. There are several options to get one or more locations (with additional data used to select an icon) into the map activity and show them on an overlay. So in order to have some distance you would have to select one or check all. This would require a communication of the current position to the overlay, something that is doable but does not exist yet.

@k1ngf15h3r
Copy link
Author

I'd thaught that ti realize eben I'n seeking for a Cache. Very helpfull eben doing Powertrails

@SammysHP
Copy link
Member

Garmin gps-devices beeps at a variable distance to a target (dependent of your speed 200-10 m) that is your current "goto". So this is a feature for the compass.

@k1ngf15h3r
Copy link
Author

Correct and this for the compass is exactly what I am looking for to realize. that`s all I and all other powertrailers need when they had to go 160 m from one to another cache =)

@SammysHP
Copy link
Member

SammysHP commented Oct 6, 2011

See #617

@Lineflyer
Copy link
Member

I also asked the developer of "GPS Status - Radar" about this functionality, but got no feedback up to now.
I know some visually handicaped cacher, they would love to have this, because its hard for them to read the compass.

I don't how how easy it is to implement into the c:geo compass, maybe also someone has a connection to the GPS Status developer and can ask him if implementation is possible ?!

@samueltardieu
Copy link
Member

Technically, it should not be hard to implement that functionality into the cgeonavigate activity. The main challenge I see is to design it precisely.

@SammysHP
Copy link
Member

First step would be to add support for screen readers. Don't know how they interact with Android, but I think it would be better if there's a importance-hint for direction and distance.

Another step is to add a beep at a speed-dependent distance.

@Bananeweizen
Copy link
Member

Over the weekend I went caching and tried to envision how this could work reliable. Therefore I had my phone in the jacket and tried to get near a cache, which was about 500 meters away. The insights that I gained are the following:

  • If we implement some "distance signal", it should be possible to have different notification types. I.e. while this issue talks about sound, I imagined vibration feedback to be more useful in areas where it is noisy or where you don't want to gain that much attention. Just try a Google maps navigation on your phone (for walking, not driving the car). You will experience very fast that the vibration feedback (which announces the next crossing) can be noticed much better than the sounds, even if they are at full level.
  • A signal like "The cache is now in a distance of 100 meters or less" (like suggested initially) doesn't really help. If you have only this signal, you definitely need the full compass functionality afterwards because there are no further signals to indicate distance or direction. Therefore to make this really useful, I imagine we should have different signals at (3?) different distances. And even then, the direction still wouldn't be clear.

@Lineflyer
Copy link
Member

A signal like "The cache is now in a distance of 100 meters or less" (like suggested initially) doesn't really help. If you
have only this signal, you definitely need the full compass functionality afterwards because there are no further signals
to indicate distance or direction. Therefore to make this really useful, I imagine we should have different signals at (3?)
different distances. And even then, the direction still wouldn't be clear.

How about having a start with a "beep" and/or vibrate if the distance to cache is getting <= GPS accuracy ?
Both information should be available in the compass, it is only needed to compare them and take action.

I would really be a great usability improvement (e.g. in case of rain or extreme terrain conditions).

@k1ngf15h3r
Copy link
Author

For us would this function nice when we are doing a powertrail and it gives
a signal when getting nearer to the next cache.
Am 03.05.2012 22:32 schrieb "Lars" <
reply@reply.github.com

:

A signal like "The cache is now in a distance of 100 meters or less"
(like suggested initially) doesn't really help. If you
have only this signal, you definitely need the full compass
functionality afterwards because there are no further signals
to indicate distance or direction. Therefore to make this really useful,
I imagine we should have different signals at (3?)
different distances. And even then, the direction still wouldn't be
clear.

How about having a start with a "beep" and/or vibrate if the distance to
cache is getting <= GPS accuracy ?
Both information should be available in the compass, it is only needed to
compare them and take action.

I would really be a great usability improvement (e.g. in case of rain or
extreme terrain conditions).


Reply to this email directly or view it on GitHub:
#417 (comment)

@Bananeweizen
Copy link
Member

I'm meanwhile in favor of generating speach output like "270 meters, 8 o'clock,...". I've implemented that prototypically in a branch already last year...

@SammysHP
Copy link
Member

SammysHP commented May 4, 2012

AFAIK android has an API for TTS and it should be no big problem. An additional beep and/or vibration 10/50/100 m away from the cache should be easy, too (maybe speed-dependent like Garmin devices?).

@k1ngf15h3r
Copy link
Author

yes like garmin. there I'd seen or heard it and that was really nice when
driving with bicycle from one cache to another.

2012/5/4 SammysHP <
reply@reply.github.com

AFAIK android has an API for TTS and it should be no big problem. An
additional beep and/or vibration 10/50/100 m away from the cache should be
easy, too (maybe speed-dependent like Garmin devices?).


Reply to this email directly or view it on GitHub:
#417 (comment)

Mit freundlichen Grüßen,

Benjamin Hagels
Bentheimer Str. 35a
48529 Nordhorn

Tel.: 0 59 21 - 90 88 406
Fax.: 0 59 21 - 90 88 407
Mob.: 0 173 - 68 33 486

@mucek4
Copy link
Member

mucek4 commented May 24, 2012

I am leaning more to TTS in this case. Walking on mountains, driving a bicycle with just one earphone sounds like good idea.

@SammysHP
Copy link
Member

I'll try it.

@ghost ghost assigned SammysHP May 24, 2012
@Bananeweizen
Copy link
Member

Just to quote myself:

I've implemented that prototypically in a branch already last year...

@SammysHP
Copy link
Member

But it's not on github. ;)

SammysHP@5ae0982

@Bananeweizen
Copy link
Member

Good point.

What I could never really get a good idea about (with my prototype): Where and how to use it. TTS could be a separate navigation app (like compass, maps, ...). But it could also be combined with the map or the compass. And all of those would make some sense, depending on the situation or the cacher.

Any thoughts on that?

@SammysHP
Copy link
Member

In my implementation you can enable it via the options menu in the compass activity. Then it will read "123 Meter, 2 Uhr" (not sure if it's "o'clock" in English also for this context) every 5 seconds. This works only with the GPS because we have no listener for the compass in this activity (it is encapsulated in the compass drawable class), also the compass can't be used when you have the phone in your pocket (and searching with earphones, I tested it today, works good, you are really able to find a cache without looking at the phone and an update every 5 seconds was ok).

Anyway we need to clean up and refactor the cgeonavigate activity. It was really difficult to implement easy things.

@Lineflyer
Copy link
Member

SammyHPs implementation sounds nice to try it out.

@Lineflyer
Copy link
Member

Maybe we could give it a try just after next release.

@Lineflyer
Copy link
Member

Thanks to @mucek4 I had the chance to play with the implementation from @SammysHP a little bit.
It is a very nice idea and I have never seen anything like this for geocaching. Very cool feature not only for audio-caching but also as a supportive feature for people who are a some visual deficiencies ( so that it is hard for them to read the display...I know one).

Did not go for a cache with the TTS yet, but just played around.
Here are some thoughts and issues about it:

  1. The info is clear and precise, this is perfect
  2. I like those "clock information" because it is the shortest way to give a direction (vs. "left", "half right",etc.)
  3. Currently the TTS will also continue if you are at "ground zero" (i.e. the distance to coords is less than the reported accuracy). I suggest to stop the normal TTS in this case and replace it by something like "nearby", "in range" or some unique wording for c:geo ("Log it now !") to make this feature more funny ;-)
  4. Currently it seems the 5 sec period is from start-to-start. It should be end-to-start if possible because of different talking-speed in different TTS settings/languages and the different length of the TTS-sequence depending on the spoken distance,etc.
  5. It could be discussed to leave out the decimals if the range is meter. (e.g. 25,4m could be rounded to 25m). A little shorter and perhaps none will need the digits.
  6. Optimization could also be to leave out 0 digits (e.g. 1,30km to 1,3 km)
  7. On my SGS2 (ICS) I have problems controlling the volume. It shows me the right volume bar but it seems to adjust both ringing volume and speaking volume at once which leads to strange effects (phone switching to silent ringing mode while adjusting the volume). Is this a device-problem ?
  8. It happened always (while having the phone static on the desk) that the spoken direction was a lot different to what the compass shows (e.g. compass showing stable 10 o'clock...one out of ten TTS-sequences is saying something like 3 o'clock or other values). It seems the source of both information is different (@SammysHP Is this what you mean with "Its using GPS").
  9. Small thing: "1 Uhr" is read "eins Uhr" at the moment

Regarding the english version I am also not sure if "o'clock" is correct, but I am sure someone here can help with that.

@SammysHP
Copy link
Member

    1. Already on the TODO list since the beginning
    1. That's diffcult. We can check only if the engine is still speaking and can start the timer when it's not.
    1. I'm using the getHumanDistance() method (or what it's called), remember - it's only a quick test. ;)
    1. No, I have the same problems. You can change the volume only when the engine is speaking. But you can set the audio stream to a different output, but I didn't play with it yet.
    1. Correct. We can only get the GPS direction currently. After cleaning up the activity (= 90% rewrite?!) it should be better. But the question is: Can you use the compass with the phone in your pocket? No. Do you need TTS when holding the phone in your hands and in your walking direction? No.
    1. I noticed this, too. Every engine (SVOX Classic, SVOX Pico, Google Engine, IVONA...) pronounces it differently.

@rsudev
Copy link
Contributor

rsudev commented Sep 4, 2013

I am with you that these are two different things. Nevertheless I would like to rather take this to a new issue, because it is hard to see the (very precisely formulated) request as the main topic here.

@CurioCT
Copy link

CurioCT commented Mar 25, 2014

In a perfect world I'd like to see a number of user notification options.

So yes the current target cache is great an audible tone when getting with X meters would be a definite positive feature.

However I would love to be able to set user configurable notifications on a per list basis. So for example it would be great to be able to say anything on list a. I want a notification if I come within 10 miles of it. On list b. I want know if it's within a mile etc etc

That way you never need miss caches that are important to you and you can drive by the one that are less important.

Having said all that great software love it.

@SammysHP
Copy link
Member

Nope, this issue is about a sound while using the compass. We won't add any functionality that notifies you about nearby caches (at least at the moment).

@CurioCT
Copy link

CurioCT commented Mar 25, 2014

Shame that would be great functionaility :)
Never mind still love the app

@Lineflyer
Copy link
Member

This actually has a +1000 from variuos sources.

@Kjerkloe
Copy link

Kjerkloe commented Dec 2, 2017

Is there any progress on this proximity beep feature?

@pstorch
Copy link
Contributor

pstorch commented Dec 2, 2017

It's unassigned, so I guess no one is working on it currently.

@LeXeRLV
Copy link

LeXeRLV commented Apr 4, 2018 via email

@Knocky737
Copy link

Hi!
Yeah, I'm presently planning to discard my Garmin Oregon and change over to a outdoor smartphone for caching ... using c:geo of course. But the feature of an alert sound when approaching a cache is (in my opinion) something really essential!

Especially since one of the most limiting aspects when talking about "Real GPS vs. Smartphone" for caching is the limited battery power. An alert function would help saving energy since you don't need to have the display activated all the time! I really would appreciate to have this function!

Besides of this, it - of course - would be a big issue to get ahead of Garmin when the alert range could be set manually ... not like on Garmin GPSr where it depends on the speed you have when approaching the cache ;-)

@lavolp3
Copy link

lavolp3 commented Sep 14, 2018

Hello all, since my issue has been referenced I would like to give my view of the topic and feature idea:

My feature request:
"Make a notification (vibration + popup) whenever ANY locally saved cache gets in proximity of <x meters.
x can be modified by the user."
Especially on a hiking trip or a bike trip I find it very interesting to have this notification possibility and store away the phone until a notification appears. At home I can save all interesting caches on the following trip.

Now, since it is not cache-specified it cannot be integrated in the compass function as I presume.
However, I'm wondering if there is no possibility to pick up the current coordinates every few seconds (or so) and correlate them with a list of saved coordinates (extracted from saved cahches).
Whenever there's a distance of less than x meters --> notification.
From my rather limited view, that would be it!

@rsudev
Copy link
Contributor

rsudev commented Sep 14, 2018

The point here is, that you need to implement a background service in order to stay active (which is not a big deal as such but complicates a little more) and (which is more relevant, but might not be too much anymore with modern Android phones) you need to keep the GPS (at least partially) active all the time. In the beginning this would have drained almost any phone in a shorter amount of time than useful for this feature. Might be no longer too relevant nowadays (and I have missed that feature also once in a while when doing multis and wanting to grab some other caches along the way).
We'll see what we can achieve.. (volunteers anyone? :) )

@leobut
Copy link
Contributor

leobut commented Sep 14, 2018

Maybe it would be enough to just download the caches around and register them as geofences. We would just get an event as soon as we enter a geofence.

Also it is important to notice that there have been major changes how background services (inlcuding geofences) work in android depending on the API level.

See: https://developer.android.com/about/versions/oreo/background-location-limits

@Lineflyer Lineflyer added this to To do in Beginner topics via automation Sep 18, 2018
@lavolp3
Copy link

lavolp3 commented Sep 19, 2018

(which is more relevant, but might not be too much anymore with modern Android phones) you need to keep the GPS (at least partially) active all the time.

I guess this should not be too much of a concern anymore since the phone tracks your gps automatically itself. So a GPS tracking per se should not drain the battery much but it may be possible that it is more complicated if another app wants to do it.

Sorry if it is a dumb question but can the geofencing api by google be used somehow here? I'm thinking about extracting coordinates of certain caches and storing them in a function using the geofencing api. But tbh I don't know what I'm talking about....

@moving-bits moving-bits moved this from To do to In progress in Beginner topics May 19, 2019
@moving-bits moving-bits self-assigned this May 19, 2019
@moving-bits
Copy link
Member

see PR #7625

@Lineflyer
Copy link
Member

Lineflyer commented Jun 11, 2019

Let me try to summarize my opinion on the several discussions and PRs recently submitted regarding the notification topic:
There are two different approaches for this:

  • TTS output (which is currently already implemented in the compass)
  • A simple notification beep (which is the topic of this issue)

IMHO both approaches have valid use cases, therefore I would like to discuss the best way of implement both of them coexisting in c:geo. In order to see best practice of other apps and tools for notifications I checked the POI alarm in combination with Geocaching4Locus as comparison. Additionally I looked at the video link provided by @SammysHP in #7625 (comment) and I also asked some c:geo users about their opinion.

Based on these experiences and trying to keep a balance between how c:geo works at the moment and the users are used to, I suggest the following:

  1. TTS output:
    We might expand this function to have it not only in the compass activity but also in the map popup, where it can be started for a specific cache/waypoint and is active until manually stopped. This seems to be the approach already realized in add tts navigation to cache and waypoint popups #7670 by @moving-bits. Correct?

  2. Notification beep:
    For this new function I would suggest a very simple approach comparable to Locus and classic GPSr.
    I would prefer a simple toggle in the live map menu, e.g. named "Beep when approaching a cache". Once it is activated, c:geo will issue a single beep when a cache comes closer than a certain distance. This function will then be active as long as the live map is active and should continuously work for all caches shown on the map.
    We could think about offering settings for it (in our settings menu) like

    • Distance for beep (default suggested is 20m, same as on Garmin). Optionally we could think about applying an intelligent algorithm to determine the right distance to issue the beep depending on the speed (e.g. 20m distance is a bit late, when riding fast on a bike).
    • Make setting permanent (user can decide whether the function will be switched on by default when he uses the live map).

@moving-bits
Copy link
Member

@Lineflyer Thanks for this concise summary.

  1. TTS [...] We might expand this function to have it not only in the compass activity but also in the map popup, where it can be started for a specific cache/waypoint and is active until manually stopped. This seems to be the approach already realized in add tts navigation to cache and waypoint popups #7670 by @moving-bits. Correct?

Yes.

  1. Notification beep:

Just for completeness: In the proposed PR #7625 we have a slightly different approach for a notification signal than described above. It can be started for a specific cache or waypoint by just opening the popup window (without further manual step, if globally enabled). There are two configurable distance settings - one for a single beep (eg: 100m), one for double beep (eg: 30m).
The sounds are played when their respective distance is reached, and is repeated every 10 (single beep) or five (double beep) seconds, if still within range.

Lineflyer's version is a more generalized approach compared to PR #7625, as it respects any cache within range instead of only a selected one, and could be combined with part of PR #7625 bringing the benefit of a distance indication by playing different tones.

Both approaches, TTS and proximity beep, can coexist, and can be implemented independently from each other.

@Lineflyer
Copy link
Member

Just for completeness: In the proposed PR #7625 we have a slightly different approach for a notification signal than described above. It can be started for a specific cache or waypoint by just opening the popup window (without further manual step, if globally enabled). There are two configurable distance settings - one for a single beep (eg: 100m), one for double beep (eg: 30m).
The sounds are played when their respective distance is reached, and is repeated every 10 (single beep) or five (double beep) seconds, if still within range.

Lineflyer's version is a more generalized approach compared to PR #7625, as it respects any cache within range instead of only a selected one, and could be combined with part of PR #7625 bringing the benefit of a distance indication by playing different tones.

Thanks for explanation.
In this case how about not mixing the TTS and the beep approach (by making both available for dedicated caches), but limit the beep function to the generalized approach for every cache on the live map and keep the TTS for cache specific guidance. That would be my personal favorite as it keeps TTS like it is utilized at the moment and adds the beep in the same way as on classic GPSr.

Regarding the tone setup and parameters for it: Your approach sounds very good, but for the generic approach I would leave out the repetition but only play once each time the distance is below the respective limit.

What do you think about altering your PR #7625 in this way?

Beginner topics automation moved this from In progress to Done Jun 22, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature Request A request for a new feature/function
Projects
No open projects
Development

No branches or pull requests