Taking Pictures Silently

This blog post is a translation from the original Japanese post by hima_zinn from his Lazy Game Programmer Diary on the Hatena Blog, a famous blogging service in Japan like Word Press. It was originally published December 13, 2015. But I wanted to translate it since I think the details for quickly using the RICOH THETA API to get rid of the shutter sound is pretty cool and easy to implement.

Also, the functionality has since been added to the main THETA S app. So if you’re looking for a quicker fix, check Settings → Camera shutter volume.


Introduction

I’m a Theta fan that has all three generations of models. From left to right it’s the THETA S, the THETA m15, and the THETA.

I’m going to explain about connecting the RICOH THETA S to a computer and how to take pictures through a browser. The screenshots here are from a windows machine, but it shouldn’t matter at all whether you’re on Windows, Mac or Linux. Since just taking a picture isn’t too challenging, I will show you how to turn off the shutter sound. I’ll show you have to do it, but please do not use it for taking secret photographs. Also, once you’ve silenced the shutter sound, until you reconfigure it back, it’ll continue with no sound. Since the cute little shutter sound appeals to me, I normally have it set to emit its sound.

Connecting a THETA and a PC and Trying HTTP Communications

In Chrome, get to the Web Store. Search for “Advanced REST Client”

and click “+ ADD TO CHROME”

Connect your THETA to your computer using WiFi. If you don’t know how to do this, please look at the Unofficial THETA Developers API Guide for quick, easy instructions.

Start up the Advanced REST Client

Do the following configuration:

  • URL

http://192.168.1.1/osc/commands/execute

  • Choose POST

  • Add the following “payload” code snippet:

    {
    “name”: “camera.startSession”,
    “parameters”: {}
    }

  • And pick application/JSON so that you get the message “Set “Content-Type” header to overwrite this value.”

Click the SEND button. The response will be displayed below, and you’ll see the kind of data you can get back from the camera.

Taking a Picture with the Browser On Your Computer

Since we’ve connected the computer and the THETA, let’s try taking a picture with the browser on your computer.

You configure it this way:

  • URL

http://192.168.1.1/osc/commands/execute

  • Choose POST

It’s necessary to get the sessionID

{
    "name": "camera.takePicture",
    "parameters": {
        "sessionId": "SID_0001"
    }
}
  • And pick application/JSON so that you get the message “Set “Content-Type” header to overwrite this value.”

Click the SEND button. You’ll hear the shutter sound indicating that a picture was taken. The following response will be displayed.

{
    "name": "camera.takePicture"
    "state": "inProgress"
    "id": "1"
    "progress": {
        "completion": 0
    }
}

So there you have it. You can take a picture from the browser on your computer. If you want to confirm that it worked, connect your THETA again to your smartphone, use the THETA app, and you’ll be able to see the picture(s) you’ve just taken.

Finding Out The Default Sound Setting For The Shutter

If you take a look at the THETA S API documentation, you’ll see there’s a _shutterVolume API command, and this is where you can control the sound level of the shutter.

Let’s try and find out the default level first. This way we’ll be able to return to the original setting afterwards, in case we want to. If you’re sure you just want to kill the shutter sound, you can skip this part.

Configure it as follows:

  • URL

http://192.168.1.1/osc/commands/execute

  • Choose POST

It’s necessary to get the sessionID

{
    "name": "camera.getOptions",
    "parameters": {
        "sessionId": "SID_0001",
        "optionNames": [
            "_shutterVolume"
        ]
    }
}
  • And pick application/JSON so that you get the message “Set “Content-Type” header to overwrite this value.”

Click the SEND button. You’ll see the following info displayed. You’ll be able to tell that the shutter volume is set to 100.

{
    "name": "camera.getOptions"
    "state": "done"
    "results": {
        "options": {
            "_shutterVolume": 100
        }
    }
}

Changing the Shutter Volume to 0, Taking Pictures Silently

Ok, let’s make a silent THETA S!

Configure like this:

  • URL

http://192.168.1.1/osc/commands/execute

  • Choose POST

This is where we set the shutter volume to 0. The sessionID is important.

{
    "name":"camera.setOptions",
    "parameters": {
        "sessionId":"SID_0001",
        "options": {
            "_shutterVolume":0
        }
    }
}
  • And, like always, pick application/JSON so that you get the message “Set “Content-Type” header to overwrite this value.”

Click the SEND button. With this, you’ll know that you’ve properly finished the session.

{
    "name": "camera.setOptions"
    "state": "done"
}

Done! If you got this far, you were able to set the shutter volume to zero and take a picture using the browser on your computer.

Ending the Session

Let’s end the session that we’ve been using properly.

Configure like this:

  • URL

http://192.168.1.1/osc/commands/execute

  • Choose POST

  • Payload

Grab the sessionID that you got by first calling the THETA:

{
    "name": "camera.closeSession",
    "parameters": {
        "sessionId": "SID_0001"
    }
}
  • And, yes, pick application/JSON so that you get the message “Set “Content-Type” header to overwrite this value.”

Click the SEND button. And you’ll get the following response:

{
    "name": "camera.closeSession"
    "state": "done"
}

You’re all done setting the THETA to take pictures silently!

PS

I mentioned this at the beginning of the post, but if you want to reset the volume to the original sound, simply follow the steps in the “Changing the Shutter Volume to 0, Taking Pictures Silently” section, but set it to 100.

{
    "name":"camera.setOptions",
    "parameters": {
        "sessionId":"SID_0001",
        "options": {
            "_shutterVolume":100
        }
    }
}

Maybe modify article to include other options that the default app does not have?

Ideas:

  • THETA app set the volume intensity by small increments
  • Timeout and sleep values in greater detail
1 Like