HuSound

Started by TailChao, 11/08/2014, 09:51 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

TailChao

Hi all,

I've decided to release the sound tools I've been working on for the PCE. They're based upon the environment I created for the Lynx which uses the SASS language to write music and sound effect scripts.
This has been written for the WLA-DX assembler, and uses the MCGenjin memory mapper (so Mednafen and hardware only). Sorry, no HuC or cc65 environment support. All of the source is included with each version of the driver if you'd like to add your own cool features or port it to something else.

Here's some of the neato things you get with HuSound:
-Included audition/test ROM with waveform and mode watcher
-Included demo instrument set
-Minimal bank alignment restrictions for music/sfx data
-Instruments and sound effects can switch among waveform, noise, and PCM mode on a single channel.
-Stereo Panning for music, sound effects, and samples
-6.992KHz PCM Playback on any channel
-Multichannel sound effects
-Dispatch of multiple sound effects per frame
-Configurable priority system among music, sound effects, and samples
-Attenuation support for music (can be used for fade-ins, fade-outs, etc)

You can download the newest version (v1.3cz) here.
I've also uploaded some test footage + covers to give a better idea of what the driver can do.
The ROM and SASS Scripts used for these covers are available here.

Have fun!

esteban

IMG

I have no skills, but I know this is a good thing.
IMGIMG IMG  |  IMG  |  IMG IMG

ultrageranium

Great documentation too, Thanks!

Arkhan Asylum

Well, the Phantasy Star II tune made me piss myself.
This "max-level forum psycho" (:lol:) destroyed TWO PC Engine groups in rage: one by Aaron Lambert on Facebook "Because Chris 'Shadowland' Runyon!," then the other by Aaron Nanto "Because Le NightWolve!" Him and PCE Aarons don't have a good track record together... Both times he blamed the Aarons in a "Look-what-you-made-us-do?!" manner, never himself nor his deranged, destructive, toxic turbo troll gang!

FraGMarE

Quote from: guest on 11/08/2014, 05:57 PMWell, the Phantasy Star II tune made me piss myself.
Yes!  PSII city music!  I too am in need of a diaper change after hearing this on the PCE sound hardware!  :)

Arkhan Asylum

Bitch, it's the save-data screen music, not the city music.

This "max-level forum psycho" (:lol:) destroyed TWO PC Engine groups in rage: one by Aaron Lambert on Facebook "Because Chris 'Shadowland' Runyon!," then the other by Aaron Nanto "Because Le NightWolve!" Him and PCE Aarons don't have a good track record together... Both times he blamed the Aarons in a "Look-what-you-made-us-do?!" manner, never himself nor his deranged, destructive, toxic turbo troll gang!

spenoza

So, is this engine compatible with channels being dynamically pulled out for sound effect duty?

FraGMarE

Quote from: guest on 11/09/2014, 02:27 AMBitch, it's the save-data screen music, not the city music.
Oh yea, you're right, you whore!  It's been years since I've fired up PSII.  Either way, it sounds awesome on the PCE  :)

ccovell

This looks great.  So, what's the memory / raster time usage?

TailChao

Thanks for the feedback.

Quote from: guest on 11/09/2014, 11:16 AMSo, is this engine compatible with channels being dynamically pulled out for sound effect duty?
Yes, each channel of a music track (if playing) has an assigned priority. All sound effects also have priorities which are used during their dispatch to see if they can "borrow" a channel from the music track if it is in use.

Quote from: ccovell on 11/09/2014, 07:56 PMThis looks great.  So, what's the memory / raster time usage?
40 Bytes ZeroPage and 894 Bytes of RAM. Kind of fat, but I added so much RAM on the cartridge that this is a bit moot. The depth of the loop / call stacks used in the driver can be adjusted from their default of depth four as well which could easily get you a hundred or so bytes off. Same goes for the sound effect dispatch queue (default depth is eight).

Performance is (really really) variable because of the macro instrument setup. The first two attachments show driver time in "average" and "bad" states. RED indicates audio register writes, BLUE is VRAM transfers (ignore), and PINK is the driver update tick. This is something I'd like to improve in the future. CALLs and BREAKs are super expensive since there are no alignment restrictions on music, instruments, or sound effects.

The next two attachments show PCM IRQ time (in pink) for one and two PCM channels in use respectively. While six is supported, playing that many samples at once will definitely mess up any HBL rasters you may be using.

HuSound_Normal.png HuSound_Heavy.png
HuSound_1PCM.png HuSound_2PCM.png

ParanoiaDragon

These sound great!  How practical is this for use ingame, would you say it's still CPU intensive enough so that it couldn't be used for full fledged games?  I assume the overall goal is to make this practical for full homebrew game projects?  That would, ofcoarse be sweet, & it'll be nice to have different options for dev's in the future for music making.
IMG

TailChao

