Sakuga Back to Sakuga
Theme
Sound
Jump to a component

Guide

Sound

What each control and moment sounds like, at the level Sakuga plays it. Turn Sound on at the top of this page, and every component answers as it would in a product.

Sakuga can answer a touch with sound, as it does with motion. Every sound comes from an animator's desk: paper, cels, a pencil, a light table and a sketchbook. None of them is a musical note, so nothing clashes with an episode's score. Sound is off until a product turns it on, with Sakuga.sound.on(), and a person can turn it off again in that product's settings (Sakuga.sound.off()). The choice is kept like the theme (sakuga-sound). Sakuga.sound.isOn() reads it, and Sakuga.sound.volume(0 to 1) sets the overall level.

Sakuga stays silent:

  • while any video or audio on the page is playing with its sound up;
  • for Sheet and TabBar, which stay silent on the web and in the apps;
  • for a change made by code, not by a person: a state that moves more than a second after their last press or key makes no sound;
  • before a person's first press or key on the page, because browsers only start sound after a gesture. A moment before that can't play.

Sound only repeats what the screen already shows, so nothing depends on hearing it.

  • Press

    The pointer goes down, or Enter or Space is pressed, on Button, IconButton, Chip, a linked ListRow, PanelRow, a PropertyList row, a Thumb button, TextLink and the audio play button. A key held down plays it once.

    A cel's edge ticked on the desk

    Length
    73 ms
    Level
    touch · −8 dB
    iOS vibration
    UIImpactFeedbackGenerator(.light)
    Android vibration
    VIRTUAL_KEY
  • On, off

    Switch or Checkbox turns on (mixed to on counts as on) or off, by press, key or drag.

    A light table switch pressed and released

    Length
    85 ms, 60 ms
    Level
    touch · −8 dB
    iOS vibration
    UISelectionFeedbackGenerator
    Android vibration
    TOGGLE_ON, TOGGLE_OFF
  • Choose

    A new choice in SegmentedControl, Pagination (its numbers and its arrows), OptionTiles with one choice, SwatchPicker, VoiceTiles, and the options of Picker and Select, by press, key or drag. Pressing the choice already made is silent.

    A cel slid one step along a peg bar

    Length
    200 ms
    Level
    touch · −8 dB
    iOS vibration
    UISelectionFeedbackGenerator
    Android vibration
    SEGMENT_TICK
  • Open, close

    A Dialog, Popover, Picker or Select menu arrives, or starts to leave.

    A sketchbook cover lifted and laid down

    Length
    127 ms, 267 ms
    Level
    surface · −5 dB
    iOS vibration
    none
    Android vibration
    none
  • Your episode is ready

    Sakuga.sound('ready'): an episode, short or take a person made is ready while they're elsewhere.

    A sheet seated on the peg bar

    Length
    500 ms
    Level
    moment · 0 dB
    iOS vibration
    UINotificationFeedbackGenerator(.success)
    Android vibration
    CONFIRM
  • Something didn't work

    Sakuga.sound('failed'): making, uploading or paying failed, and the page says why.

    One stroke of an eraser

    Length
    500 ms
    Level
    moment · 0 dB
    iOS vibration
    UINotificationFeedbackGenerator(.error)
    Android vibration
    REJECT
  • It's out

    Sakuga.sound('published'): an episode, short or manga issue is published.

    A stack of cels squared

    Length
    500 ms
    Level
    moment · 0 dB
    iOS vibration
    UINotificationFeedbackGenerator(.success)
    Android vibration
    CONFIRM
  • Fragments arrive

    Sakuga.sound('fragments'): a purchase of Fragments is confirmed.

    A light table switched on

    Length
    93 ms
    Level
    moment · 0 dB
    iOS vibration
    UINotificationFeedbackGenerator(.success)
    Android vibration
    CONFIRM
  • Maki answers

    Sakuga.sound('maki'): Maki replies while the person works in another panel.

    A folded note opened

    Length
    456 ms
    Level
    moment · 0 dB
    iOS vibration
    UIImpactFeedbackGenerator(.soft)
    Android vibration
    CONTEXT_CLICK
  • One sound per kind of answer. Every control of a kind sounds the same; a product never picks a sound per screen.
  • Levels. The files share one loudness (mono MP3 at 44.1 kHz, set to −22 dBFS). Each kind's level is a token: sound-touch-level −8 dB, sound-surface-level −5 dB and sound-moment-level 0 dB, so a press reads as touch and a moment as an event.
  • **At most one touch sound per sound-interval.** That's the press itself, motion-instant (100 ms).
  • A press, then the surface. A button that opens a dialog plays its press, then the dialog's open as it arrives; the dialog's Close plays its press, then the close. Choosing in a Select or Picker plays the choice, and the menu closes without a second sound.
  • Moments are the product's to call, and only for the person who made the thing. Nothing plays for someone watching an episode or reading a manga.
  • Native. The iOS and Android apps play these same files at the same levels, and each sound comes with the light vibration in its row, starting together. The sound is the answer; the vibration only gives it a touch. A sound with none in its row plays alone.