• Welcome to the DeeperBlue.com Forums, the largest online community dedicated to Freediving, Scuba Diving and Spearfishing. To gain full access to the DeeperBlue.com Forums you must register for a free account. As a registered member you will be able to:

    • Join over 44,280+ fellow diving enthusiasts from around the world on this forum
    • Participate in and browse from over 516,210+ posts.
    • Communicate privately with other divers from around the world.
    • Post your own photos or view from 7,441+ user submitted images.
    • All this and much more...

    You can gain access to all this absolutely free when you register for an account, so sign up today!

Apnea Software

Thread Status: Hello , There was no answer in this thread for more than 60 days.
It can take a long time to get an up-to-date response or contact with relevant users.


New Member
Aug 17, 2004
I am new here.
I have been free-diving for about a month and a half.
I wrote some software in VisualBasic.NET for tracking Apnea and Rest times.
Don't know how useful this would be for people here, but I figured I would post, and if anyone find it useful let me know what I could do to make better.


  • apnea.zip
    5.2 KB · Views: 242
  • Like
Reactions: thud and sammydive
I don't know if it is likely that a person wouldn't notice, but this application spits out a file called Apnea.txt in whatever directory it is run in that contains a sequential list of the times. After a series of breath holds and recoveries, I will edit the text file with a string like this directly above the first line of the series:
200408190532 - Residual Volume Only, Recovery period minimized.
I could use this later for parsing sorting etc.
Thanks for explaination, didn't now about the text file.

I'll try it for a while and let you know
New version

Okay, so here are the changes I made today...

Fixed tab order. You can use the mouse or whatever, but I prefer to use the keyboard.
Pressing enter on start apena will start counter and move focus to stop apnea button.
Pressing enter on stop apnea will stop apnea counter and start recovery counter. Also moves focus to start apnea counter. pressing tab cycles as follows
1) start button
2) stop button
3) close button
4) recovery list
5) apnea list
pressing stop apnea when you are already in recovery mode will reset both counters and move focus to start apnea button like when program opens.
added group box for options, and code to tag date and time at start of session. What kind of options would apneists like to see for tracking the kind of apnea they are performing for any given session. Are there common themes or should these just be arbitrary use assigned choises?


  • apnea.zip
    5.7 KB · Views: 168
  • Like
Reactions: cece and cebaztian
BTW, when doing apnea sessions i generally just put keyboard on floor and press the enter key on the numpad with my big right toe. makes it easier for me to relax. That's why I have written it from that particular perspective.
A few more updates

I went ahead and implemented some more features.
Sessions are now controlled by the program and recorded to the output file.
Let me know if this new interface makes sense.


  • apnea.zip
    6.5 KB · Views: 174
Hey Jason, kudos for the program. I will defenitly use it when I'll start doing dry statics in my room again.
Another suggestion I can think of is also logging the start of contractions. Something in the sort of:
Enter (Start)
Enter (Start of contractions)
Enter (Stop, recovering phase).
In the same simple and efficient manner it was designed so far.
People who don't get contractions can just hit Enter twice for ending the static, or maybe there would be a checkbox to disable contraction tracking.

Anyway, just my suggestion.
Sounds like a great idea. Have to go back to work, but I will implement that this afternoon and post a new version.

Anybody else know much about VB.NET? I would like to add DB support as opposed to simple text file logging, but I do not really understand ADO.NET data access very well. If it would be helpful, I would be glad to open up the source for anyone that wants to participate...
New version

Here is a new version with basic contraction tracking support..
It is optional and controlled through a check box.

Any ideas about what to add next?


  • apnea.zip
    7 KB · Views: 188
Very nice.

A few things that you could possibly fix are...

1) When you Maximize the window it does not take affect on the controls.

2) Also, I kind of think it is a little big. (buttons, etc.)

Even though it is a great program and that is all that matters, I also like to see a good 'interface' to. ;)
My monitor is 17" and runs at 1280x1024...
Back when programming was what I did for a living, a friend and I tried to work out the logic of dynamic repositioning and sizing of controls, but in the end it works up to be a pretty complicated problem...
I will see what I can do...

Other than that, what would the community like to see in apnea software???

I am very new at apnea, and don't really have much perspective on the rituals of the community as a whole. I don't have much perspective on the science of apnea inprovements.

I can do a residual volume dry apnea of 1:00 and a total volume of 3:00. I wouldn't know where to go from here... If there is a process by which a person imrproves, I can expand this program to cover it, and parse apnea data to provide feedback on the appropriate next step...
New version. I made everything more compact, and I added a bit... Still don't have dynamic control resizing or anything.. I 'know how to do stuff like that, but it's a large time investment with little return. I just wrote this because I needed something, I am not trying to commercialize it... Not that I won't eventually fix it, it isn't a priority though. I also made the contractions check box be checked by default. What should the default apnea volume be?


  • apnea.zip
    7.3 KB · Views: 186
Well, everyone need different defaults I think.
Any chance it'll keep the last settings? cam use that apnea.txt file...
Not that important though.
Should I post a poll for most prefferable defaults, or should I export them to a cfg file and let each user set them themselves?
Or both?
DeeperBlue.com - The Worlds Largest Community Dedicated To Freediving, Scuba Diving and Spearfishing


ISSN 1469-865X | Copyright © 1996 - 2024 deeperblue.net limited.

DeeperBlue.com is the World's Largest Community dedicated to Freediving, Scuba Diving, Ocean Advocacy and Diving Travel.

We've been dedicated to bringing you the freshest news, features and discussions from around the underwater world since 1996.