Quote from: ParanoiaDragon on 11/10/2014, 03:01 AMThese sound great!  How practical is this for use ingame, would you say it's still CPU intensive enough so that it couldn't be used for full fledged games?  I assume the overall goal is to make this practical for full homebrew game projects?  That would, ofcoarse be sweet, & it'll be nice to have different options for dev's in the future for music making.
The driver was written for use in a game, so it should be fine. The big performance hit comes from having no alignment restrictions, so the driver has to do two levels of banking math (both 8KB/MPR and 256KB/MCGenjin). But the convenience you get out of this is huge, so I'm willing to dump the cycles.

Of course, if you're doing heavy effects (more SASS instructions per frame = more data to fetch), you'll be using more of the HuC6280's time. Running 3+ PCM streams and decoding complex music / sound effects might be doable in something mellow like Bonk, but you'd have to scale things back for a game which needs more cycles to do its own calculations.

Since the source is available, you are free to chop off parts you don't want or add things that you'd like. For example the standard version of my Lynx sound tools doesn't support music fade outs, but the modified one which I'm using in a new game does.

I think the only challenge here is that everything was written for MCGenjin, which has a bit of a learning curve if you're unfamiliar with it. This can obviously be removed, but it is quite cool to use the same card in a PCE and TG16 with no mods or switches.

spenoza

What do you think would be the most difficult aspect of altering this engine for use without the MCGenjin mapper? I ask because Arkhan already has a homebrew board he's shipping with Atlantean, and there is now a Turbo EverDrive that makes playing homebrew and hack titles much easier.

TailChao

Quote from: guest on 11/10/2014, 12:03 PMWhat do you think would be the most difficult aspect of altering this engine for use without the MCGenjin mapper? I ask because Arkhan already has a homebrew board he's shipping with Atlantean, and there is now a Turbo EverDrive that makes playing homebrew and hack titles much easier.
It is really not that difficult to remove the MCGenjin stuff. What is difficult is adapting the driver to HuC, which I believe Arkhan and friends are using.

Arkhan Asylum

Quote from: TailChao on 11/10/2014, 04:14 PM
Quote from: guest on 11/10/2014, 12:03 PMWhat do you think would be the most difficult aspect of altering this engine for use without the MCGenjin mapper? I ask because Arkhan already has a homebrew board he's shipping with Atlantean, and there is now a Turbo EverDrive that makes playing homebrew and hack titles much easier.
It is really not that difficult to remove the MCGenjin stuff. What is difficult is adapting the driver to HuC, which I believe Arkhan and friends are using.
Most of Atlantean is inline assembly, and most of Squirrel is wrapper code to call into the asm stuff.  :)

This "max-level forum psycho" (:lol:) destroyed TWO PC Engine groups in rage: one by Aaron Lambert on Facebook "Because Chris 'Shadowland' Runyon!," then the other by Aaron Nanto "Because Le NightWolve!" Him and PCE Aarons don't have a good track record together... Both times he blamed the Aarons in a "Look-what-you-made-us-do?!" manner, never himself nor his deranged, destructive, toxic turbo troll gang!

TailChao

#15
Quote from: guest on 11/10/2014, 11:27 PMMost of Atlantean is inline assembly, and most of Squirrel is wrapper code to call into the asm stuff.  :)
Which is fine. My point was that WLA-DX is very different syntactically from HuC, inline ASM or not. This would complicate moving HuSound to the HuC environment.

(Edit: Just trying to be clear on what is and is not with the driver, no offense to you or your game).

Arkhan Asylum

Oh, yeah.   None taken.  Taking offense is for pussies.  This isn't a Neo Geo forum, hahahahahrgthghbnoidj.

What made you pick WLA-DX anyway?
This "max-level forum psycho" (:lol:) destroyed TWO PC Engine groups in rage: one by Aaron Lambert on Facebook "Because Chris 'Shadowland' Runyon!," then the other by Aaron Nanto "Because Le NightWolve!" Him and PCE Aarons don't have a good track record together... Both times he blamed the Aarons in a "Look-what-you-made-us-do?!" manner, never himself nor his deranged, destructive, toxic turbo troll gang!

saturndual32

TailChao, whats that new Lynx game you are working on all about?. Since you already played tribute to Zonk, with Zaku, could the new one be a Bonk type game for the Lynx  [-o<!?
Or did i hear something about a Metal Gear Solid type game  :)...
A Zaku port to the PCE would be incredible too!!! Ever tought about doing a PCE game?

TailChao

Quote from: guest on 11/11/2014, 11:20 PMOh, yeah.   None taken.  Taking offense is for pussies.  This isn't a Neo Geo forum, hahahahahrgthghbnoidj.
MAX 330 MEGA PRO-ANGST SPEC

Quote from: guest on 11/11/2014, 11:20 PMWhat made you pick WLA-DX anyway?
I was working on a title for the Super Nintendo for about two years after Zaku shipped and started using WLA-DX then.

