English Amiga Board


Go Back   English Amiga Board > Main > Amiga scene

 
 
Thread Tools
Old 13 May 2020, 20:37   #1
virgill
Registered User
 
Join Date: Apr 2020
Location: Ibbenbüren
Posts: 19
AmigaKlang is out

A modular crossdev softsynth..

https://www.pouet.net/prod.php?which=85351

virgill is offline  
Old 13 May 2020, 21:45   #2
grond
Registered User
 
Join Date: Jun 2015
Location: Germany
Posts: 1,918
Wow, that looks pretty cool!
grond is offline  
Old 14 May 2020, 06:52   #3
Crown
Demoscener
 
Crown's Avatar
 
Join Date: May 2006
Location: FR
Age: 54
Posts: 459
OMG, this is fab. Thanks a lot Virgill.

Btw, it says v1.0 in the CLI and v0.95 in the GUI

Last edited by Crown; 14 May 2020 at 06:58.
Crown is offline  
Old 14 May 2020, 07:34   #4
britelite
Registered User
 
Join Date: Feb 2010
Location: Espoo / Finland
Posts: 818
Quote:
Originally Posted by Crown View Post
Btw, it says v1.0 in the CLI and v0.95 in the GUI
Probably because AmigaKlang is at version 1.0 and AmigaKlangGUI is at 0.95
britelite is offline  
Old 14 May 2020, 09:19   #5
Antiriad_UK
OCS forever!
 
Antiriad_UK's Avatar
 
Join Date: Mar 2019
Location: Birmingham, UK
Posts: 418
Virgil, what is the replayer like performance wise? I’ll add it to my intro framework when I get mo but just interested compared to p61 and pretracker
Antiriad_UK is offline  
Old 14 May 2020, 10:33   #6
virgill
Registered User
 
Join Date: Apr 2020
Location: Ibbenbüren
Posts: 19
Antiriad: you can use whatever mod player you want. The exported .bin just renders the synthesized samples to a given memory location. For the "export executable“ function, I've used the Protracker v2. 1a player by Peter Crayon Hanning.
virgill is offline  
Old 14 May 2020, 11:13   #7
Tigerskunk
Inviyya Dude!
 
Tigerskunk's Avatar
 
Join Date: Sep 2016
Location: Amiga Island
Posts: 2,770
Sorry for the stupid question/statement, but am I right in thinking that this is "just" an Amiga based softsynth?
I mean, there was a lot of hype around this around Revision, and I don't get quite get it having seen your video about it.
Does this produce smaller mods or what am I missing here?
Tigerskunk is offline  
Old 14 May 2020, 11:16   #8
grond
Registered User
 
Join Date: Jun 2015
Location: Germany
Posts: 1,918
@Steril707: the way I understand it, it produces code that then can be run from your own program and will generate all the samples so that you can use them in your program.
grond is offline  
Old 14 May 2020, 12:17   #9
Antiriad_UK
OCS forever!
 
Antiriad_UK's Avatar
 
Join Date: Mar 2019
Location: Birmingham, UK
Posts: 418
Had a look at the readme and it makes a bit more sense.

Code:
Export samples to mod file
--------------------------
Use Save -> Export Samples to mod
Select a mod file in the file dialog.
ATTENTION: All sample data will be overwritten !!



Export to Amiga executable
-------------------------- 
Use Save -> Export executable
Select a mod file in the file dialog.
Now the "exemusic.exe" can be found in the sub-folder "exe_creator"



Export to Amiga binary
---------------------- 
Use Save -> Export binary
Now the "a.mingw.bin" can be found in the sub.folder "exe_creator"

Demo coders can use this binary as described here:
The binary contains relocatable code. Put it in memory where you want. 
You need an own player and the mod song data, since the binary just contains the sample render code.
It needs following adresses in registers:
a0: startaddress where to render the samples to chipmem .
a1: startaddress of a temporary render buffer (32768 byte)
a2: startaddress of external samples (if used. Include Ismp.raw)
a4: address where the synth puts the rendering progress (e.g. for a progressbar)
The first two make sense. Looks like it exports the samples as full wave forms (taking up mod space) into a standard mod. Then you could I guess play that back with anything you like.

Second is a standalone amiga binary. Makes sense.

The third looks like instead of saving the samples, it creates a piece of code you can run from within your demo to generate the samples on the fly. That would make it good for small 64k like productions as I'm assuming that the precalc code is a lot smaller than saving the final waveforms in your prod.

I'm just a bit confused what you do with the samples once you've precalced them. How do you convert say the p61a replayer to use those samples?
Antiriad_UK is offline  
Old 14 May 2020, 12:21   #10
Tigerskunk
Inviyya Dude!
 
Tigerskunk's Avatar
 
Join Date: Sep 2016
Location: Amiga Island
Posts: 2,770
Quote:
Originally Posted by Antiriad_UK View Post
The third looks like instead of saving the samples, it creates a piece of code you can run from within your demo to generate the samples on the fly. That would make it good for small 64k like productions as I'm assuming that the precalc code is a lot smaller than saving the final waveforms in your prod.
That sounds indeed interesting...
Tigerskunk is offline  
Old 14 May 2020, 13:02   #11
no9
Registered User
 
