Summary
Professional CD recorder with RS-232C serial control interface. Commands are ASCII-based, framed by LF/CR. Supports transport control, playback mode selection, track search, text/title writing, pitch/key control, digital volume, and comprehensive status sensing. Machine ID fixed at 0. Authentication requirements are UNRESOLVED.
Transport
protocols:
- serial
serial:
baud_rate: UNRESOLVED # selectable on device: 4800/9600/19200/38400; default not stated
data_bits: 8
parity: none # also supports odd/even - set on device
stop_bits: 1 # also supports 2 - set on device
flow_control: UNRESOLVED # source describes 3-wire, half-duplex and RTS/CTS loopback; flow-control setting is not specified
auth:
type: UNRESOLVED # authentication requirements are not stated in source
Traits
- powerable
- routable
- queryable
- levelable
Actions
- id: stop
label: Stop
kind: action
params: []
- id: play
label: Play
kind: action
params: []
- id: record
label: Record
kind: action
params:
- name: mode
type: integer
description: |
01 = Record Ready
02 = Track Mark
03 = Input Monitor
- id: ready
label: Ready
kind: action
params:
- name: mode
type: integer
description: "01 = Ready On"
- id: shuttle
label: Shuttle
kind: action
params:
- name: direction
type: integer
description: "00 = Forward, 01 = Reverse"
- id: tray
label: Tray Open/Close
kind: action
params: []
- id: track_index_skip
label: Track/Index Skip
kind: action
params:
- name: type
type: integer
description: "00 = Next Track, 01 = Previous Track, 10 = Next Index, 11 = Previous Index"
- id: call
label: Call
kind: action
params: []
- id: auto_cue_level_preset
label: Auto Cue Level Preset
kind: action
params:
- name: level
type: integer
description: "0=-24dB, 1=-30dB, 2=-36dB, 3=-42dB, 4=-48dB, 5=-54dB, 6=-60dB, 7=-66dB, 8=-72dB, FF=Sense"
- id: auto_track_level_preset
label: Auto Track Level Preset
kind: action
params:
- name: level
type: integer
description: "0=-24dB, 1=-30dB, 2=-36dB, 3=-42dB, 4=-48dB, 5=-54dB, 6=-60dB, 7=-66dB, 8=-72dB, FF=Sense"
- id: direct_track_search_preset
label: Direct Track Search Preset
kind: action
params:
- name: track
type: integer
description: "4-byte BCD track number (max 99 audio, 999 MP3)"
- id: pitch_data_preset
label: Pitch Data Preset
kind: action
params:
- name: pitch
type: integer
description: "4-byte: N1=tens, N2=ones, N3=decimal, 0=positive 1=negative. Range ±16.0%. FF=Sense"
- id: auto_track_time_preset
label: Auto Track Time Preset
kind: action
params:
- name: minutes
type: integer
description: "N1= tens digit, N2= ones digit. Range 1-10 min. FF=Sense"
- id: sync_rec_level_preset
label: Sync Rec Level Preset
kind: action
params:
- name: level
type: integer
description: "0=-24dB, 1=-30dB, 2=-36dB, 3=-42dB, 4=-48dB, 5=-54dB, 6=-60dB, 7=-66dB, 8=-72dB, FF=Sense"
- id: text_preset
label: Text Preset
kind: action
params:
- name: target
type: integer
description: "4-byte BCD: 0000=disc title, 0001-0099=track title"
- name: title
type: string
description: "Up to 80 single-byte alphanumeric characters"
- id: time_search_preset
label: Time Search Preset
kind: action
params:
- name: track
type: integer
description: "Data 1-4: track number BCD"
- name: time
type: integer
description: "Data 5-12: minutes/seconds BCD, Data 11-12 must be 0"
- id: key_control_data_preset
label: Key Control Data Preset
kind: action
params:
- name: direction
type: integer
description: "0=Key Up, 1=Key Down"
- name: semitones
type: integer
description: "Data 2: semitone change, range 0-6"
- id: fade_in_out_time_preset
label: Fade In/Out Time Preset
kind: action
params:
- name: target
type: integer
description: "00=IN time, 01=OUT time"
- name: seconds
type: integer
description: "N1=tens digit, N2=ones digit. Range 1-30 seconds"
- id: digital_volume_data_preset
label: Digital Volume Data Preset
kind: action
params:
- name: volume
type: integer
description: "4-byte: N1=tens, N2=ones, N3=decimal, 0=positive 1=negative. Range -54dB to +18dB. AAAA=-∞dB. FF=Sense"
- id: auto_cue_select
label: Auto Cue Select
kind: action
params:
- name: enabled
type: integer
description: "00=Off, 01=On. FF=Sense"
- id: auto_track_select
label: Auto Track Select
kind: action
params:
- name: mode
type: integer
description: "00=Off, 01=On(Level), 02=On(Digital Direct), 03=On(Time). FF=Sense"
- id: eom_track_time_preset
label: EOM Track Time Preset
kind: action
params:
- name: seconds
type: integer
description: "00=Off, N1N2=1-99 seconds. FF=Sense"
- id: eom_disc_time_preset
label: EOM Disc Time Preset
kind: action
params:
- name: seconds
type: integer
description: "00=Off, N1N2=1-99 seconds. FF=Sense"
- id: pitch_control_select
label: Pitch Control Select
kind: action
params:
- name: enabled
type: integer
description: "00=Off, 01=On. FF=Sense"
- id: auto_ready_select
label: Auto Ready Select
kind: action
params:
- name: enabled
type: integer
description: "00=Off, 01=On. FF=Sense"
- id: repeat_select
label: Repeat Select
kind: action
params:
- name: enabled
type: integer
description: "00=Off, 01=On. FF=Sense"
- id: sync_rec_select
label: Sync Rec Select
kind: action
params:
- name: enabled
type: integer
description: "00=Off, 01=On. FF=Sense"
- id: incr_play_select
label: Incremental Play Select
kind: action
params:
- name: enabled
type: integer
description: "00=Off, 01=On. FF=Sense"
- id: key_control_select
label: Key Control Select
kind: action
params:
- name: enabled
type: integer
description: "00=Off, 01=On. FF=Sense"
- id: remote_local_select
label: Remote/Local Select
kind: action
params:
- name: mode
type: integer
description: "00=Remote (panel disabled), 01=Local (panel enabled). FF=Sense"
Feedbacks
- id: information_return
label: Information Return
query_command: "INFORMATION REQUEST"
type: object
fields:
- name: version
type: string
description: "Data 1-4: software version BCD (e.g. 0100 = v1.00)"
- id: auto_cue_level_return
label: Auto Cue Level Return
query_command: "AUTO CUE LEVEL PRESET"
type: enum
values:
- "-24dB"
- "-30dB"
- "-36dB"
- "-42dB"
- "-48dB"
- "-54dB"
- "-60dB"
- "-66dB"
- "-72dB"
- id: auto_track_level_return
label: Auto Track Level Return
query_command: "AUTO TRACK LEVEL PRESET"
type: enum
values:
- "-24dB"
- "-30dB"
- "-36dB"
- "-42dB"
- "-48dB"
- "-54dB"
- "-60dB"
- "-66dB"
- "-72dB"
- id: pitch_data_return
label: Pitch Data Return
query_command: "PITCH CONTROL DATA PRESET"
type: object
fields:
- name: pitch
type: string
description: "N1=tens, N2=ones, N3=decimal, 0=positive 1=negative"
- id: auto_track_time_return
label: Auto Track Time Return
query_command: "AUTO TRACK TIME PRESET"
type: object
fields:
- name: minutes
type: integer
description: "N1=tens digit, N2=ones digit"
- id: sync_rec_level_return
label: Sync Rec Level Return
query_command: "SYNC REC LEVEL PRESET"
type: enum
values:
- "-24dB"
- "-30dB"
- "-36dB"
- "-42dB"
- "-48dB"
- "-54dB"
- "-60dB"
- "-66dB"
- "-72dB"
- id: text_preset_acknowledge
label: Text Preset Acknowledge
type: null
description: "Returned when title is successfully written"
- id: key_control_data_return
label: Key Control Data Return
query_command: "KEY CONTROL DATA PRESET"
type: object
fields:
- name: direction
type: integer
description: "0=Key Up, 1=Key Down"
- name: semitones
type: integer
description: "0-6"
- id: fade_in_out_time_return
label: Fade In/Out Time Return
query_command: "FADE IN/OUT TIME PRESET"
type: object
fields:
- name: in_time
type: integer
description: "N1=tens, N2=ones"
- name: out_time
type: integer
description: "N3=tens, N4=ones"
- id: digital_volume_data_return
label: Digital Volume Data Return
query_command: "DIGITAL VOLUME DATA PRESET"
type: object
fields:
- name: volume
type: string
description: "N1=tens, N2=ones, N3=decimal, 0=positive 1=negative. AAAA=-∞dB"
- id: auto_cue_select_return
label: Auto Cue Select Return
query_command: "AUTO CUE SELECT"
type: enum
values:
- Auto Cue Off
- Auto Cue On
- id: auto_track_select_return
label: Auto Track Select Return
query_command: "AUTO TRACK SELECT"
type: enum
values:
- Auto Track Off
- Auto Track On (Level)
- Auto Track On (Digital Direct)
- Auto Track On (Time)
- id: eom_track_time_return
label: EOM Track Time Return
query_command: "EOM TRACK TIME PRESET"
type: object
fields:
- name: seconds
type: integer
description: "00=Off, N1N2=seconds"
- id: eom_disc_time_return
label: EOM Disc Time Return
query_command: "EOM DISC TIME PRESET"
type: object
fields:
- name: seconds
type: integer
description: "00=Off, N1N2=seconds"
- id: pitch_control_select_return
label: Pitch Control Select Return
query_command: "PITCH CONTROL SELECT"
type: enum
values:
- Pitch Control Off
- Pitch Control On
- id: auto_ready_select_return
label: Auto Ready Select Return
query_command: "AUTO READY SELECT"
type: enum
values:
- Auto Ready Off
- Auto Ready On
- id: repeat_select_return
label: Repeat Select Return
query_command: "REPEAT SELECT"
type: enum
values:
- Repeat Off
- Repeat On
- id: sync_rec_select_return
label: Sync Rec Select Return
query_command: "SYNC REC SELECT"
type: enum
values:
- Sync Rec Off
- Sync Rec On
- id: incr_play_select_return
label: Incremental Play Select Return
query_command: "INCR PLAY SELECT"
type: enum
values:
- INCR Play Off
- INCR Play On
- id: key_control_select_return
label: Key Control Select Return
query_command: "KEY CONTROL SELECT"
type: enum
values:
- Key Control Off
- Key Control On
- id: remote_local_select_return
label: Remote/Local Select Return
query_command: "REMOTE/LOCAL SELECT"
type: enum
values:
- Remote
- Local
- id: play_mode_return
label: Play Mode Return
query_command: "PLAY MODE SENSE"
type: enum
values:
- Continue
- Single
- Program (Data Empty)
- Program
- Random
- id: mecha_status_return
label: Mecha Status Return
query_command: "MECHA STATUS SENSE"
type: enum
values:
- No Disc
- Tray (opening/closing)
- Open
- Stop
- Play
- Ready On
- Monitor
- Record
- Record Ready
- TOC Writing
- id: isrc_return
label: ISRC Return
query_command: "ISRC SENSE"
type: string
description: "12-byte ISRC code, or all zeros if not stored"
- id: track_no_return
label: Track No. Return
query_command: "TRACK No. SENSE"
type: object
fields:
- name: eom_status
type: integer
description: "00=not shown, 01=EOM displayed"
- name: number
type: integer
description: "0000=stopped not cued, 0001-0999=track, 1001-1099=group (1000 added)"
- id: disc_status_return
label: Disc Status Return
query_command: "DISC STATUS SENSE"
type: object
fields:
- name: present
type: integer
description: "00=not present, 01=present"
- name: type
type: integer
description: "00=CD-DA, 01=CD-R Audio, 02=CD-RW Audio, 10=CD-Data MP3, 11=CD-R Data, 12=CD-RW Data"
- id: current_track_information_return
label: Current Track Information Return
query_command: "CURRENT TRACK INFORMATION SENSE"
type: object
fields:
- name: track
type: integer
description: "4-byte BCD track number"
- name: minutes
type: integer
description: "Data 5-8: track time minutes BCD"
- name: seconds
type: integer
description: "Data 9-10: track time seconds BCD"
- id: current_track_time_return
label: Current Track Time Return
query_command: "CURRENT TRACK TIME SENSE"
type: object
fields:
- name: mode
type: integer
description: "00=Track elapsed, 01=Track remaining, 02=Disc elapsed, 03=Disc remaining"
- name: minutes
type: integer
description: "Data 3-6: minutes BCD"
- name: seconds
type: integer
description: "Data 7-8: seconds BCD"
- id: text_return
label: Text Return
query_command: "TEXT SENSE"
type: string
description: "0-80 single-byte alphanumeric characters"
- id: total_track_no_time_return
label: Total Track No./Total Time Return
query_command: "TOTAL TRACK No./TOTAL TIME SENSE"
type: object
fields:
- name: total_tracks
type: integer
description: "Data 1-4: BCD. 0000=blank disc or no disc"
- name: minutes
type: integer
description: "Data 5-8: total minutes BCD"
- name: seconds
type: integer
description: "Data 9-10: total seconds BCD"
- id: pgm_total_track_no_time_return
label: PGM Total Track No./Total Time Return
query_command: "PGM TOTAL TRACK No./TOTAL TIME SENSE"
type: object
fields:
- name: total_tracks
type: integer
description: "Data 1-4: BCD. 0000=no program created"
- name: minutes
type: integer
description: "Data 5-8: total minutes BCD"
- name: seconds
type: integer
description: "Data 9-10: total seconds BCD"
- id: keyboard_type_return
label: Keyboard Type Return
query_command: "KEYBOARD TYPE SENSE"
type: enum
values:
- Japanese Keyboard
- US Keyboard
- id: error_sense_request
label: Error Sense Request
type: event
description: "Unsolicited; transmitted when device enters error condition"
- id: caution_sense_request
label: Caution Sense Request
type: event
description: "Unsolicited; transmitted when device enters caution condition"
- id: illegal_status
label: Illegal Status
type: event
description: "Returned when invalid command or data received"
- id: power_on_status
label: Power On Status
type: event
description: "Unsolicited; transmitted when device powers on"
- id: changed_status
label: Changed Status
type: event
description: "Unsolicited; transmitted when device state changes"
fields:
- name: type
type: integer
description: "00=Mechanical status changed, 03=Track/EOM status changed"
- id: error_sense_return
label: Error Sense Return
query_command: "ERROR SENSE"
type: object
fields:
- name: code
type: string
description: "Format N1-N2N3. Codes: 1-01=Rec Error, 1-02=Drive Error, 1-12=Disc Error, 1-1F=Format Error"
- id: caution_sense_return
label: Caution Sense Return
query_command: "CAUTION SENSE"
type: object
fields:
- name: code
type: string
description: "Format N1-N2N3. Codes: 1-04=Sure? Text, 1-05=Tray Error, 1-06=Disc Full, 1-07=Track Full, 1-09=D-In Unlock, 1-0B=Can't REC, 1-0F=Can't Edit, 1-13=Can't Select, 1-15=Not Fs44.1k, 1-16=Text Full, 1-19=PGM Full, 1-1A=PGM Empty, 1-1B=Ext CLK Err, 1-1D=Not Audio, 1-1E=Decode Error"
Variables
# UNRESOLVED: no standalone Variables section in source - all settable params are Actions
Events
# UNRESOLVED: populated from unsolicited status commands above
Macros
# UNRESOLVED: no macro sequences described in source
Safety
confirmation_required_for: []
interlocks: []
# UNRESOLVED: no safety warnings or interlock procedures in source
Notes
Command timing: minimum 20ms interval between commands.
ACK policy: device does NOT send ACK for transport or preset commands. Device sends return only for sense queries.
Machine ID: fixed at 0. Commands with other IDs are ignored.
Error response: unsupported commands return ILLEGAL [F2].
Disc capacity: audio CD max 99 tracks; MP3 CD max 999 tracks.
Baud rate config: selectable on device panel (4800/9600/19200/38400); default is UNRESOLVED.
RTS/CTS: loopback-connected within device. External controller must handle accordingly if using hardware flow control.
Provenance
source_domains:
- tascam.eu
- cf.tascam.com
- manua.ls
source_urls:
- "https://www.tascam.eu/en/docs/CD-RW901%20RS-232C_Protocol%20v100.pdf"
- https://cf.tascam.com/wp-content/uploads/downloads/products/old/833/rs-232c_protocol_cd-rw901mk2_v100_e.pdf
- https://www.tascam.eu/en/docs/CD-RW901SL_Manual.pdf
- https://www.manua.ls/tascam/cd-rw901/manual
retrieved_at: 2026-05-14T02:48:57.845Z
last_checked_at: 2026-10-07T16:11:41.047Z
Verification Summary
verdict: verified
checked_at: 2026-10-07T16:11:41.047Z
matched_actions: 63
action_count: 63
confidence: medium
summary: "All 63 action units (30 actions, 33 query feedbacks) match source command codes and shapes; transport values supported; unsolicited F0/F1/F2/F4/F6 are covered as Feedbacks. (8 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "no standalone Variables section in source - all settable params are Actions"
- "populated from unsolicited status commands above"
- "no macro sequences described in source"
- "no safety warnings or interlock procedures in source"
- "port number not stated (configured on device panel)"
- "voltage/current/power specs not in control protocol section"
- "firmware version compatibility not stated in source"
- "binary encoding for error/caution codes not detailed — only ASCII return format shown"
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0