The game was canned but I "got used to" the assembler and decided to revisit it when developing the MCGenjin. I don't necessarily agree with everything WLA-DX does (for example, including large files which span over several banks is more cryptic than it should be), but it has some good ideas. Definable width banks are pretty cool.
It also forced me to write all my own libraries for reading the controllers, talking to the VDC, etc, which is a good way to learn about a platform.


Quote from: saturndual32 on 11/12/2014, 01:42 PMTailChao, whats that new Lynx game you are working on all about?. Since you already played tribute to Zonk, with Zaku, could the new one be a Bonk type game for the Lynx  [-o<!?
Or did i hear something about a Metal Gear Solid type game  :)...
All I can say is that it's an action game, 2MB large, and some things from Zaku will make an appearance.
There is no hidden METAL GEAR?! behind my avatar  :wink: .
(Seriously though- I'll announce it when it is done. Not trying to be a jerk and dangle a carrot, since I've wanted to release a trailer for the past two years. But it is much easier to manage this way).

Quote from: saturndual32 on 11/12/2014, 01:42 PMA Zaku port to the PCE would be incredible too!!! Ever tought about doing a PCE game?
I have thought about it quite a bit (hence making an audio driver), and have a few designs that would work on the platform. The HuListen program in this audio suite was made from ripped apart game engine tests anyway.

Zaku will stay exclusive to the Lynx. Because of the time these games take to develop, I would rather do something very different each time, even if working on a sequel.

However, if you'd like to throw $250,000 (US) and a two year development contract at me and my friends, I'd be more than happy to deliver the best PC-FX menus game ever.

JoshTurboTrollX

Really fantastic videos and discoveries! 

Thank you for tinkering with our beloved PCE/Turbob.  I hope we'll all get to play one of your creations some day soon!
Jossshhhhh...Legendary TurboTrollX-16: He revenge-bans PCE Developers/Ys IV Localizers from PCE Facebook groups and destroyed 2 PC Engine groups: one by Aaron Lambert on Facebook, then the other by Aaron Nanto!!! Josh and PCE Aarons don't have a good track record together! Both times he blamed the Aarons and their staff in a "Look-what-you-made-us-do?!" manner (extortion!), never himself nor his deranged, destructive, toxic turbo troll gang!

Arkhan Asylum

Quote from: TailChao on 11/13/2014, 09:20 AMThe game was canned but I "got used to" the assembler and decided to revisit it when developing the MCGenjin. I don't necessarily agree with everything WLA-DX does (for example, including large files which span over several banks is more cryptic than it should be), but it has some good ideas. Definable width banks are pretty cool.
It also forced me to write all my own libraries for reading the controllers, talking to the VDC, etc, which is a good way to learn about a platform.
The only assembler I've ever gotten used to enough to not want to use an alternative, is tniASM for MSX.

I definitely don't have any attachment to PCEASM or anything.

QuoteZaku will stay exclusive to the Lynx. Because of the time these games take to develop, I would rather do something very different each time, even if working on a sequel.

However, if you'd like to throw $250,000 (US) and a two year development contract at me and my friends, I'd be more than happy to deliver the best PC-FX menus game ever.
\o/ 

yeahhaaaaaaaaaa


Have you thought about making any games for PC Engine?
This "max-level forum psycho" (:lol:) destroyed TWO PC Engine groups in rage: one by Aaron Lambert on Facebook "Because Chris 'Shadowland' Runyon!," then the other by Aaron Nanto "Because Le NightWolve!" Him and PCE Aarons don't have a good track record together... Both times he blamed the Aarons in a "Look-what-you-made-us-do?!" manner, never himself nor his deranged, destructive, toxic turbo troll gang!

saturndual32

Quote from: TailChao on 11/13/2014, 09:20 AMAll I can say is that it's an action game, 2MB large, and some things from Zaku will make an appearance.
There is no hidden METAL GEAR?! behind my avatar  :wink: .
(Seriously though- I'll announce it when it is done. Not trying to be a jerk and dangle a carrot, since I've wanted to release a trailer for the past two years. But it is much easier to manage this way).
LOL!, you dont sound ike a jerk at all, your position is understandable. And anyways, anyone who can make a game of the audio-visual quality, gameplay and charm of Zaku, for a super cool system like the Lynx, can act like a jerk whenever he wants, in my book  :).

TurboXray

Quote from: TailChao on 11/08/2014, 09:51 AMHi all,

I've decided to release the sound tools I've been working on for the PCE. They're based upon the environment I created for the Lynx which uses the SASS language to write music and sound effect scripts.
This has been written for the WLA-DX assembler, and uses the MCGenjin memory mapper (so Mednafen and hardware only). Sorry, no HuC or cc65 environment support. All of the source is included with each version of the driver if you'd like to add your own cool features or port it to something else.

Here's some of the neato things you get with HuSound:
-Included audition/test ROM with waveform and mode watcher
-Included demo instrument set
-Minimal bank alignment restrictions for music/sfx data
-Instruments and sound effects can switch among waveform, noise, and PCM mode on a single channel.
-Stereo Panning for music, sound effects, and samples
-6.992KHz PCM Playback on any channel
-Multichannel sound effects
-Dispatch of multiple sound effects per frame
-Configurable priority system among music, sound effects, and samples

