Obviously, that was my question, and a very good question it was: how is a music-recorder thread to be related to a music-player thread? What are the two processes doing together, such that they need to sychronize? A recorder certainly is a data-gatherer and a player is a data-consumer, but the two activities don’t particularly sound to me as something that would be synchronized in a producer/consumer relationship. And that is what has merely triggered idle speculation in both of us.
Subprocesses, such as “user-interface controls player and recorder threads,” are in my experience most-commonly handled with signals to the effect that “your status has changed ... you need to do something differently now ... now wake up, or stop what you’re doing, and go find out what it is.” Condition variables, on the other hand, are inherently a synchronization mechanism. Which is why I asked for clarification ... and perhaps also why the OP has now abandoned the question.