no9's Avatar
 
Join Date: Feb 2018
Location: Poland
Posts: 352
@virgill
no9 is online now  
Old 14 May 2020, 13:40   #12
virgill
Registered User
 
Join Date: Apr 2020
Location: Ibbenbüren
Posts: 19
You've guessed right. It's designed to have low memory footprint for executable music compos or 64k Intros.
Antiriad: can't tell how it behaves with the P61 player since I don't have experience with that one.
virgill is offline  
Old 14 May 2020, 13:43   #13
virgill
Registered User
 
Join Date: Apr 2020
Location: Ibbenbüren
Posts: 19
Btw, this is what it sounds like: (exe size 27kb)
https://soundcloud.com/virgill/redrum-redrum
virgill is offline  
Old 14 May 2020, 16:50   #14
Antiriad_UK
OCS forever!
 
Antiriad_UK's Avatar
 
Join Date: Mar 2019
Location: Birmingham, UK
Posts: 418
They sound great, Virgill

Quote:
Originally Posted by virgill View Post
Antiriad: can't tell how it behaves with the P61 player since I don't have experience with that one.
Ok, no problem. How about how it works with the replayer you are familiar with because I'm missing something here

Is this the workflow?

1. In amigaklanggui create instruments.
2. Export those instruments to a mod file
3. Write your mod using those instruments
4. Save mod without samples
5. In amigaklanggui export instruments to binary
6. In own intro, include the PT 2.1a replayer.
7. At the mt_data: label in the replayer include your sample-less module
8. Include the amigaklang binary file
9. Fill in the a0-a4 registers and jsr to to the amigaklang binary file to render samples. (how do you know how big the chipmem buffer needs to be for a0?)


I still don't see how the replayer and the samples link up. I think the sample data in a normal mod file is stored right at the end from what I read on wikipedia. Maybe it's as simple as just placing the target for the rendered samples directly following the mod?:
Code:
mt_data: incbin "mymodule.mod"
klangsamples: dcb.b <however long the samples need to be>
Edit: I know phx has written a standard replayer that allows you to specify the location of samples. I'll give that a go.
Antiriad_UK is offline  
Old 14 May 2020, 18:49   #15
Tigerskunk
Inviyya Dude!
 
Tigerskunk's Avatar
 
Join Date: Sep 2016
Location: Amiga Island
Posts: 2,770
This will come in handy for my 64k intro for next years revision...
Tigerskunk is offline  
Old 14 May 2020, 19:13   #16
DanScott
Lemon. / Core Design
 
DanScott's Avatar
 
Join Date: Mar 2016
Location: Tier 5
Posts: 1,211
We had issues with P61 player, as the converter also seems to do some stuff to the samples... meaning that the resulting module sample offsets were not correct for the aklang sample renderer.

We switched to use phx's ptplayer (which I then stripped down to remove all the stuff not required for a demo.. sfx playing and master volume etc.), and had no problems with that.

You'll need a tool that splits a module into pattern data and separate sample data.. the advantage is that the pattern data doesn't need to go into chip ram


We also have a little cmd line tool in the build process that read the size of the sample file for the module and created an EQU, so if the module changed, we wouldn't have to manually update the dc.b value for the samples
DanScott is offline  
Old 14 May 2020, 19:19   #17
virgill
Registered User
 
Join Date: Apr 2020
Location: Ibbenbüren
Posts: 19
Antiriad: You´re described the workflow absolutely right.
Most replayers expect the sample data directly behind the pattern data.
With others you can have them separated.

The needed size of the sample buffer is shown in the GUI.
virgill is offline  
Old 14 May 2020, 19:23   #18
virgill
Registered User
 
Join Date: Apr 2020
Location: Ibbenbüren
Posts: 19
Oh, and here´s a little overview i did a while ago. Sorry for the bad voice recording :P

[ Show youtube player ]
virgill is offline  
Old 14 May 2020, 19:33   #19
DanScott
Lemon. / Core Design
 
DanScott's Avatar
 
Join Date: Mar 2016
Location: Tier 5
Posts: 1,211
Code:
				section modpatterns,data
ModuleTrk:			incbin	"dh0/assets/2020vision/modules/lemonfuturefunk.mod.trk"

				ifeq	GENERATE_SAMPLES
				section modulesamples,data_c
ModuleSmp:			incbin	"dh0/assets/2020vision/modules/lemonfuturefunk.mod.smp"
				else
				section modulesamples,bss_c
ModuleSmp:			ds.b	MOD_SAMPLE_SIZE
				endif
We did something like this, so we had a define to either include the samples or to generate them... because waiting 30 seconds for the precalc each time was too much when coding the intro
DanScott is offline  
Old 14 May 2020, 21:20   #20
Galahad/FLT
Going nowhere
 
Galahad/FLT's Avatar
 
Join Date: Oct 2001
Location: United Kingdom
Age: 50
Posts: 8,986
Sounds excellent, really clear sounds.
Galahad/FLT is offline  
 


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

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 20:49.

Top

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