You can download the newest version (v1.1c) here.
I've also uploaded some feature test footage and covers to give a better idea of what the driver can do.

Have fun!
That Phantasy Star cover is awesome! I love the fact that it adds that PCE sound to it.

TailChao

#23
Woah! Long time no update!

HuSound v1.2c is now available here.
*You can now control the attenuation of music tracks (for fade ins, fade outs, whatever) by calling HuMusic_ReqAtten with your desired music attenuation in A (0 = loudest, 15 = silent).
*Sound effects will no longer dispatch over channels which contain idle / resting music which is at a higher priority.

elmer

#24
Quote from: TailChao on 03/05/2015, 12:08 PMHuSound v1.2c is now available here.
Excellent, I hadn't been aware of this!  :)

SASS is much closer to what I'm used to than MML ... being based on SPL by Epyx (a Western developer) vs MML (more common with the Japanese developers). The 2 regions really do think a bit differently.

May I ask what license this is released under? I can't find any licensing or copyright information in a quick "grep" search of the files. Am I missing it somewhere?

I do hope that you'll allow it's use under something like the MIT, BSD, Apache or zlib licenses.

You're not alone in being a bit lax about deciding on licenses ... I've released a couple of things under the Boost license, but still haven't decided what license the PCE/PC-FX tool work will come under (MIT/BSD/Apache/zlib).

TailChao

#25
Quote from: elmer on 03/05/2015, 01:16 PMExcellent, I hadn't been aware of this!  :)

SASS is much closer to what I'm used to than MML ... being based on SPL by Epyx (a Western developer) vs MML (more common with the Japanese developers). The 2 regions really do think a bit differently.
Yeah, that's basically the major reason I started writing all these different sound tools.

