English Amiga Board


Go Back   English Amiga Board > Coders > Coders. Asm / Hardware

 
 
Thread Tools
Old 27 February 2021, 06:26   #1
KONEY
OctaMED Music Composer
 
KONEY's Avatar
 
Join Date: Jan 2009
Location: Venice - Italy
Age: 49
Posts: 667
ARexx script to export MOD notes to table

I'm working on an ARexx script for OctaMED SoundStudio with the purpose to export single instrument score data as a table usable within ASM.

https://github.com/KONEY/octamed-are...mod_2_lut.rexx

OctaMED loads and saves also .MOD so this is 100% compatible also with Protracker

The idea is to have a table of values pulled easily during playback to synchronize effect on separate instruments. Audio channel used won't matter and values will be from the actual sequence.

Example tables of a piano instrument and a snare from a simple 7 blocks long song:
PHP Code:
st-08:Spacemix Data exported with mod_2_lut.rexx by KONEY
INSTR_5_TABLE
:
    ; 
SEQ_POS 0 BLK# 6 - 
    
DC.B 19,0,19,0,19,0,22,22,0,19,17,0,17,0,15,0
    DC
.B 14,0,14,0,14,0,17,17,0,14,14,0,12,0,10,0
    DC
.B 19,0,19,0,19,0,22,22,0,19,22,0,19,0,17,0
    DC
.B 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    
SEQ_POS 0 BLK# 7 - 
    
DC.B 20,0,20,0,20,0,15,27,0,27,27,0,26,0,24,0
    DC
.B 22,0,22,0,22,0,24,19,0,15,15,0,17,0,15,0
    DC
.B 14,0,14,0,14,0,15,17,0,17,17,0,15,0,19,17
    DC
.B 15,0,15,0,15,0,17,19,0,22,22,0,19,0,19,0
    
SEQ_POS 1 BLK# 9 - 
    
DC.B 19,0,19,0,19,0,22,22,0,19,19,0,19,0,17,0
    DC
.B 15,0,15,0,15,0,17,17,0,15,15,0,15,0,17,0
    DC
.B 19,0,19,0,19,0,22,22,0,19,19,0,19,0,17,0
    DC
.B 15,0,15,0,15,0,17,17,0,15,15,0,15,0,17,0
    
SEQ_POS 2 BLK# 6 - 
    
DC.B 19,0,19,0,19,0,22,22,0,19,17,0,17,0,15,0
    DC
.B 14,0,14,0,14,0,17,17,0,14,14,0,12,0,10,0
    DC
.B 19,0,19,0,19,0,22,22,0,19,22,0,19,0,17,0
    DC
.B 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    
SEQ_POS 3 BLK# 7 - 
    
DC.B 20,0,20,0,20,0,15,27,0,27,27,0,26,0,24,0
    DC
.B 22,0,22,0,22,0,24,19,0,15,15,0,17,0,15,0
    DC
.B 14,0,14,0,14,0,15,17,0,17,17,0,15,0,19,17
    DC
.B 15,0,15,0,15,0,17,19,0,22,22,0,19,0,19,0
    
SEQ_POS 4 BLK# 7 - 
    
DC.B 20,0,20,0,20,0,15,27,0,27,27,0,26,0,24,0
    DC
.B 22,0,22,0,22,0,24,19,0,15,15,0,17,0,15,0
    DC
.B 14,0,14,0,14,0,15,17,0,17,17,0,15,0,19,17
    DC
.B 15,0,15,0,15,0,17,19,0,22,22,0,19,0,19,0
    
SEQ_POS 5 BLK# 10 - 
    
DC.B 20,0,20,0,20,0,24,22,0,22,0,24,19,0,17,0
    DC
.B 15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    DC
.B 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    DC
.B 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

st-01:POPSNARE2 Data exported with mod_2_lut.rexx by KONEY
INSTR_8_TABLE
:
    ; 
SEQ_POS 0 BLK# 6 - 
    
DC.B 0,0,0,0,22,0,0,0,0,0,0,0,22,0,0,0
    DC
.B 0,0,0,0,22,0,0,0,0,0,0,0,22,0,0,0
    DC
.B 0,0,0,0,22,0,0,0,0,0,22,0,22,22,22,0
    DC
.B 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    
SEQ_POS 0 BLK# 7 - 
    
DC.B 0,0,0,0,22,0,0,0,0,0,0,0,22,0,0,0
    DC
.B 0,0,0,0,22,0,0,0,0,0,0,0,22,0,0,0
    DC
.B 0,0,0,0,22,0,0,0,0,0,0,0,22,0,0,0
    DC
.B 0,0,0,0,22,0,0,0,0,0,0,0,22,0,22,22
    
SEQ_POS 1 BLK# 9 - 
    
DC.B 0,0,0,0,22,0,0,0,0,0,0,0,22,0,22,22
    DC
.B 0,0,0,0,22,0,0,0,0,0,0,0,22,0,0,0
    DC
.B 0,0,0,0,22,0,0,0,0,0,0,0,22,0,0,0
    DC
.B 0,0,0,0,22,0,0,0,0,0,0,0,22,0,0,0
    
SEQ_POS 2 BLK# 6 - 
    
DC.B 0,0,0,0,22,0,0,0,0,0,0,0,22,0,0,0
    DC
.B 0,0,0,0,22,0,0,0,0,0,0,0,22,0,0,0
    DC
.B 0,0,0,0,22,0,0,0,0,0,22,0,22,22,22,0
    DC
.B 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    
SEQ_POS 3 BLK# 7 - 
    
DC.B 0,0,0,0,22,0,0,0,0,0,0,0,22,0,0,0
    DC
.B 0,0,0,0,22,0,0,0,0,0,0,0,22,0,0,0
    DC
.B 0,0,0,0,22,0,0,0,0,0,0,0,22,0,0,0
    DC
.B 0,0,0,0,22,0,0,0,0,0,0,0,22,0,22,22
    
SEQ_POS 4 BLK# 7 - 
    
DC.B 0,0,0,0,22,0,0,0,0,0,0,0,22,0,0,0
    DC
.B 0,0,0,0,22,0,0,0,0,0,0,0,22,0,0,0
    DC
.B 0,0,0,0,22,0,0,0,0,0,0,0,22,0,0,0
    DC
.B 0,0,0,0,22,0,0,0,0,0,0,0,22,0,22,22
    
SEQ_POS 5 BLK# 10 - 
    
DC.B 0,0,0,0,22,22,0,0,0,0,0,0,22,22,0,0
    DC
.B 0,0,22,22,0,0,22,0,0,0,22,22,0,0,0,0
    DC
.B 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
another example

After including the table, values would be easily accessed: P61_Position*64 = the offset to current block in sequence and P61_Row = index for the value of currently triggered note, if any. At this point the value could be sent to whatever effect and turned into visuals.

This is in very early stage but core idea is there. Honestly I'm not even sure the format will be the best possible and I'm looking for suggestions, also for features. I'm making this because I need it for my music productions but would be nice if it comes useful to someone else.
KONEY is offline  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
Icon position clearence by Script/ARexx ? logical support.Apps 6 01 November 2018 16:38
Problem executing DOpus5 Arexx Script ... beltrixx support.Apps 1 01 August 2015 22:16
Simple NewShell script?.. in Arexx? Yoji Coders. General 5 19 May 2015 14:49
Best module player / wav export for the PC? h0ffman New to Emulation or Amiga scene 13 29 October 2008 22:18
Arexx script (txt => hex) Uukrul Coders. General 10 09 September 2001 04:02

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 00:26.

Top

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Page generated in 0.06683 seconds with 15 queries