# s3turbo
Tools for the General Music S2/S3 Turbo synthesizer, including
* `s3midi`, a MIDI System Exclusive interface program
* `s3img`, a program for handling floppy disk images
* `s3floppy`, a program for formatting, reading and writing S2/S3 floppy disks
## Installation
s3turbo uses python which should be available by default on modern Linux systems and Mac OS X. The `s3midi` script depends on additional python packages that might have to be installed manually. These are:
* `python-rtmidi` RtMidi wrapper for Python
* `python-progress` Progress bar for Python
### Linux
On Debian, `python-rtmidi` is not available from the standard repositories, it can be installed with `pip`:
```
sudo pip install python-rtmidi
```
`python-progress` can be installed using `apt`:
```
sudo apt-get install python-progress
```
### Mac OS X
Python packages can be installed using `pip`. If `pip` is not installed already, use
```
sudo easy_install pip
```
to get it.
If `easy_install` is missing as well, it can be installed with
```
curl https://bootstrap.pypa.io/ez_setup.py -o - | sudo python
```
Install the `s3midi` dependencies with
```
sudo pip install python-rtmidi
sudo pip install progress
```
### Running from source
```
# Get the code from Github (https://github.com/jmechnich/s3turbo)
git clone https://github.com/jmechnich/s3turbo # or download ZIP file
cd s3turbo
# Install software globally (optional)
sudo python setup.py install
# e.g. list available MIDI devices
./s3midi -l
```
## About s3midi
The General Music/GEM S2/S3 Turbo Music Processor is a synthesizer workstation from the early 90s. The Turbo version (larger ROM and updated functionality) has support for MIDI System Exclusive which is not well-documented. The manual includes only a rudimentary description of the available commands and data structures but the C development files are not available.
This tool provides an implementation of most of the commands from the manual. It is also possible to send and receive sample dumps using SDS to the synthesizer (not tested with other instruments).
## Functionality of s3midi
* Send commands to the synthesizer, see [s3turbo/S3Turbo.py](https://github.com/jmechnich/s3turbo/blob/master/s3turbo/S3Turbo.py)
* Monitor MIDI messages and decode S2/S3 specific data
* Send and receive sample dumps
## Usage of s3midi
The MIDI device numbers can be given on the command line using `-i/--indev` and `-o/--outdev`. `-l/--listdev` lists all available MIDI devices. Defaults for command line arguments can be set using a configuration file `~/.s3turbo.conf`, e.g. containing:
```
indev: 2
outdev: 3
```
Sending a basic status request to the synthesizer. The `-e/--exit` flag causes the program to terminate after one second of inactivity from the synthesizer.
```
./s3midi --command STAT_REQUEST
Data:
ActBankPerf: (2, 1)
FreeMem: 678632
FreeSampleMem: 1649774
ReadyFor: (255, 255)
TotalMem: 1650688
iClass: 1
iRelease: 2
iSubClass: 2
checksum: 0x57 (calculated 0x57)
```
Change to Bank 1, Performance 1 and print debugging information. Additional command line arguments are appended to the message body.
```
# Bank and Performance values in ASCII (0x30-0x39)
./s3midi -v -cBANK_PERF_CHG -x 0x30 0x30 -e
```
Send a directory request to the synthesizer. The order of commandline arguments has to match the signature of the command.
```
# List everything
./s3midi -cDIR_DRQ -f"*" -p"A:"
```
The first argument is the filename, second is the path.
A: corresponds to RAM.
B: corresponds to the current disk if loaded, to the RAM disk otherwise.
C: is either empty if no disk is loaded or corresponds to the RAM disk.
The general directory layout is
```
A:-|
|-BANKS (type 32, format 32)
| |-'BANKNAME 0' (type 32, format 32)
| |-'BANKNAME 1' (type 32, format 32)
| :
| |-'BANKNAME 9' (type 32, format 32)
| |-PERF (type 32, format 32)
| | |-'PERFNAME 0' (type 2, format 2)
| | |-'PERFNAME 1' (type 2, format 2)
| | :
| | |-'PERFNAME 9' (type 2, format 2)
| |
| |-Song (type 3, format 2)
|
|-DATA (type 32, format 32)
| :_(e.g. screenshot from hardcopy program in HARDCPY/FIG_001 IMG)
| :_(e.g. text file from disk directory program in DISKNAMEALL/LIB/DIR etc.)
|
|-PROGRAM (type 32, format 32)
| :_(e.g. temporary files from disk copy program)
|
|-SETUP (type 32, format 32)
|-GENERAL (type 5, format 2)
|-EFFECT1 (type 6, format 2)
|-EFFECT2 (type 7, format 2)
|-SOUNDMAP (type 9, format 2)
|-SAMPLES (type 32, format 32)
| |-'SAMPNAMETXL' (type 8, format 2)
|
|-SOUNDS (type 32, format 32)
|-'SOUNDNAME F' (type 1, format 2)
|-'SOUNDNAME E' (type 1, format 2)
Sound suffixes:
E - RAM sound using RAM sample
F - RAM sound using ROM sample
File types:
1 - Sound
2 - Performance
3 - Song
4 - ?
5 - General Setup
6 - Effect1 Setup
7 - Effect2 Setup
8 - Sample
9 - Soundmap Setup
32 - Directory
```
### Dumps
```
TYPE = [ 0x0, # Sound
0x1, # Sample
0x2, # Soundmap
0x3, # Effect1
0x4, # Effect2
0x5, # General
0x6, # Song
0x7, # Performance
0x8, # Global (untested)
0x9, # StylePerf (untested)
0xa, # RealtimePerf (untested)
0xb, # Riff (untested)
]
BANK = ASCII Bank number (0x30-0x39), only used for TYPE 0x6, 0x7
PERF = ASCII Performance number (0x30-0x39), only used for TYPE 0x7
# List directory contents
./s3midi -cDIR_REQUEST -x $TYPE $BANK $PERF -f"*"
# Dump 'file'
./s3midi -cDATA_REQUEST -x $TYPE $BANK $PERF -f"*")'
# Dump Sound ("SOUND E" from DIR_REQUEST)
# F_DREQ does not seem to work at all
./s3midi -cDATA_REQUEST -x 0 0 0 -f"SOUND E"
# Dump Sample ("SAMPLE TXL" from DIR_REQUEST)
# F_DREQ only dumps a few bytes if dumping from RAM but seems to work for RAM disk (e.g. C:)
./s3midi -cDATA_REQUEST -x 1 0 0 -f"SAMPLE TXL"
or
./s3midi -cF_DREQ -f"SAMPLE TXL" -p"A:\\SETUP\\SAMPLES\\"
# Dump SOUNDMAP (filename argument ignored)
./s3midi -cDATA_REQUEST -x 2 0 0 -f"*"
or
./s3midi -cF_DREQ -f"SOUNDMAP" -p"A:\\SETUP\\"
# Dump EFFECT1 (filename argument ignored)
./s3midi -cDATA_REQUEST -x 3 0 0 -f"*"
or
./s3midi -cF_DREQ -f"EFFECT1" -p"A:\\SETUP\\"
# Dump EFFECT2 (filename argument ignored)
./s3midi -cDATA_REQUEST -x 4 0 0 -f"*"
or
./s3midi -cF_DREQ -f"EFFECT2" -p"A:\\SETUP\\"
# Dump GENERAL (filename argument ignored)
./s3midi -cDATA_REQUEST -x 5 0 0 -f"*"
or
./s3midi -cF_DREQ -f"GENERAL" -p"A:\\SETUP\\"
# Dump Song 1 (Bank 0x30-0x39)
./s3midi -cDATA_REQUEST -x 6 0x30 0x30 -f"*"
or e.g.
./s3midi -cF_DREQ -f"Song" -p"A:\\BANKS\\Bank 1 0\\"
# Dump Performance (Bank 0x30-0x39 Perf 0x30-0x39)
./s3midi -cDATA_REQUEST -x 7 0x30 0x30 '-f"*"
or e.g.
./s3midi -cF_DREQ -f"Perf 0" -p"A:\\BANKS\\Bank 1 0\\PERF\\"
# Dump hardcopy created with 'HARDCPY PRG'
./s3midi -cF_DREQ -f"FIG_001 IMG" -p"A:\\DATA\\HARDCPY\\"
# Trigger RAM dump, takes ~20min (sends first STAT_REQUEST, then F_ACK)
# if dump is not aborted, a reboot is necessary
./s3midi -cRAM_DUMP
```
### File formats
```
# User program format, variable length
6 bytes header 01 01 01 0b 02 01
see doc/format_userprogram.txt
# Performance format, possibly constant length 252
6 bytes header 01 02 02 03 02 01
remaining unknown
# General format, possibly constant length 1127
6 bytes header 01 02 02 05 02 01
remaining unknown
# Effect2 map format, variable length
6 bytes header 01 02 02 07 02 01
34 bytes map entry, see Effect 1 map
# Sound map format, variable length
6 bytes header 01 02 02 09 02 02
18 bytes map entry
bytes 1-10 Sound Name
byte 11 unknown, c0 - ROM layer
没有合适的资源?快使用搜索试试~ 我知道了~
通用音乐S2/S3 Turbo 合成器 的工具_python_代码_下载
共31个文件
py:15个
sh:4个
txt:2个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 160 浏览量
2022-06-16
14:10:10
上传
评论
收藏 37KB ZIP 举报
温馨提示
通用音乐 S2/S3 Turbo 合成器的工具,包括 s3midi, 一个 MIDI System Exclusive 接口程序 s3img, 一个处理软盘映像的程序 s3floppy, 一个格式化、读写S2/S3软盘的程序 s3midi的功能 向合成器发送命令,参见s3turbo/S3Turbo.py 监控 MIDI 信息并解码 S2/S3 特定数据 发送和接收样本转储
资源推荐
资源详情
资源评论
收起资源包目录
s3turbo-master.zip (31个子文件)
s3turbo-master
s3midi 5KB
s3turbo
MSCEIMessage.py 2KB
SysExParser.py 8KB
Util.py 4KB
S3BootSector.py 4KB
RtMidiHandler.py 3KB
StandardHandler.py 4KB
S3Image.py 17KB
MidiHandler.py 5KB
S3Turbo.py 5KB
__init__.py 0B
Fat12.py 4KB
DirEntry.py 4KB
SampleDumpHandler.py 9KB
MessagePrinter.py 7KB
s3floppy 1KB
cleanup.sh 66B
s3dump_TXL 1KB
doc
clipboard.txt 2KB
format_userprogram.txt 713B
setup.py 337B
.gitignore 741B
README.md 9KB
s3img 6KB
helpers
convert_sample.sh 528B
bitshift.c 813B
pretty_dump.sh 779B
play_dump 2KB
plot_data_le 651B
setup.sh 146B
plot_data 651B
共 31 条
- 1
资源评论
快撑死的鱼
- 粉丝: 1w+
- 资源: 9156
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 农村信用社联合社计算机信息系统投产与变更管理办.docx
- 农村信用社联合社计算机信息系统数据管理办法.docx
- 利用SPSS作临床效度分析线上计算网站介绍-医学研究部统计谘.(医学PPT课件).ppt
- 利用Zabbix监控mysqldump定时备份数据库状态.docx
- 利用计算机解决问题的基本过程.doc
- 化工铁路通信工程总结.doc
- 北京大学网络教育软件工程作业.docx
- 医药公司(连锁店)计算机操作规程未新系统的自行按照旧制修改-新系统过制的编号加修模版.doc
- 医药公司(连锁店)计算机系统操作规程模版.doc
- 医药连锁门店计算机系统的操作和管理程序未新系统的自行按照旧制修改-新系统过制的编号加修模版.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功