Quote from: elmer on 03/05/2015, 01:16 PMMay I ask what license this is released under? I can't find any licensing or copyright information in a quick "grep" search of the files. Am I missing it somewhere?
I'm not sure what the proper term is, but as with most tools I released it's a "do whatever you like with it, just don't blame me if you burn down your house" license (there should be a little quip in the programmer's manual). So basically you're free to take the driver + compiler and modify them, include them with other things, etc.

Edit:
Quote from: elmer on 03/05/2015, 01:16 PMYou're not alone in being a bit lax about deciding on licenses ... I've released a couple of things under the Boost license, but still haven't decided what license the PCE/PC-FX tool work will come under (MIT/BSD/Apache/zlib).
The way I look at it, the only really valuable thing for these old platforms is the game software and IPs. So I just give the tools away since there's no good reason to profit from them or inconvenience anyone else with licensing.

elmer

#26
Quote from: TailChao on 03/05/2015, 01:30 PMThe way I look at it, the only really valuable thing for these old platforms is the game software and IPs. So I just give the tools away since there's no good reason to profit from them or inconvenience anyone else with licensing.
I totally agree ... which is why I want to give away the work that I'm doing on improving the toolset, and put it on github for anyone that wants it.

But in order for someone (guess who) to legally incorporate your player in a game, or to modify your code so that it assembles with CA65, or to convert it over to the PC-FX, or to distribute your tools on github ... you need to put your intent in a legal form.

Since you automatically own the copyright on everything that you've written, licensing is a real legal issue even if there's no money, or attribution, or even any future discussion with you.

You're working at Google now ... if you haven't had the talk on that yet, then I'm sure that it's going to get raised at some point.

The closest thing that I've seen to a legal version of "giving it all away" is the Boost License. The Zlib license is a very close 2nd, but a bit wordier. I personally prefer the Boost License ... less legal rubbish at the top off the source file.

That's basically a "Do whatever you like with it, and I don't need a credit in your documentation." kind of license.

It's also a legal disclaimer which stops people from suing you if their dog hears a particularly awful chiptune and runs under a bus. Trust me on this ... you need that legal disclaimer in this day and age.

It would be as simple as adding the following simple notice to every file ...

Copyright Osman Celimli 2014-2015.

Distributed under the Boost Software License, Version 1.0.
  (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt)

It would be nice to also add a link back to your website. Even if your site goes away in the future, there will probably be a copy in the "Way Back Machine" archives.

You really should be the one to do this (especially since you've got the only copy of the PDF source) ... and then release it on your website.

That's how this sort of thing is legally done these days. (Darned lawyers!)

If you can't be bothered to do that yourself ... then I can add those lines to the source files on your behalf ... if you post here that that is your wish, and that those are the correct dates and the license that you wish to use. (But you really should be the one to do it ... it's one of the responsibilities of an author).

For a comparison of your licensing options, you can look at sites like ...

http://choosealicense.com/licenses/ or
http://en.wikipedia.org/wiki/Comparison_of_free_and_open-source_software_licenses

(EDIT)
BTW ... a similar discussion also applies to your layout files for the CD Stupid Card if you want the community here to be able to run off a production batch of cards at some point.

SignOfZeta

This probably isn't the place for this, but I sure would like a music composer program for PCE that would allow some sort of external sync via MIDI or gate signals. How hard would it be to bridge the gap between this project and the one I'm describing?
IMG

TailChao

#28
Quote from: elmer on 03/05/2015, 02:35 PM...
But in order for someone (guess who) to legally incorporate your player in a game, or to modify your code so that it assembles with CA65, or to convert it over to the PC-FX, or to distribute your tools on github ... you need to put your intent in a legal form.

Since you automatically own the copyright on everything that you've written, licensing is a real legal issue even if there's no money, or attribution, or even any future discussion with you.

You're working at Google now ... if you haven't had the talk on that yet, then I'm sure that it's going to get raised at some point.

...

(EDIT)
BTW ... a similar discussion also applies to your layout files for the CD Stupid Card if you want the community here to be able to run off a production batch of cards at some point.
Edit:
I originally wrote a few nonsequitor sentences here then realized I'm not in any state to think about legal messes. Let's discuss options further via PM if you want to include the driver in any of your work. In the mean time, I suggest playing with it to see if it actually fits your needs.

I do somewhat miss when I started development work in the early 2000s and everything was like this. Stuff like Magic Kit doesn't even have mention of a license. Whatever.

Quote from: SignOfZeta on 03/05/2015, 03:34 PMThis probably isn't the place for this, but I sure would like a music composer program for PCE that would allow some sort of external sync via MIDI or gate signals. How hard would it be to bridge the gap between this project and the one I'm describing?
Actually this is quite a fine place for it.
To answer your question, modifying HuSound to support MIDI triggering is not such a big deal. Instruments and sound effects are the same internally, and music is just generated via a script instantiating instrument play requests with frequency offsets. This could be replaced with a MIDI decoder or whatever.
The challenge is more of a hardware one. If you want proper physical MIDI support you'd need a UART and some optoisolators on a(nother) special cartridge.

It's actually cheaper and easier just to use a $2 STM32 microcontroller and run a PCE-style soft synth on it, then add MIDI support there (which is another project I have on the way).

SignOfZeta

There is no reason why the PCE couldn't sync with a special cable in the controller port. Full MIDI would be nice but honestly just making it sync to a gate/trigger would be enough for me personally. That's now almost all my stuff works.
IMG

TailChao

Quote from: SignOfZeta on 03/05/2015, 04:37 PMThere is no reason why the PCE couldn't sync with a special cable in the controller port. Full MIDI would be nice but honestly just making it sync to a gate/trigger would be enough for me personally. That's now almost all my stuff works.
I don't think I fully understand your requirements, then.
Do you want just syncing to start / stop music and sound effects? Play individual notes?

SignOfZeta

With many old fashioned electronic instruments (either pre-MIDI or just belligerently non-MIDI stuff made this year) the tempo is kept by a 10V trigger. Notes are done on a 1V/octave scale.

This is the normal way instruments like the Doepfer A-100 comunicate. It's actually a lot more flexible than MIDI as demonstrated here:
A click track, basically. Every time there is a click the sequence is re-aligned.
IMG

elmer

#32
Quote from: TailChao on 03/05/2015, 04:11 PMI originally wrote a few nonsequitor sentences here then realized I'm not in any state to think about legal messes. Let's discuss options further via PM if you want to include the driver in any of your work. In the mean time, I suggest playing with it to see if it actually fits your needs.
I'll PM you, and see if you want to backtrack on the WTFPL license ... which is, of course, exactly why it is important to bring this stuff up in any development that uses "free" software!

QuoteI do somewhat miss when I started development work in the early 2000s and everything was like this.
The Boost License and the Zlib License are the grown-up versions of the WTFPL license ... they basically add the protection that anyone using the source not sue the author ... kind of important in a world where you can get sued for serving a cup of coffee that's "too hot".

QuoteStuff like Magic Kit doesn't even have mention of a license. Whatever.
Simpler times, I'm afraid.

I don't think that I was ever asked to put a copyright notice in my early games' source. It was all proprietary tech where nobody else ever saw the source.

GNU/FSF changed the world, first by creating the idea of "open-source" that anyone could use ... then by creating a legal framework in which it's openness could be protected ... and then by suing companies that just took the source without complying with the license.

It doesn't mean that theirs is the only way ... lots of alternatives have emerged because people found GNU/FSF to be too dogmatic and restrictive.

But they did make everyone pay attention to the legalities, and not just "assume".

I can't say that I'm happy with all the changes in the world over my lifetime ... but I have to live with those changes, whatever my personal feelings are.

I like to release my stuff under a very permissive license ... but some people can't stand that someone out there might ever make any money when using their stuff, and so want to use something like the GPL or LGPL.

If you look around at open source projects that real companies pay people to work on ... there's a lot less GPL/LGPL these days, and a rise in less restrictive Mozilla or Apache use.

elmer

Quote from: SignOfZeta on 03/05/2015, 06:01 PMWith many old fashioned electronic instruments (either pre-MIDI or just belligerently non-MIDI stuff made this year) the tempo is kept by a 10V trigger. Notes are done on a 1V/octave scale.

This is the normal way instruments like the Doepfer A-100 comunicate. It's actually a lot more flexible than MIDI as demonstrated here:
A click track, basically. Every time there is a click the sequence is re-aligned.
Haha ... you make my want to plug in my Waldorf Pulse again!

One of my "side" interests is in doing a modernized Develo-board ... basically a USB microcontroller hooked up to the PCE's joypad port. I don't think that I have a spare serial port left on the board for MIDI, but there may be a spare A/D converter pin for a gate signal.

No timescale on that though ... too much software to do ... but the hardware is sitting in a box waiting!

SignOfZeta

I have Apple Logic for powerful MIDI stuff and I barely even use that. Analog tempo sync is the most important thing to me. With a voltage controlled sync a PCE could sing along with all my other gear and it would be fantastic.
IMG

elmer

Quote from: SignOfZeta on 03/05/2015, 07:08 PMI have Apple Logic for powerful MIDI stuff and I barely even use that. Analog tempo sync is the most important thing to me. With a voltage controlled sync a PCE could sing along with all my other gear and it would be fantastic.
I wondered if that was where you were going with this.

My analog-electronics days are far behind me, but that just sounds like a Schmitt Triggered gate going into one of the data bits on the PCE's joystick port. I'm sure that TailChao will have a better handle on it.

Arkhan Asylum

#36
We had talked about making a MIDI interface of sorts awhillllllllllllle back.   I'm not sure if CharlieMac ever got anywhere.   From what I remember, doing the hardware part is not hard.

The sound engine that Squirrel was using at the time was perfect for live-playing, which is obviously what you would want out of an instrument you are actively touching.

really though, it's a bit of a wasted effort I'd say, as there would not be many users probably, and you can get the same kind of sounds out of a few of the VSTs floating around.   One does 32-byte stuff like PCE.   

It's basically a PCE/Konami SCC VST.    You can draw the wave sample and control filters/envelopes.   

I generally use that to mockup the tunes I write that end up in games.


EDIT: Also, MML is not too daunting.  It's fairly 1:1 with sheet music.  Most of the work can be cut by simply converting a MIDI to MML.   It's a very fast, practical, streamlined way to generate music, especially on a system designed for it.
This "max-level forum psycho" (:lol:) destroyed TWO PC Engine groups in rage: one by Aaron Lambert on Facebook "Because Chris 'Shadowland' Runyon!," then the other by Aaron Nanto "Because Le NightWolve!" Him and PCE Aarons don't have a good track record together... Both times he blamed the Aarons in a "Look-what-you-made-us-do?!" manner, never himself nor his deranged, destructive, toxic turbo troll gang!

SignOfZeta

I'm sure it's not hard, but if I have to type anything I'm not doing it. It sounds lame, but ever since my music when fully hardware my productivity has skyrocketed. I'm not typing anymore ever.
IMG

Arkhan Asylum

Quote from: SignOfZeta on 03/05/2015, 10:17 PMI'm sure it's not hard, but if I have to type anything I'm not doing it. It sounds lame, but ever since my music when fully hardware my productivity has skyrocketed. I'm not typing anymore ever.
http://www.kvraudio.com/product/chip32_by_sam/details

You just use this in a DAW and drag the mouse around and press a key on your MIDI controller of choice and see if you like the noise you just drew.

I rock FruityLoops for all this crap.  There's no typing.  Just clicky stuff followed by keyboard-smacky-stuff.

This "max-level forum psycho" (:lol:) destroyed TWO PC Engine groups in rage: one by Aaron Lambert on Facebook "Because Chris 'Shadowland' Runyon!," then the other by Aaron Nanto "Because Le NightWolve!" Him and PCE Aarons don't have a good track record together... Both times he blamed the Aarons in a "Look-what-you-made-us-do?!" manner, never himself nor his deranged, destructive, toxic turbo troll gang!

TailChao

#39
Quote from: SignOfZeta on 03/05/2015, 06:01 PMWith many old fashioned electronic instruments (either pre-MIDI or just belligerently non-MIDI stuff made this year) the tempo is kept by a 10V trigger. Notes are done on a 1V/octave scale.

This is the normal way instruments like the Doepfer A-100 comunicate. It's actually a lot more flexible than MIDI as demonstrated here:
A click track, basically. Every time there is a click the sequence is re-aligned.
Huh, that's actually pretty cool.
I guess the easiest way would be to just make a little module that plugs into the controller port which can monitor the click track and then convert it to various scan codes. You'd have to poll it on the PCE side and then dispatch the appropriate instruments, but it would be cheaper than a custom cart.

In other news, I've released HuSound v1.2cz which is the first proper open source release of HuSound, HuListen, and HSCC as per Elmer's request. After some thought, I've gone with the zlib license.

spenoza

I kinda want to see a side-by-side write up of HuSound and Squirrel. I'm curious to know how they are similar and how they are different. What does one do that the other does not, and so on.

Arkhan Asylum

Squirrel is basically just an MML compiler that talks to the PSG BIOS.   

so long story short, it is a 1:1ish translation of sheet music that compiles and plays on real hardware with minimal effort/overhead
This "max-level forum psycho" (:lol:) destroyed TWO PC Engine groups in rage: one by Aaron Lambert on Facebook "Because Chris 'Shadowland' Runyon!," then the other by Aaron Nanto "Because Le NightWolve!" Him and PCE Aarons don't have a good track record together... Both times he blamed the Aarons in a "Look-what-you-made-us-do?!" manner, never himself nor his deranged, destructive, toxic turbo troll gang!

TurboXray

Quote from: guest on 03/10/2015, 04:02 PMSquirrel is basically just an MML compiler that talks to the PSG BIOS.   

so long story short, it is a 1:1ish translation of sheet music that compiles and plays on real hardware with minimal effort/overhead
Didn't you guys write a compatible PSG player too, though? For hucard stuffs? I mean, not just a compiler.

SignOfZeta

Quote from: guest on 03/05/2015, 11:59 PM
Quote from: SignOfZeta on 03/05/2015, 10:17 PMI'm sure it's not hard, but if I have to type anything I'm not doing it. It sounds lame, but ever since my music when fully hardware my productivity has skyrocketed. I'm not typing anymore ever.
http://www.kvraudio.com/product/chip32_by_sam/details

You just use this in a DAW and drag the mouse around and press a key on your MIDI controller of choice and see if you like the noise you just drew.

I rock FruityLoops for all this crap.  There's no typing.  Just clicky stuff followed by keyboard-smacky-stuff.
Moving a mouse is way worse than a typing on a keyboard. Since this is a VST I'll give it a shot. I'll try mapping it to something.

I really hate "computer user" type actions while recording music. It's my creative kryptonite.
IMG

OldMan

QuoteDidn't you guys write a compatible PSG player too, though? For hucard stuffs?
No, we modified the cd bios player and Huc stuff to get the player to work on a card (for testing).

Arkhan Asylum

Quote from: SignOfZeta on 03/10/2015, 09:43 PM
Quote from: Psycho Arkhan on 03/05/2015, 11:59 PM
Quote from: SignOfZeta on 03/05/2015, 10:17 PMI'm sure it's not hard, but if I have to type anything I'm not doing it. It sounds lame, but ever since my music when fully hardware my productivity has skyrocketed. I'm not typing anymore ever.
http://www.kvraudio.com/product/chip32_by_sam/details

You just use this in a DAW and drag the mouse around and press a key on your MIDI controller of choice and see if you like the noise you just drew.

I rock FruityLoops for all this crap.  There's no typing.  Just clicky stuff followed by keyboard-smacky-stuff.
Moving a mouse is way worse than a typing on a keyboard. Since this is a VST I'll give it a shot. I'll try mapping it to something.

I really hate "computer user" type actions while recording music. It's my creative kryptonite.
Oh, you only need to use the mouse for the VST for drawing your waveform.  It all responds to MIDI though from what I remember.   It's worth checking out, especially since it's all free!




and yeah, the HuCard version of the player is more or less the BIOS one.   Why radically rewrite something that is already there, and working.
This "max-level forum psycho" (:lol:) destroyed TWO PC Engine groups in rage: one by Aaron Lambert on Facebook "Because Chris 'Shadowland' Runyon!," then the other by Aaron Nanto "Because Le NightWolve!" Him and PCE Aarons don't have a good track record together... Both times he blamed the Aarons in a "Look-what-you-made-us-do?!" manner, never himself nor his deranged, destructive, toxic turbo troll gang!

elmer

#46
Quote from: TailChao on 03/09/2015, 12:17 PMIn other news, I've released HuSound v1.2cz which is the first proper open source release of HuSound, HuListen, and HSCC as per Elmer's request. After some thought, I've gone with the zlib license.
Thank you!  :) Putting a license on it clarifies how people like me can use it ... and you've chosen a generous license that's perfect for library code.

