The DN-2000F interface library

The library exposes the following functions:

Start-up:

Init(char *ComPort)
Configures the serial port the RC-35B is connected to.

SetPitchChangeCallback(PitchChangeCallback handler)
Register the callback code for when the pitch changes. This gets called for pitch slider changes and pitch bend.

SetTimeModeCallback(TimeModeCallback handler)
Register the callback code when the TIME button is pressed.

SetPlayPauseCallback(PlayPauseCallback handler)
Register the callback code when the PLAY/PAUSE button is pressed.

SetCueCallback(CueCallback handler)
Register the callback code when the CUE button is pressed.

SetSearchCallback(SearchCallback handler)
Register the callback code when the SEARCH << or >> buttons are pressed.

SetScanCallback(SearchCallback handler)
Register the callback code when the SEARCH << or >> buttons are held down for a period.

Operation:

Load(byte Deck, byte DurationMinutes, byte DurationSeconds, byte DurationFrames)
Sends the track duration to the deck.

UpdateTime(byte Deck, byte Minute, byte Second, byte Frame, bool IsCued, bool IsPaused, bool IsPlaying)
Updates the time display on the deck.

Play(byte Deck)
Puts the deck status in play mode.

Pause(byte Deck)
Puts the deck status in pause mode.

UpdateTimeMode(byte Deck, byte Mode)
Changes the time mode (elapsed or remain) for the deck.

Cue(byte Deck, byte Minute, byte Second, byte Frame)
Puts the deck status in to cue mode.

 

The following types are used for the callbacks:

In all cases, Deck refers to the deck number – either 1 or 2.

void PitchChangeCallback(byte Deck, float PitchPercent)
PitchPercent is the new pitch value in percent, e.g. 4.2%.

void TimeModeCallback(byte Deck, byte TimeMode)
TimeMode is the new selected mode either 1 for Elapsed, or 2 for Remain.

void PlayPauseCallback(byte Deck)

void CueCallback(byte Deck)

void SearchCallback(byte Deck, byte Direction, byte Speed)
Direction is either 1 for forward, or 2 for backward. The speed starts off at 1 and increases the longer the SEARCH button is held. If the SEARCH button is held long enough it switches to Scan.

void ScanCallback(byte Deck, byte Direction, byte Speed)
Direction is either 1 for forward, or 2 for backward. The speed starts off at 1 and increases the longer the SEARCH button is held.

 

Typical use:

  1. Assign callbacks for the events.
  2. Call the Init() function passing in the COM port name.
  3. Prepare playback by calling Load() passing in the track duration.
  4. Operate the RC-35B.

 

A full demo using the Un4seen BASS Audio Library can be found on the SourceForge page: https://sourceforge.net/projects/denon-dn-interface

2 comments on “The DN-2000F interface library

  1. Mads Uglehøj 22nd September 2018 7:03 am

    Hi
    I am trying to use your work to make a MIDI device on and Arduino to you know the commands to send the deck? I can read all the output from your guide but i need to set the time etc.
    Bedst regards

    • Pete 6th November 2018 8:26 pm

      Hi there,
      Please refer to the project code on SourceForge. This shows how it sends and receives data to the RC-35B:
      https://sourceforge.net/projects/denon-dn-interface/

      My next step was to implement a MIDI bridge but instead am concentrating on other DN-2xxxF models.

      Good luck with your project!

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>