# Transcription Use Case

**URL:** <https://discourse.flucoma.org/t/transcription-use-case/1051>\
**Category:** New Ideas\
**Created:** [November 1, 2021, 10:06pm UTC](https://discourse.flucoma.org/t/transcription-use-case/1051 "2021-11-01T22:06:38Z")\
**Posts on this page:** 1\
**Showing post:** 9

<div class="post-metadata">

**Author:** ![heretogo](https://discourse.flucoma.org/letter_avatar_proxy/v4/letter/h/278dde/32.png) [@heretogo](https://discourse.flucoma.org/u/heretogo)\
**Post date:** [November 8, 2021, 12:31pm UTC](https://discourse.flucoma.org/t/transcription-use-case/1051/9 "2021-11-08T12:31:06Z")

</div>

Yes, that’s helpful, especially the `processBlocking`.

I’m trying to modify it in a similar way to [this post](https://discourse.flucoma.org/t/wrapping-synchronous-buffer-operations-in-a-function/1049/2) but I’m having difficulty.

```auto
a = { |b| // parameterize soundFile buffer
  //Set up some variables
  var meanPitches = FluidDataSet.new(s); //we'll keep our data in here while we process
  ...

  var keys; // declare output variable up top
  var cond = Condition.new;
  ...

    keys.do{|startTime|
      //The mean pitch is the 0th stat, grab it and round
      var meanPitch = data[startTime.asString][0].round;
      "%: %".format(startTime,meanPitch).postln;
    }
  };
  cond.hang;
  keys // or keys.yield
};

fork{ ~result = a.value(b) }
~result; // -> a Routine

```

Expected output is an `Array`.

---

_[View the full topic](https://discourse.flucoma.org/t/transcription-use-case/1051)._