I look forward to hearing your demo tunes played back on a PC-FX!  :wink:

Quote from: guest on 03/09/2015, 11:12 PMI kinda want to see a side-by-side write up of HuSound and Squirrel. I'm curious to know how they are similar and how they are different. What does one do that the other does not, and so on.
I just looked at Squirrel again ... and Arkhan seems to be marketing it as an MML compiler that produces files that are compatible with Hudson's built-in MML player that is built into the System Card.

Very sensibly, Squirrel also has it's own player that can be used on HuCards that obviously don't have the System Card available.

Back-in-the-day when the PCE came out, MML was big in Japan because of the MSX, and it made sense for Hudson to include a music driver in the CD BIOS in order to avoid every developer having to include their own music driver in the very limited 64KB of RAM that was available on the original PCE CD. MML must have seemed like the obvious choice.

MML still survives today, and there seem to be a few other MML compilers/players for the PCE ... such as XPMCK and HuSIC. Arkhan would be the guy to ask to tell you if/why Squirrel is better than those others.

But back in the 80's and 90's, MML wasn't the only way for musicians to write music for the sound chips that were built into home computers/consoles.

MML wasn't used much in the West (MSX flopped) ... the "big" thing for many years were "trackers" ... originally coming from the Amiga (which flopped in Japan). Like MML, "trackers" still exist, and it looks like Bonknuts has developed a "tracker" player for the PCE.

The 3rd option for developers were "custom" drivers, often specific to the musician/company that used them.

These were often created in order to provide more flexible/better environments (in their author's opinions) than the alternative "standard" environments.

HuSound comes out of that tradition, being based on Epyx's Sound Programming Language.

In practice ... these days, when musicians basically want to write their songs on real keyboards or using powerful PC-or-MAC-based DAWs ... Squirrel, Trackers and HuSound are all anachronisms.

The problem is more going to be in finding a musician that's willing to work with such primitive tech, more than whether one driver or the other has a "slight" technical advantage.

If you're a programmer or a musician, then just look at each and see which one feels more "comfortable" to you.

If you're a game-player, then I'd be very surprised if you'd every know the difference by the results that a good musician could produce with either.

Arkhan Asylum

The counter to this is that Squirrel, being MML, is easy for people who are borderline clueless to get up and running.   It was made and designed to be accessible and practical.   

Trackers are not really accessible, and really are not too intuitive. 

They're clunky/archaic/annoying.   They worked at the time because that's all you had.   Now?  They're a pain.

MML has a strong presence still in Japan today because of a game called Mabinogi.   

Anyway, Squirrel comes with a sample setup where you can practically click a few things and get a song going.

For example, I don't recall NinjaSpirit injuring himself too hard doing this:
The upside to using Squirrel over the other MML solutions is that those other ones are fuck-all annoying to setup and use.  I know how to do MML, and do it on a daily basis, and even I find them annoying.

Squirrel is far easier and more user friendly.  It was made to be similar to Musica on MSX, which is still used in commercial stuff today.

AKA: You don't have to screw around with too many parameters and various blobs of bullshit.   

Using the template file, the (hopefully helpful) manual that I wrote, and a little bit of experimenting, you can get songs going, fast.

Make a MIDI, convert it using the various utilities out there that do that.. copy paste... hit go.

done.




I am not saying HuSound is bad, though.  I've honestly never used it, so I can't comment.   I looked at it a little, shrugged, and said "fuck it, I already have a working thing to do tunes.".

This "max-level forum psycho" (:lol:) destroyed TWO PC Engine groups in rage: one by Aaron Lambert on Facebook "Because Chris 'Shadowland' Runyon!," then the other by Aaron Nanto "Because Le NightWolve!" Him and PCE Aarons don't have a good track record together... Both times he blamed the Aarons in a "Look-what-you-made-us-do?!" manner, never himself nor his deranged, destructive, toxic turbo troll gang!

TailChao

Quote from: elmer on 03/11/2015, 01:08 AMIn practice ... these days, when musicians basically want to write their songs on real keyboards or using powerful PC-or-MAC-based DAWs ... Squirrel, Trackers and HuSound are all anachronisms.

The problem is more going to be in finding a musician that's willing to work with such primitive tech, more than whether one driver or the other has a "slight" technical advantage.

If you're a programmer or a musician, then just look at each and see which one feels more "comfortable" to you.

If you're a game-player, then I'd be very surprised if you'd every know the difference by the results that a good musician could produce with either.
Basically this. It's up to the composer and programmer to choose what is most comfortable for them and for the game. Much of what is "better" here is just preference.
The SASS language was made based upon my brother's and my own opinions regarding the shortcomings of both SPL and MML. So I made something that was easy for us to use.

The drivers are very different, though. HuSound uses a macro setup which lets you do completely chaotic things with instruments, but also generates large binaries and uses more memory.

Arkhan Asylum

TailChao, do you have any plans for a sane/easy way to convert from a MIDI into your format?

I think that's basically what makes Squirrel so powerful.   You don't really have to actually do the MML.  You just copy paste.

You only generally have to do MML if you're optimizing because your songs are 900 miles long.
This "max-level forum psycho" (:lol:) destroyed TWO PC Engine groups in rage: one by Aaron Lambert on Facebook "Because Chris 'Shadowland' Runyon!," then the other by Aaron Nanto "Because Le NightWolve!" Him and PCE Aarons don't have a good track record together... Both times he blamed the Aarons in a "Look-what-you-made-us-do?!" manner, never himself nor his deranged, destructive, toxic turbo troll gang!